CommandCodeAI / CommandCodeAI/command-code

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

Aberta
#879 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
Sem dados de linguagem
Estrelas
4k
Forks
350
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelos pontos de entrada headless nomeados na solicitação: cmd -p --output-format json, --list-models, status --json, cmd login e o tratamento de retomada ou cancelamento. Compare o comportamento atual deles em command-code 1.56.0 e determine quais comportamentos de eventos, lista de modelos, autenticação, sinais, concorrência e runtime do Linux podem ser documentados ou estabilizados. A tarefa estará concluída quando o contrato suportado e quaisquer flags necessárias estiverem claramente especificados para clientes como o adaptador TypeScript proposto.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
linux, node.js, react, tauri, typescript
Domínio
api, cli, desktop
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Ativa
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.