Request: bless a stable headless contract so a Linux desktop client can embed `cmd`

未关闭
#879 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
活跃
技术栈
linux, node.js, react, tauri, typescript
领域
api, cli, desktop

调研方向

从请求中列出的 headless 入口开始:cmd -p --output-format json--list-modelsstatus --jsoncmd login,以及恢复或取消处理。比较它们在 command-code 1.56.0 中的当前行为,并确定哪些事件、模型列表、身份验证、信号、并发和 Linux 运行时行为可以编写文档或稳定下来。当为提议的 TypeScript 适配器等客户端明确规定受支持的契约和任何必需的 flags 后,即表示完成。

由索引模型根据 Issue 内容生成。

描述

Request: bless a stable headless contract so a Linux desktop client can embed cmd

Hi, I maintain MonoCode Linux, a Tauri + React desktop app that puts several coding CLIs behind one composer. Each provider gets a small adapter: the app spawns the CLI, streams its events into the transcript, and maps approvals, questions, cancel, resume, and model lists.

I want to add Command Code as a provider and I have headless mode mostly mapped: cmd -p --output-format json gives NDJSON events plus a final result line, --verbose prints the session id on stderr for later --resume, transcripts persist per directory under ~/.commandcode/projects/, and without --yolo file writes and shell commands stay blocked, which fits a supervised mode.

Before I wire up the adapter, I need a few things nailed down so it does not depend on behavior that might change:

  1. Is --output-format json in -p mode a stable contract I can parse? I will ignore unknown event.type values, but I want to know if the result line shape is versioned anywhere.
  2. Is there a machine-readable model list? --list-models prints a table while status --json already emits JSON. A --json flag for models would remove table parsing.
  3. What are the cancel semantics for a headless run? SIGINT/SIGTERM maps to exit 130. Does the transcript stay resumable after a kill, and is there a preferred way to stop a run from a parent process?
  4. Is cmd login plus cmd status --json the supported headless auth check? Anything a desktop client should do differently?
  5. Does -p support concurrent runs in the same directory, or should the client serialize turns per session? Related: is --continue safe when no headless session exists yet (it starts fresh in my tests)?
  6. Anything Linux-specific to know? The npm package needs Node 22+, which matters for an AppImage that resolves its own runtime search path.

What I can offer back: a reference adapter in TypeScript that spawns cmd -p --output-format json, maps the NDJSON stream onto transcript events, and handles resume, cancel, and model switching. Happy to shape it to whatever contract you bless, or to test an unstable flag and report back.

Tested on: command-code 1.56.0, Node v22.23.2, Linux x64.

主要语言
没有语言数据
星标
4k
派生
350
PR 合并指标
30 天内没有已合并 PR

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

CommandCodeAI/command-code 的其他 Issue

查看 CommandCodeAI/command-code 的全部 Issue

相似的 Issue

更多 Backend & API Design Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。