Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ The MiniMax Code Agent communicates through the host MCP client. Business reques
| [蹬王之王 · Expiry Guardian](plugins/hylouis233/expiry-guardian/) | Track credit and reset-card expiry from a local ledger you maintain, and get a "spend the card or let the credits burn first" recommendation with the reasoning spelled out | [Hylouis](https://github.com/Hylouis233) |
| [MiniMax Pet](plugins/minimax-ai/minimax-pet/) | A lightweight companion with appearance, task and settings tabs, visible-session activity, answer-needed reminders and a transparent desktop pet. Requires MiniMax Code 3.1.6 or later | [MiniMax](https://github.com/MiniMax-AI) |
| [MCP OAuth Console](plugins/microbiosis/mcp-oauth-console/) | Sign in to MCP servers that require OAuth: device-code or authorization-code + PKCE flow, the `Authorization` header written into the MCP configuration, and an opt-in refresh before expiry | [Microbiosis](https://github.com/Microbiosis) |
| [本机大盘 · Local Market Board](plugins/jzlikewei/kurumi-monitor/) | Watch your own machine as a stock terminal: CPU, GPU, temperature, memory, disk, network and every running process become listed stocks with live candlesticks, moving averages, a watchlist, a leaderboard and a trade tape, on macOS and Windows. Requires minimax Code 3.1.2 or later | [jzlikewei](https://github.com/jzlikewei) |

<details>
<summary>Preview: Cutline</summary>
Expand Down
1 change: 1 addition & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ MiniMax Code Agent 通过宿主 MCP 客户端与 MiniApp 协作。业务请求
| [蹬王之王](plugins/hylouis233/expiry-guardian/README.md) | 看你自己维护的本地账本,算出「该用卡还是该留积分」,并把理由说清楚 | [Hylouis](https://github.com/Hylouis233) |
| [MiniMax Pet](plugins/minimax-ai/minimax-pet/README.zh-CN.md) | 提供外观/任务/设置、可见会话状态、需要回答提醒和透明桌宠;需要 MiniMax Code 3.1.6 或更高版本 | [MiniMax](https://github.com/MiniMax-AI) |
| [MCP OAuth 令牌台](plugins/microbiosis/mcp-oauth-console/README.zh-CN.md) | 给需要 OAuth 的 MCP 服务器完成登录:设备码或授权码 + PKCE 流程,把 `Authorization` 头写入 MCP 配置,并可选择在到期前自动续期 | [Microbiosis](https://github.com/Microbiosis) |
| [本机大盘](plugins/jzlikewei/kurumi-monitor/README.zh-CN.md) | 把本机当成行情终端来看:CPU、GPU、温度、内存、磁盘、网络与每个运行中的进程都是一只个股,实时 K 线、均线、自选行情、主力动向与逐笔成交,支持 macOS 与 Windows。需要 minimax Code 3.1.2 或更高版本 | [jzlikewei](https://github.com/jzlikewei) |

<details>
<summary>预览:Cutline</summary>
Expand Down
18 changes: 18 additions & 0 deletions plugins/jzlikewei/kurumi-monitor/.minimax-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"schemaVersion": 1,
"name": "kurumi-monitor",
"displayName": "本机大盘",
"version": "1.3.0",
"description": "把 macOS 与 Windows 的 CPU、GPU、温度、内存、磁盘、网络与进程搬进证券行情终端的界面语言:实时 K 线、主力动向、逐笔成交、自选行情与进程盯盘,历史采样本地累计。",
"author": "jzlikewei",
"icon": "icon.png",
"category": "Productivity",
"exampleQueries": [
"打开本机大盘",
"看看现在 GPU 占用怎么样",
"哪个进程在吃 CPU"
],
"apps": [],
"mcpServers": [],
"skills": []
}
674 changes: 674 additions & 0 deletions plugins/jzlikewei/kurumi-monitor/LICENSE

Large diffs are not rendered by default.

149 changes: 149 additions & 0 deletions plugins/jzlikewei/kurumi-monitor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# 本机大盘 · Local Market Board

A system monitor that renders your machine in the visual language of a Chinese A-share
trading terminal. CPU, GPU, temperature, memory, disk, network and every running process
become listed stocks, each with live candlesticks, moving averages, an index strip, a
watchlist, a leaderboard and a trade tape.

[简体中文](README.zh-CN.md)

## Screenshots

![The full board: title bar, index strip, three-column body, process table and status bar](docs/screenshots/1-board.jpg)

![Main chart: quote header, candlesticks, MA5/10/20 and a stacked memory-composition subchart](docs/screenshots/2-chart.jpg)

![Index strip: the app icon followed by eight quotes, each with a mini candlestick](docs/screenshots/3-indexbar.jpg)

![Process table sorted by resident memory, one mini candlestick per row](docs/screenshots/4-procs.jpg)

Application names in the leaderboard and the process table are mosaicked. Everything else is
live output from the machine described under **Tested environment**.

## Platform support

| Platform | Collection | Fixed metrics | Status |
| --- | --- | --- | --- |
| macOS | `vm_stat` / `ioreg` / `netstat` / `ps` | 34 + per-core CPU | Verified on real hardware |
| Windows | Long-lived PowerShell + performance counters | 34 + per-core CPU | See the note below |

**Windows verification scope.** The process-collection path was executed on macOS under
PowerShell 7.6.9 through the cross-platform .NET implementation. Memory, GPU, disk,
network and thermal readings depend on Windows-only `PerformanceCounter`,
`Get-CimInstance` and `nvidia-smi`; they were tested end to end against samples in the
real output format and have yet to run on a physical Windows machine.

GPU temperature, GPU power draw and the ACPI thermal-zone temperature are Windows-only.
On macOS the three codes in the 温度 board stay empty.

## Install

Requires the MiniMax Code desktop app, 3.1.2 or later, because the package declares
`surface.window`.

1. Copy this whole directory to `~/.minimax/plugins/kurumi-monitor/`, including the
hidden `.minimax-plugin/` directory.
2. Restart MiniMax Code and confirm the plugin is recognised and enabled.
3. Say `打开本机大盘` in a conversation, or start it from the plugin list.

The window opens at 1480x940 and asks for at least 1280x720. Below that width the page
shows a hint to pop the panel out into its own window.

## Using it

- **Click a code in 大盘行情** to switch the main chart. Candles aggregate at
2s / 5s / 10s / 30s / 1min.
- **Click a row in the process table** to chart that process; its CPU share is the price.
- **Click ☆** to add a process to 我的自选. Its history keeps accumulating and survives
a restart.
- **The search box** filters by process name or PID.
- **一键清仓** terminates the selected process after a confirmation dialog.

Red means up and green means down, following the A-share convention; the title bar
switches to international colours. Every change carries an explicit `+` or `−` sign, so
direction never depends on colour alone.

## Data & access

This Mini App runs locally under your own account. It declares no `agentAccess`,
`toolAccess` or `deviceAccess`, and requests no browser permission.

**Processes it spawns**

| Platform | Command | Purpose |
| --- | --- | --- |
| macOS | `vm_stat`, `ioreg`, `netstat`, `ps`, `sysctl` | memory pages, GPU counters, sockets, process table, core count |
| Windows | one long-lived `powershell.exe` running the bundled `collector.ps1` | performance counters, CIM classes, process table |
| Windows | `nvidia-smi` when present | GPU utilisation, VRAM, temperature, power draw |

Every child is spawned with `execFile` and an argument array. On Windows the collector
is started once and reused; its output is newline-delimited JSON.

**Files it reads**

- The process table and system counters listed above, through the commands above.
- `settings.json` in its own state directory, to restore the selected code, watchlist,
period, theme and colour scheme.

**Files it writes**

- Samples and events under the system temporary directory:
`$TMPDIR/kurumi-monitor/` on macOS, `%TEMP%\kurumi-monitor\` on Windows. Ticks are
sharded into `ticks/YYYYMMDD-HH.jsonl`; events append to `events.jsonl`. The operating
system reclaims these on its own schedule, and everything in them is derived data that
the app rebuilds by sampling again.
- `settings.json` in its own state directory, holding the selected code, watchlist,
candle period, theme and colour scheme.

Measured on the machine in **Tested environment**: about 88 KB per minute of samples, so
roughly 253 MB across 48 hours of continuous running.

**Processes it can terminate.** 一键清仓 sends `SIGTERM` to the selected process, or
`SIGKILL` when 强制清仓 is ticked. The button is enabled only for processes the current
user can signal, checked with `process.kill(pid, 0)`. Protected from termination are this
runtime, every ancestor of it and all of their descendants — which covers the rest of the
host app, other plugins' runtimes and anything the Agent started — plus a small per-platform
list of session-critical processes (`loginwindow` and `WindowServer` on macOS, `explorer`
and `winlogon` on Windows). The confirmation dialog carries the target's start time, so the
kill is refused when the original process has already exited and its PID has been reused.

**Network.** No outbound request of any kind. No remote fonts, no CDN, no telemetry. All
collection and rendering happen on the machine.

**Agent turns, conversations, tools, microphone.** None. The app never calls
`window.mcode.agent`, never reads a conversation, never invokes a tool and never opens
the microphone.

## Tested environment

| Item | Version |
| --- | --- |
| MiniMax Code | 3.1.10-preview.5019 |
| macOS | 26.5.2 (Darwin 25.5.0, arm64) |
| Node.js | 22.22.2 |
| PowerShell | 7.6.9, used to exercise the Windows branch |

Verified on macOS: all 44 codes render with live values, the six macOS probes complete a
round in 44–58 ms, a watchlist of 20 entries survives a restart of the runtime, and the
console reports no error. The Windows branch was exercised with a stub `powershell.exe`
feeding recorded frames, covering 29 assertions across memory, GPU, disk, network,
process and thermal parsing.

## Credits

The interface language and interaction spec were inspired by
[PerfTicker](https://github.com/QiuSui1145/PerfTicker) by **QiuSui** (QiuSui_Studio), a
single-file C# program that turns the Windows Task Manager into a stock terminal, released
under GPL-3.0.

This project is an independent implementation in JavaScript and Node, running inside the
MiniMax Code Mini App host. The two projects share no source code. GPL-3.0 is kept as a
tribute to the original author.

## Source

https://github.com/jzlikewei/Kurumi-monitor

## License

[GPL-3.0](LICENSE) © 2026 李白
128 changes: 128 additions & 0 deletions plugins/jzlikewei/kurumi-monitor/README.zh-CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# 本机大盘

把系统指标搬进 A 股行情终端的界面语言。CPU、GPU、温度、内存、磁盘、网络与每一个
运行中的进程都成为一只「个股」,实时 K 线、均线、指数条、自选行情、主力动向与
逐笔成交一应俱全。

[English](README.md)

## 截图

![全景:顶栏、指数条、三栏主体、进程表与状态栏](docs/screenshots/1-board.jpg)

![主图特写:品种头、K 线、MA5/10/20 与内存构成三色堆叠副图](docs/screenshots/2-chart.jpg)

![指数条特写:应用图标领在最左,后接八格行情](docs/screenshots/3-indexbar.jpg)

![进程表特写:按常驻内存降序,每行一条走势迷你 K 线](docs/screenshots/4-procs.jpg)

主力动向与进程表里的应用名做了马赛克处理,其余内容是下方「测试环境」那台机器的实时输出。

## 平台支持

| 平台 | 采集方式 | 固定指标 | 验证状态 |
| --- | --- | --- | --- |
| macOS | `vm_stat` / `ioreg` / `netstat` / `ps` | 34 项 + 逐核 CPU | 真机实测 |
| Windows | 常驻 PowerShell + 性能计数器 | 34 项 + 逐核 CPU | 见下方说明 |

**Windows 验证范围**:进程采集链路在 macOS 上用 PowerShell 7.6.9 实跑验证过,走的是
.NET 跨平台实现。内存、GPU、磁盘、网络与温度几项依赖 Windows 专有的
`PerformanceCounter`、`Get-CimInstance` 与 `nvidia-smi`,用真实输出格式的样本做了
端到端测试,尚未在 Windows 真机上跑过。

GPU 温度、GPU 功耗与 ACPI 热区温度只在 Windows 上有值。macOS 上温度板块的三项留空。

## 安装

需要 MiniMax Code 桌面端 3.1.2 或更高版本,本包声明了 `surface.window`。

1. 把本目录整个复制到 `~/.minimax/plugins/kurumi-monitor/`,包含隐藏的
`.minimax-plugin/` 目录。
2. 重启 MiniMax Code,确认插件已识别并启用。
3. 在对话里说「打开本机大盘」,或从插件列表里启动。

窗口默认 1480x940,最小 1280x720。视口窄于 1280 时页面会提示把面板弹出为独立窗口。

## 用法

- **点大盘行情里的品种**切换主图,K 线按 2 秒 / 5 秒 / 10 秒 / 30 秒 / 1 分聚合。
- **点进程表里的行**把主图切到那个进程,它的 CPU 占用就是这只「个股」的行情。
- **点 ☆ 加自选**,进程走势会被持续记录,重启后历史仍然在。
- **搜索框**按进程名或 PID 过滤。
- **一键清仓**终止选中进程,操作前有二次确认。

红涨绿跌遵循 A 股习惯,标题栏可切换为国际配色。涨跌始终带 `+` / `−` 符号,
方向不依赖颜色传达。

## 数据访问范围

这个 Mini App 以你的身份在本机运行,没有声明 `agentAccess`、`toolAccess` 与
`deviceAccess`,也不申请任何浏览器权限。

**会启动的进程**

| 平台 | 命令 | 用途 |
| --- | --- | --- |
| macOS | `vm_stat`、`ioreg`、`netstat`、`ps`、`sysctl` | 内存分页、GPU 计数器、套接字、进程表、核心数 |
| Windows | 一个常驻 `powershell.exe`,运行包内 `collector.ps1` | 性能计数器、CIM 类、进程表 |
| Windows | 存在时调用 `nvidia-smi` | GPU 占用、显存、温度、功耗 |

所有子进程都用 `execFile` 加参数数组启动。Windows 上采集器只启动一次并常驻,
输出为按行分隔的 JSON。

**会读取的文件**

- 上述命令返回的进程表与系统计数器。
- 自身状态目录里的 `settings.json`,用于恢复选中品种、自选、周期、主题与配色。

**会写入的文件**

- 系统临时目录下的采样与事件:macOS 为 `$TMPDIR/kurumi-monitor/`,Windows 为
`%TEMP%\kurumi-monitor\`。采样按 `ticks/YYYYMMDD-HH.jsonl` 小时分片,事件追加到
`events.jsonl`。这些由操作系统按自己的策略回收,内容全部是重新采样即可重建的
派生数据。
- 自身状态目录里的 `settings.json`,保存选中品种、自选列表、K 线周期、主题与配色。

在下方「测试环境」那台机器上实测:采样落盘约 88 KB/分钟,连续运行 48 小时约 253 MB。

**可以终止的进程**:一键清仓向选中进程发送 `SIGTERM`,勾选强制清仓则发送
`SIGKILL`。按钮只对当前用户有权发信号的进程可用,判定方式是
`process.kill(pid, 0)`。保护名单包含本进程、它的全部祖先及这些祖先的全部后代
(覆盖宿主程序的其余进程、其他插件的运行时与 Agent 起的进程),另加一份按平台的
会话关键进程名单(macOS 的 `loginwindow`、`WindowServer`,Windows 的 `explorer`、
`winlogon`)。确认框会带上目标进程的启动时刻,原进程已退出、PID 被复用时清仓被拒绝。

**网络**:没有任何对外请求,无远程字体、无 CDN、无遥测。采集与渲染全部在本机完成。

**Agent 任务、会话、工具、麦克风**:全部不使用。不调用 `window.mcode.agent`,
不读取会话,不调用工具,不打开麦克风。

## 测试环境

| 项目 | 版本 |
| --- | --- |
| MiniMax Code | 3.1.10-preview.5019 |
| macOS | 26.5.2(Darwin 25.5.0,arm64) |
| Node.js | 22.22.2 |
| PowerShell | 7.6.9,用于验证 Windows 分支 |

macOS 上已验证:44 项指标全部有值并实时刷新,六个 macOS 采集源单轮 44–58 毫秒,
20 项自选跨运行时重启完整恢复,控制台无报错。Windows 分支用桩 `powershell.exe`
喂入录制帧验证,覆盖内存、GPU、磁盘、网络、进程与温度解析共 29 项断言。

## 致谢

界面语言与交互规格的灵感来自 [PerfTicker](https://github.com/QiuSui1145/PerfTicker),
作者 **QiuSui**(QiuSui_Studio),一个把 Windows 任务管理器做成炒股软件行情终端的
C# 单文件程序,采用 GPL-3.0 协议。

本项目是独立实现:技术栈为 JavaScript / Node,运行在 MiniMax Code 的 Mini App 宿主里,
两边没有共享任何源码。沿用 GPL-3.0 是出于对原作者的尊重。

## 源码

https://github.com/jzlikewei/Kurumi-monitor

## 许可证

[GPL-3.0](LICENSE) © 2026 李白
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added plugins/jzlikewei/kurumi-monitor/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading