Docs/Plataforma e integrações/Servidor e API Tudo que a UI faz,
a API faz.
O binário embarca um servidor HTTP com spec OpenAPI 3.1. TUI, desktop, web e mobile são clientes dele — e o seu código também pode ser, direto ou pelo SDK.
terminal
MVCODE_SERVER_PASSWORD=segredo mvcode serve --port 4096
→ spec navegável em http://localhost:4096/doc
Flags: --port (4096), --hostname (127.0.0.1), --mdns, --mdns-domain, --cors (repetível). Basic auth via MVCODE_SERVER_PASSWORD / _USERNAME. A spec em /doc é a referência completa e sempre atual — esta página mapeia os grupos.
01Sessões e mensagens
GET/sessionLista sessões; /session/:id/children traz a árvore de subagentes.
POST/sessionCria sessão — parentID opcional para filhas.
POST/session/:id/messageEnvia prompt e espera a resposta completa (modelo, agente, parts).
POST/session/:id/prompt_asyncEnvia sem esperar — acompanhe pelos eventos.
POST/session/:id/abort · /fork · /revert · /summarizeInterrompe · ramifica em uma mensagem · desfaz · resume.
POST/session/:id/permissions/:permissionIDResponde permissão pendente (response, remember?) — o que o mobile usa.
GET/session/:id/diffO diff da sessão, por mensagem se quiser.
POST/session/:id/shareCria o link público; DELETE remove. Share →
02Eventos em tempo real
GET/eventStream SSE — primeiro evento server.connected, depois o bus inteiro: mensagens, tool-calls, permissões, status.
GET/global/event · /global/healthEventos globais · saúde e versão do servidor.
É o mesmo fluxo que alimenta as interfaces — streams retomáveis, pensados para conexões intermitentes.
03Arquivos e busca
GET/find?pattern= · /find/file?query= · /find/symbol?query=Texto por regex · arquivos por fuzzy · símbolos do workspace.
GET/file?path= · /file/content?path= · /file/statusListagem · conteúdo · status Git dos arquivos.
Implementado As APIs de mutação completam o ciclo: escrever conteúdo, criar diretórios, renomear e excluir — com confinamento de caminho symlink-safe; nada escapa do workspace por link simbólico.
04Config, provedores e agentes
GET/config · /config/providersConfig resolvida · provedores com modelos default.
PATCH/configAtualiza a config — merge profundo; é o mecanismo por trás dos diálogos de gestão do app.
POST/provider/{id}/oauth/authorize · /callbackFluxo OAuth de provedor.
GET/agent · /command · /lsp · /formatter · /mcpInventário do runtime: agentes, comandos, status de LSP, formatadores e MCP.
PUT/auth/:idGrava credencial de provedor no auth store.
05Superfícies estendidas
GET/connector · /connector/:id/health · /model · /agentDescoberta de connectors e runtimes externos. Implementado
GET/session/:id/mailboxMensagens agent-to-agent da sessão; POST envia. Requer subagentes assíncronos habilitados. Em rollout
POST/api/push/pair/start · /complete · /deliverPareamento de dispositivo e entrega de push. Flag MVCODE_ENABLE_MOBILE_PUSH. Em rollout
06Dirigindo a TUI
O grupo /tui controla uma TUI conectada — a base das integrações de editor, do ACP à futura extensão VS Code:
POST/tui/append-prompt · /submit-prompt · /clear-promptPrefil, envio e limpeza do composer.
POST/tui/execute-command · /show-toast · /open-models …Comandos, toasts e diálogos por HTTP.
07Exemplo mínimo
bash + curlsh
# cria uma sessão
curl -s -u opencode:$MVCODE_SERVER_PASSWORD \
-X POST http://localhost:4096/session | jq -r .id
# manda um prompt e espera a resposta
curl -s -u opencode:$MVCODE_SERVER_PASSWORD \
-X POST http://localhost:4096/session/$SID/message \
-H 'content-type: application/json' \
-d '{"parts":[{"type":"text","text":"Resuma este projeto"}]}'
Para uso sério, gere o cliente pela spec — ou use o SDK oficial, que já vem tipado.