Skip to content
Merged
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 @@ -71,6 +71,7 @@ The MiniMax Code Agent communicates through the host MCP client. Business reques
| [CadQuery Viewer](plugins/hanzijie/cq-viewer/) | View STL / STEP models from your project (STEP keeps assembly part names, colours, and real CAD edges), watch models pushed from CadQuery scripts, and mark positions on the model to send to the conversation in one click; MCP tools let the AI add model folders and open models, and a CadQuery parametric-design skill is bundled | [HanZijie](https://github.com/HanZijie) · [flowful-ai](https://github.com/flowful-ai) |
| [MiniMax Bot](plugins/minimax-ai/minimax-bot/) | **Official plugin** that turns MiniMax Code into an always-on team of Bots: a Chief Bot builds the team, group chats hand work between members with `@` mentions, and every Bot has its own memory, scheduled tasks, and usage stats. Requires MiniMax Code 3.1.2 or later | [MiniMax-AI](https://github.com/MiniMax-AI) |
| [心屿 / Xinyu Island](plugins/yujiachen-y/xinyu-daily/) | A cozy daily-mood island that plays like an indie game: an inspiration card shaped by your answers, mood stickers, a joy jar, a decision slot machine, a Book of Answers, and 20 hidden secrets guarded by a grumpy crab. Optionally, Xiaoyu writes you a daily letter and chats with you using your model. Requires MiniMax Code 3.1.2 or later | [yujiachen-y](https://github.com/yujiachen-y) |
| [MoMo Collab](plugins/amszuidas/momo-collab/) | A project steward that turns stray thoughts, screenshots, and links into ideas, writes clear ideas up as tasks, runs each task in its own Agent session with a full handoff, checks the result against your done criteria, and tracks everything on a board. Requires MiniMax Code 3.1.2 or later | [amszuidas](https://github.com/amszuidas) |

<details>
<summary>Preview: Token Usage Board</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 @@ -72,6 +72,7 @@ MiniMax Code Agent 通过宿主 MCP 客户端与 MiniApp 协作。业务请求
| [CadQuery Viewer](plugins/hanzijie/cq-viewer/README.zh-CN.md) | 本地查看项目里的 STL / STEP(保留装配零件名称、颜色和真实边线),实时显示 CadQuery 脚本推送的模型,在模型上标注位置后一键发给 AI;AI 可通过 MCP 工具添加模型文件夹、打开模型,并内置 CadQuery 参数化建模 skill | [HanZijie](https://github.com/HanZijie) · [flowful-ai](https://github.com/flowful-ai) |
| [MiniMax Bot](plugins/minimax-ai/minimax-bot/) | 【官方插件】把 MiniMax Code 变成常驻的 Bot 团队:总管 Bot 帮你组建团队,群聊里用 `@` 在成员之间交接工作,每个 Bot 有自己的记忆、定时任务和用量统计;需要 MiniMax Code 3.1.2 或更高版本(说明文档为英文) | [MiniMax-AI](https://github.com/MiniMax-AI) |
| [心屿](plugins/yujiachen-y/xinyu-daily/README.zh-CN.md) | 像独立小游戏的每日心情小岛:由你的回答决定的今日灵感卡、心情贴纸、小确幸罐子、纠结老虎机、答案之书,还有坏脾气螃蟹藏起来的 20 个秘密;可选开启小屿陪伴,借用你的模型每天写信、陪你聊天。需要 MiniMax Code 3.1.2 或更高版本 | [yujiachen-y](https://github.com/yujiachen-y) |
| [协作 · MoMo](plugins/amszuidas/momo-collab/README.zh-CN.md) | 项目管家 MoMo:把随手的想法、截图和链接攒成想法,写清后变成任务,派 Agent 会话带着完整背景去执行,按验收标准核对结果后交你审核,进展在看板上一眼可见。需要 MiniMax Code 3.1.2 或更高版本 | [amszuidas](https://github.com/amszuidas) |

<details>
<summary>预览:Token 用量看板</summary>
Expand Down
22 changes: 22 additions & 0 deletions plugins/amszuidas/momo-collab/.minimax-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"schemaVersion": 1,
"name": "momo-collab",
"displayName": "协作 · MoMo",
"version": "0.2.0",
"description": "项目管家 MoMo:把随手冒出的想法攒起来、理清楚,写成任务后替你安排会话去执行,交接背景、跟进进度、收回结果;任务进展在看板上一眼可见。",
"author": "amszuidas",
"icon": "icon.png",
"category": "Productivity",
"exampleQueries": [
"打开协作,把我最近在想的一件事交给 MoMo",
"MoMo,现在进展到哪了?哪些事需要我处理?",
"把这个会话里聊出的结论交给 MoMo,归到对应的想法"
],
"apps": [],
"mcpServers": [
"servers.mcp.json"
],
"skills": [
"skills/momo-collab/SKILL.md"
]
}
21 changes: 21 additions & 0 deletions plugins/amszuidas/momo-collab/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 amszuidas

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
70 changes: 70 additions & 0 deletions plugins/amszuidas/momo-collab/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# MoMo Collab

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

MoMo is a project steward for MiniMax Code. Drop a half-formed thought, a screenshot, or a link on MoMo and it files the note under the right idea. MoMo helps you think the idea through and, once it is clear, writes it up as a task. After you agree, it runs the task in an Agent session. It hands over the background, follows progress, checks the result against your done criteria, and brings the conclusion back to the idea. A board shows every task as To do, In progress, In review, or Done.

Author: [amszuidas](https://github.com/amszuidas) · Version: `0.2.0`

![MoMo Collab with synthetic data: a chat with MoMo, a running task card, and the "needs you" rail](docs/preview.png)

*The preview uses synthetic data. The app interface is currently in Chinese.*

## Install and open

Copy this entire directory, including the hidden `.minimax-plugin` directory, to `<dataDir>/plugins/momo-collab/`. By default `<dataDir>` is `~/.minimax`. Restart MiniMax Code and confirm the plugin is recognized and enabled.

Open it from a **project conversation** (one with a project folder): type `@协作 · MoMo` in the input box and send, or open it from the Mini App entry in the conversation's side panel. The page can be popped out into its own window. Tasks run in the project of the conversation the page is open in, unless MoMo sets another folder on the task.

## What it does

- **One conversation with MoMo.** Send a sentence, a screenshot, or a link. MoMo files it as a record under an existing idea, opens a new idea, or keeps it unattributed, and shows a receipt under its reply. Say "不对,记到 X" to move a record.
- **Ideas.** Each idea tracks three things: what to do, what to produce, and how to tell it is done. Each is marked as confirmed or inferred. An idea also keeps its records, decisions, tasks, and outputs. MoMo can question you one item at a time to sharpen an idea.
- **Tasks.** When all three are clear, MoMo writes a task card. Press **开始** (Start) to run it, or **先不做** (Later) to park it. Starting creates a new Agent session with the full handoff: goal, deliverable, done criteria, confirmed facts, and records. Task status follows that session; the board has no drag-and-drop and no manual status buttons.
- **Live progress.** While a task runs, its card shows elapsed time, the current tool, and the step count. Click the card to open the task session in the chat side panel and watch it or take over.
- **Blocked tasks.** Cards show why a task is blocked (needs approval, needs information, run failed, or project unavailable) and offer the one next step: approve or deny, answer, retry, or set a project folder.
- **Review.** When a session submits, MoMo checks the outputs against each done criterion in a separate session, then hands the task to you. Approve it, or send change requests back to the same session.
- **Hand a chat to MoMo.** In any ordinary conversation, say "把这个会话交给 MoMo". The bundled Skill files that conversation's conclusions as records under the matching idea (MoMo Collab must be running).
- **Coming back.** When you return after a while, MoMo lists what needs you. The **试用指标** (Trial metrics) page summarizes local usage.

![The board with synthetic data](docs/board.png)

## Tested environment

- MiniMax Code 3.1.3 (internal preview build) on macOS 26.6. The package declares `agentAccess`, `agentConcurrency`, and `surface.window`, so MiniMax Code 3.1.2 or later is required.
- Windows has not been tested.
- The task lifecycle (create, start, host stop, continue, approval, submit, verification, review, done) was also exercised end to end against the real Node entry and MCP endpoint with a mock Agent, and the page was checked in a browser at 1180 px and 420 px widths.

## Data & access

- **Agent turns.** The package declares `agentAccess: ["session.run"]` with `agentConcurrency: 8`. It runs three kinds of Agent turns, each with the Agent's full capabilities (files, shell, Skills, MCP):
- **MoMo**: one long-lived session that files records, maintains ideas, and writes tasks through this plugin's `momo` MCP tools.
- **Task sessions**: one per task. The page creates each one with `agent.create()`, so it uses that conversation's agent, model, and project folder. The first message hands over the task and asks the Agent to report progress and submit outputs through the `momo` tools.
- **Verification**: a separate session per check that reads the submitted outputs and records a pass or fail for each done criterion.
- **Approvals.** Every `permission.requested` is shown on the task card or in the chat. `allowOnce` is sent only after you click it; nothing is approved automatically. A failed task run is retried once automatically, in the same session, with a message asking the Agent to pick up where it left off. That happens when the turn ends with `status: "error"`, or when the call is rejected as retryable before any tool started. `AGENT_OUTCOME_UNKNOWN` is never retried.
- **Files written by the plugin:**
- `context.dataDir/state.json`: ideas, records, tasks, and chat, written atomically through a temporary file and rename.
- `context.dataDir/telemetry.jsonl`: local usage events for the trial metrics page. Nothing is uploaded.
- An Agent-readable folder next to the Host's per-agent data: `<dataDir>/agents/mavis/miniapps/momo-collab/`. Its `uploads/` subfolder holds images you attach. Its `outputs/<taskId>/` subfolder holds outputs of tasks that have no project folder. The plugin locates it from `context.dataDir` by going up four levels. This relies on the current, unspecified layout of the Host data directory; when that folder does not exist, the plugin uses `context.dataDir` instead. It is used because the primary agent can read it without an approval prompt, so a task can read your screenshots.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The folder is four levels above dataDir (<mcodeRoot>/agents/...), not <dataDir>/agents/....

- **Files read outside `dataDir`.** The page previews a task output (at most 5 MiB) only if the task session reported that path. The verifier reads text outputs the same way. Anything inside the MiniMax Code data directory is refused, except the outputs folder above. A project folder must be an existing absolute directory and may not be inside the MiniMax Code data directory.
- **Files written by the Agent.** Task sessions work in the project folder, and they may create or change files there as the task requires. That is the point of a task, and it is subject to your approvals.
- **Processes.** None spawned by the plugin.
- **Network.** The Node service makes no outbound requests, and the page loads no remote resources.
- **Browser storage.** `sessionStorage` keeps a random page ID so a reloaded page keeps receiving its own dispatch requests.
- **MCP.** `servers.mcp.json` declares the `momo` MCP server, served by this Mini App at `/mcp/momo`. Its tools read and change ideas, records, and tasks; they cannot read or write files.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not accurate: via submit_task_result the tools cause files to be read and served.


## Known limitations

- Task sessions are created through the Mini App Agent API. They are hidden from the conversation list, and you open them from the task card.
- When a task has no project folder set, it runs in the project of the conversation the page is open in. Opened outside a project conversation, it falls back to the plugin's own Agent folder.
- There is no sidebar entry, global shortcut, or system notification; open the Mini App from a conversation.
- Restarting MiniMax Code interrupts running tasks. They show **执行失败** (run failed); click **继续执行** (Continue) to resume in the same session.
- The `momo` MCP tools are available only while the Mini App is running.

## Source

The page is in `miniapp/client/` and the Node service in `miniapp/node/`: `server.mjs` handles HTTP, SSE, and uploads; `engine.mjs` handles dispatch, verification, and Agent events; `store.mjs` handles state; `mcp.mjs` serves the MCP endpoint; and `prompts.mjs` holds the role, handoff, and verification prompts. No build step and no dependencies.

## License

[MIT](LICENSE).
Loading
Loading