You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the single place to ask for runtime capabilities that MiniApps do not have yet — things the Minimax Code would need to provide, such as new context APIs, window behaviour, or surface options. Maintainers fold the comments into the list below on a regular basis; popular items get split into their own issues when work starts.
Not for this issue: bugs in a specific MiniApp, or ideas for a new MiniApp. Please open a separate issue for those.
How to request a capability
Reply with a comment that covers:
Capability — one line, what you want the Minimax Code to offer.
Use case — what you are trying to build, and why it cannot be done with the current context / miniapp.json contract.
Proposed shape (optional) — the API, manifest field, or UI you imagine.
Before posting, scan the list and the existing comments. If the same request is already there, add a 👍 to that comment instead of a new one — reactions are how we rank demand.
Expose the id of the conversation that opened a Mini App, to both the Node entry and the client page.
使用场景 / Use case
I'm submitting a Mini App that renders a conversation's model trajectory. It can enumerate
every session and read each message file, but it cannot tell which one it is supposed to
display. Today it has to infer: it picks the conversation holding a live turn lease in <dataDir>/v2/sqlite/runtime-state.sqlite.
That works, but it depends on an internal database schema that a single client update could
invalidate, and it has a failure mode that is hard to detect — when no conversation is running
a turn, it falls back to "most recently written file", which silently shows the previous
conversation's content. I don't think a plugin should have to depend on that, or guess.
This is not specific to my app. Trajectory viewers, Token dashboards, cost summaries and
session quality reviews all need to know which conversation they are looking at.
Why the current contract can't do it:
start(context) receives no session id.
window.mcode exposes only miniapp.message.append.
The page URL carries no query, hash, or referrer.
期望形态 / Proposed shape
Either would be enough (optional — happy with any):
Node side — a read-only field on the context:
exportfunctionstart(context){console.log(context.sessionId);// "mvs_..." or null}
Thanks @avatasia and @7723qqq for the detailed requests — they're on the wishlist.
Shipping soon (we'll update this thread when they land):
Knowing which conversation is currently open, and its working directory
Listing recent conversations and following a conversation's progress
Reading a conversation's latest reply
Already available: appending text to the composer (the user confirms each time).
Not yet, still on the wishlist: reading/replacing the composer draft, reading the last several turns at once, and entry points like / commands or toolbar buttons. These stay ranked by 👍.
One note: please don't have plugins read the host's internal database or session files (e.g. v2/sqlite, v2/sessions). Those formats can change at any time, and PRs that depend on them won't be merged.
Activity
avatasia commentedon Oct 10, 2026
能力 / Capability
Expose the id of the conversation that opened a Mini App, to both the Node entry and the client page.
使用场景 / Use case
I'm submitting a Mini App that renders a conversation's model trajectory. It can enumerate
every session and read each message file, but it cannot tell which one it is supposed to
display. Today it has to infer: it picks the conversation holding a live turn lease in
<dataDir>/v2/sqlite/runtime-state.sqlite.That works, but it depends on an internal database schema that a single client update could
invalidate, and it has a failure mode that is hard to detect — when no conversation is running
a turn, it falls back to "most recently written file", which silently shows the previous
conversation's content. I don't think a plugin should have to depend on that, or guess.
This is not specific to my app. Trajectory viewers, Token dashboards, cost summaries and
session quality reviews all need to know which conversation they are looking at.
Why the current contract can't do it:
start(context)receives no session id.window.mcodeexposes onlyminiapp.message.append.期望形态 / Proposed shape
Either would be enough (optional — happy with any):
Node side — a read-only field on the context:
7723qqq commentedon Oct 20, 2026
Ability to read and replace the unsent draft in the composer
能力 / Capability
让 Mini App 能读到、并替换当前会话输入框里还没发出去的那段草稿。现在只有
miniapp:composer-append(window.mcode.miniapp.message.append):只能追加、还要用户确认,读不到也改不了。使用场景 / Use case
要做的功能:把用户随手写的一句草稿,扩展成同一条请求的完整写法——补上它真正指向的文件、模块和符号,说清要改什么、什么算做完——用户看过、确认后,再回填到输入框,由用户自己按 Send。
这是 kimi-code TUI 里已有的
prompt-optimizer(输入框上 Ctrl+P,结果进 diff 面板,accept / discard)。随功能一起带过来的改写契约是:…(truncated)截断;为什么现有契约做不到——四件事缺一不可:
window.mcode.miniapp只有message.append,页面没有任何读取输入框的途径。start(context)没有sessionId,页面 URL 也不带 query / hash。这一条与上面 @avatasia 的请求是同一个,我在这里一并记上。message.append(追加 + 用户确认),没有「替换」。我试过的绕法,为什么不成立:
<dataDir>/v2/sessions/*/messages.jsonl拿「用户最后发的一句话」。能跑,但依赖 Host 未文档化的磁盘格式,AGENTS.md明确写着读 Host 文件没有受支持的 API;而且插件不知道自己开在哪个会话里,只能把最近 5 个会话列出来让用户挑——这等于把「猜」包装成了功能,不是解决办法。UserPromptSubmit钩子能读到 prompt,但 handler 超时被钳在 10 秒(MAX_TIMEOUT_MS = 10_000),做不完一次模型改写;输出字段里也没有替换 prompt 的项(suppressOriginalPrompt只是兼容层里的一个未实现名称)。agents/<name>.md声明的子 agent 不会出现在agents()里(那个列表是用户配置的 agent),所以agent.create({ agent })绑不上,只读约束无法通过它强制。我核过当前客户端的实际接口(MiniMax Code 3.1.3-inside.117):Mini App 桥一共 13 个通道,
composer只有append;manifest 的 16 个字段里没有 composer / command / shortcut 一类。期望形态 / Proposed shape
页面与 Node 各一组,最小可用即可(命名随意):
若不想新增
replaceDraft,给message.append加一个mode: 'replace' | 'append'也能满足第 4 项。验收标准 / Acceptance criteria
装上这个 Mini App 之后:
v2/sessions、v2/sqlite),也能知道当前会话与工作目录;7723qqq commentedon Oct 20, 2026
承接上一条:把 Mini App 缺的能力一次列全
上一条只写了 prompt-optimizer 一个功能要什么。评论里补一条完整的——一个 Mini App 现在只能待在自己的面板里,凡是「和用户正在做的事挨着」的能力都缺。
现状(MiniMax Code 3.1.3-inside.117 实测):Mini App 桥共 13 个通道(
agent-*9 个、composer-append1 个、window-*3 个);manifest 16 个字段;Host Binding 只实现了browser.usev1 和computer.usev1;hook 有 11 个事件但 handler 超时钳在 10 秒。message.append+ 确认start(context)无sessionId,页面 URL 无 query/hashcwd/命令、没有工具栏按钮、没有快捷键。用户得「打开 App → 再切回对话」,这正是上一条里最难用的那一步MAX_TIMEOUT_MS)suppressOriginalPrompt只是兼容层里未实现的名称如果只能先做三件
按本仓库现有 App 的实际阻塞程度排序:
append的确认框,加一个mode: 'replace'即可。cwd和 turns。#8–#10 是「更顺」而不是「能不能」,可以往后排。
需要的话我可以把这张表拆成独立 issue 逐条跟进,或者按维护者的模板重写一遍。
MyPrototypeWhat commentedon Oct 21, 2026
感谢 @avatasia 和 @7723qqq 的详细需求,已记进愿望单。
即将发布的能力,发布后会在这里更新:
现有能力:往输入框追加文字(每次需要用户确认)。
暂时还没有、仍在愿望单里的:读取/替换输入框草稿、一次读出最近几轮对话、
/命令和工具栏按钮等触发入口。这些继续按 👍 数量排优先级。另外提醒一句:不建议插件直接读取宿主内部的数据库或会话文件(如
v2/sqlite、v2/sessions),这些结构随时可能变化,依赖它们的 PR 也不会被合并。Thanks @avatasia and @7723qqq for the detailed requests — they're on the wishlist.
Shipping soon (we'll update this thread when they land):
Already available: appending text to the composer (the user confirms each time).
Not yet, still on the wishlist: reading/replacing the composer draft, reading the last several turns at once, and entry points like
/commands or toolbar buttons. These stay ranked by 👍.One note: please don't have plugins read the host's internal database or session files (e.g.
v2/sqlite,v2/sessions). Those formats can change at any time, and PRs that depend on them won't be merged.