chore: generate

This commit is contained in:
opencode-agent[bot]
2026-02-09 17:35:30 +00:00
parent dc53086c1e
commit d578f80f00
222 changed files with 6797 additions and 6590 deletions

View File

@@ -63,4 +63,4 @@ Removemos algumas funcionalidades das quais não tínhamos certeza se alguém re
- app_help
- project_init
- tool_details
- thinking_blocks
- thinking_blocks

View File

@@ -153,4 +153,4 @@ Alguns comandos de barra integrados, como `/undo` e `/redo`, atualmente não sã
- Servidores MCP configurados na sua configuração do OpenCode
- Regras específicas do projeto do `AGENTS.md`
- Formatadores e linters personalizados
- Sistema de agentes e permissões
- Sistema de agentes e permissões

View File

@@ -744,4 +744,4 @@ Procure por:
- Riscos de exposição de dados
- Vulnerabilidades de dependência
- Problemas de segurança de configuração
```
```

View File

@@ -29,15 +29,15 @@ opencode [projeto]
#### Flags
| Flag | Curto | Descrição |
| ------------ | ----- | ------------------------------------------- |
| `--continue` | `-c` | Continue a última sessão |
| `--session` | `-s` | ID da sessão para continuar |
| `--prompt` | | Prompt a ser usado |
| Flag | Curto | Descrição |
| ------------ | ----- | ---------------------------------------------- |
| `--continue` | `-c` | Continue a última sessão |
| `--session` | `-s` | ID da sessão para continuar |
| `--prompt` | | Prompt a ser usado |
| `--model` | `-m` | Modelo a ser usado na forma de provedor/modelo |
| `--agent` | | Agente a ser usado |
| `--port` | | Porta para escutar |
| `--hostname` | | Nome do host para escutar |
| `--agent` | | Agente a ser usado |
| `--port` | | Porta para escutar |
| `--hostname` | | Nome do host para escutar |
---
@@ -77,10 +77,10 @@ opencode attach http://10.20.30.40:4096
#### Flags
| Flag | Curto | Descrição |
| ----------- | ----- | -------------------------------- |
| Flag | Curto | Descrição |
| ----------- | ----- | ---------------------------------------- |
| `--dir` | | Diretório de trabalho para iniciar o TUI |
| `--session` | `-s` | ID da sessão para continuar |
| `--session` | `-s` | ID da sessão para continuar |
---
@@ -186,10 +186,10 @@ opencode github run
##### Flags
| Flag | Descrição |
| --------- | ------------------------------------- |
| Flag | Descrição |
| --------- | ------------------------------------------------ |
| `--event` | Evento simulado do GitHub para executar o agente |
| `--token` | Token de acesso pessoal do GitHub |
| `--token` | Token de acesso pessoal do GitHub |
---
@@ -295,9 +295,9 @@ opencode models anthropic
#### Flags
| Flag | Descrição |
| ----------- | ---------------------------------------------------------- |
| `--refresh` | Atualiza o cache de modelos a partir do models.dev |
| Flag | Descrição |
| ----------- | --------------------------------------------------------------------- |
| `--refresh` | Atualiza o cache de modelos a partir do models.dev |
| `--verbose` | Use uma saída de modelo mais detalhada (inclui metadados como custos) |
Use a flag `--refresh` para atualizar a lista de modelos em cache. Isso é útil quando novos modelos foram adicionados a um provedor e você deseja vê-los no OpenCode.
@@ -334,19 +334,19 @@ opencode run --attach http://localhost:4096 "Explique async/await em JavaScript"
#### Flags
| Flag | Curto | Descrição |
| ------------ | ----- | ---------------------------------------------------------------- |
| `--command` | | O comando a ser executado, use mensagem para argumentos |
| `--continue` | `-c` | Continue a última sessão |
| `--session` | `-s` | ID da sessão para continuar |
| `--share` | | Compartilhe a sessão |
| `--model` | `-m` | Modelo a ser usado na forma de provedor/modelo |
| `--agent` | | Agente a ser usado |
| `--file` | `-f` | Arquivo(s) a serem anexados à mensagem |
| `--format` | | Formato: padrão (formatado) ou json (eventos JSON brutos) |
| `--title` | | Título para a sessão (usa o prompt truncado se nenhum valor for fornecido) |
| Flag | Curto | Descrição |
| ------------ | ----- | ----------------------------------------------------------------------------- |
| `--command` | | O comando a ser executado, use mensagem para argumentos |
| `--continue` | `-c` | Continue a última sessão |
| `--session` | `-s` | ID da sessão para continuar |
| `--share` | | Compartilhe a sessão |
| `--model` | `-m` | Modelo a ser usado na forma de provedor/modelo |
| `--agent` | | Agente a ser usado |
| `--file` | `-f` | Arquivo(s) a serem anexados à mensagem |
| `--format` | | Formato: padrão (formatado) ou json (eventos JSON brutos) |
| `--title` | | Título para a sessão (usa o prompt truncado se nenhum valor for fornecido) |
| `--attach` | | Anexe a um servidor opencode em execução (por exemplo, http://localhost:4096) |
| `--port` | | Porta para o servidor local (padrão para porta aleatória) |
| `--port` | | Porta para o servidor local (padrão para porta aleatória) |
---
@@ -362,11 +362,11 @@ Isso inicia um servidor HTTP que fornece acesso à funcionalidade do opencode se
#### Flags
| Flag | Descrição |
| ------------ | ------------------------------------------- |
| `--port` | Porta para escutar |
| `--hostname` | Nome do host para escutar |
| `--mdns` | Habilitar descoberta mDNS |
| Flag | Descrição |
| ------------ | ----------------------------------------------------- |
| `--port` | Porta para escutar |
| `--hostname` | Nome do host para escutar |
| `--mdns` | Habilitar descoberta mDNS |
| `--cors` | Origem(ns) de navegador adicionais para permitir CORS |
---
@@ -391,9 +391,9 @@ opencode session list
##### Flags
| Flag | Curto | Descrição |
| ------------- | ----- | ---------------------------------- |
| `--max-count` | `-n` | Limitar às N sessões mais recentes |
| Flag | Curto | Descrição |
| ------------- | ----- | ----------------------------------------- |
| `--max-count` | `-n` | Limitar às N sessões mais recentes |
| `--format` | | Formato de saída: tabela ou json (tabela) |
---
@@ -408,12 +408,12 @@ opencode stats
#### Flags
| Flag | Descrição |
| ----------- | ------------------------------------------------------------------------- |
| `--days` | Mostre estatísticas dos últimos N dias (todo o tempo) |
| `--tools` | Número de ferramentas a serem mostradas (todas) |
| Flag | Descrição |
| ----------- | ---------------------------------------------------------------------------------------------------- |
| `--days` | Mostre estatísticas dos últimos N dias (todo o tempo) |
| `--tools` | Número de ferramentas a serem mostradas (todas) |
| `--models` | Mostre a divisão do uso de modelos (oculto por padrão). Passe um número para mostrar os N principais |
| `--project` | Filtrar por projeto (todos os projetos, string vazia: projeto atual) |
| `--project` | Filtrar por projeto (todos os projetos, string vazia: projeto atual) |
---
@@ -458,11 +458,11 @@ Isso inicia um servidor HTTP e abre um navegador para acessar o OpenCode atravé
#### Flags
| Flag | Descrição |
| ------------ | ------------------------------------------- |
| `--port` | Porta para escutar |
| `--hostname` | Nome do host para escutar |
| `--mdns` | Habilitar descoberta mDNS |
| Flag | Descrição |
| ------------ | ----------------------------------------------------- |
| `--port` | Porta para escutar |
| `--hostname` | Nome do host para escutar |
| `--mdns` | Habilitar descoberta mDNS |
| `--cors` | Origem(ns) de navegador adicionais para permitir CORS |
---
@@ -479,10 +479,10 @@ Este comando inicia um servidor ACP que se comunica via stdin/stdout usando nd-J
#### Flags
| Flag | Descrição |
| ------------ | ------------------- |
| `--cwd` | Diretório de trabalho |
| `--port` | Porta para escutar |
| Flag | Descrição |
| ------------ | ------------------------- |
| `--cwd` | Diretório de trabalho |
| `--port` | Porta para escutar |
| `--hostname` | Nome do host para escutar |
---
@@ -497,12 +497,12 @@ opencode uninstall
#### Flags
| Flag | Curto | Descrição |
| --------------- | ----- | ----------------------------------------- |
| `--keep-config` | `-c` | Manter arquivos de configuração |
| Flag | Curto | Descrição |
| --------------- | ----- | ---------------------------------------- |
| `--keep-config` | `-c` | Manter arquivos de configuração |
| `--keep-data` | `-d` | Manter dados de sessão e snapshots |
| `--dry-run` | | Mostrar o que seria removido sem remover |
| `--force` | `-f` | Pular prompts de confirmação |
| `--force` | `-f` | Pular prompts de confirmação |
---
@@ -528,8 +528,8 @@ opencode upgrade v0.1.48
#### Flags
| Flag | Curto | Descrição |
| ---------- | ----- | --------------------------------------------------------------- |
| Flag | Curto | Descrição |
| ---------- | ----- | ---------------------------------------------------------------- |
| `--method` | `-m` | O método de instalação que foi usado; curl, npm, pnpm, bun, brew |
---
@@ -538,11 +538,11 @@ opencode upgrade v0.1.48
A CLI do opencode aceita as seguintes flags globais.
| Flag | Curto | Descrição |
| -------------- | ----- | ---------------------------------- |
| `--help` | `-h` | Exibir ajuda |
| `--version` | `-v` | Imprimir número da versão |
| `--print-logs` | | Imprimir logs no stderr |
| Flag | Curto | Descrição |
| -------------- | ----- | --------------------------------------- |
| `--help` | `-h` | Exibir ajuda |
| `--version` | `-v` | Imprimir número da versão |
| `--print-logs` | | Imprimir logs no stderr |
| `--log-level` | | Nível de log (DEBUG, INFO, WARN, ERROR) |
---
@@ -551,32 +551,32 @@ A CLI do opencode aceita as seguintes flags globais.
O OpenCode pode ser configurado usando variáveis de ambiente.
| Variável | Tipo | Descrição |
| ------------------------------------- | ------- | ------------------------------------------------- |
| `OPENCODE_AUTO_SHARE` | boolean | Compartilhar sessões automaticamente |
| `OPENCODE_GIT_BASH_PATH` | string | Caminho para o executável do Git Bash no Windows |
| `OPENCODE_CONFIG` | string | Caminho para o arquivo de configuração |
| `OPENCODE_CONFIG_DIR` | string | Caminho para o diretório de configuração |
| `OPENCODE_CONFIG_CONTENT` | string | Conteúdo de configuração json inline |
| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Desabilitar verificações de atualização automática |
| `OPENCODE_DISABLE_PRUNE` | boolean | Desabilitar a poda de dados antigos |
| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Desabilitar atualizações automáticas do título do terminal |
| `OPENCODE_PERMISSION` | string | Configuração de permissões json inline |
| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | Desabilitar plugins padrão |
| `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | Desabilitar downloads automáticos do servidor LSP |
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | Habilitar modelos experimentais |
| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | Desabilitar compactação automática de contexto |
| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | Desabilitar leitura de `.claude` (prompt + habilidades) |
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | Desabilitar leitura de `~/.claude/CLAUDE.md` |
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | Desabilitar carregamento de `.claude/skills` |
| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | Desabilitar busca de modelos de fontes remotas |
| `OPENCODE_FAKE_VCS` | string | Provedor VCS falso para fins de teste |
| `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | Desabilitar verificação de tempo de arquivo para otimização |
| `OPENCODE_CLIENT` | string | Identificador do cliente (padrão é `cli`) |
| `OPENCODE_ENABLE_EXA` | boolean | Habilitar ferramentas de busca web Exa |
| `OPENCODE_SERVER_PASSWORD` | string | Habilitar autenticação básica para `serve`/`web` |
| Variável | Tipo | Descrição |
| ------------------------------------- | ------- | --------------------------------------------------------------------- |
| `OPENCODE_AUTO_SHARE` | boolean | Compartilhar sessões automaticamente |
| `OPENCODE_GIT_BASH_PATH` | string | Caminho para o executável do Git Bash no Windows |
| `OPENCODE_CONFIG` | string | Caminho para o arquivo de configuração |
| `OPENCODE_CONFIG_DIR` | string | Caminho para o diretório de configuração |
| `OPENCODE_CONFIG_CONTENT` | string | Conteúdo de configuração json inline |
| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Desabilitar verificações de atualização automática |
| `OPENCODE_DISABLE_PRUNE` | boolean | Desabilitar a poda de dados antigos |
| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Desabilitar atualizações automáticas do título do terminal |
| `OPENCODE_PERMISSION` | string | Configuração de permissões json inline |
| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | Desabilitar plugins padrão |
| `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | Desabilitar downloads automáticos do servidor LSP |
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | Habilitar modelos experimentais |
| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | Desabilitar compactação automática de contexto |
| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | Desabilitar leitura de `.claude` (prompt + habilidades) |
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | Desabilitar leitura de `~/.claude/CLAUDE.md` |
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | Desabilitar carregamento de `.claude/skills` |
| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | Desabilitar busca de modelos de fontes remotas |
| `OPENCODE_FAKE_VCS` | string | Provedor VCS falso para fins de teste |
| `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | Desabilitar verificação de tempo de arquivo para otimização |
| `OPENCODE_CLIENT` | string | Identificador do cliente (padrão é `cli`) |
| `OPENCODE_ENABLE_EXA` | boolean | Habilitar ferramentas de busca web Exa |
| `OPENCODE_SERVER_PASSWORD` | string | Habilitar autenticação básica para `serve`/`web` |
| `OPENCODE_SERVER_USERNAME` | string | Substituir nome de usuário de autenticação básica (padrão `opencode`) |
| `OPENCODE_MODELS_URL` | string | URL personalizada para buscar configuração de modelos |
| `OPENCODE_MODELS_URL` | string | URL personalizada para buscar configuração de modelos |
---
@@ -584,18 +584,18 @@ O OpenCode pode ser configurado usando variáveis de ambiente.
Essas variáveis de ambiente habilitam recursos experimentais que podem mudar ou ser removidos.
| Variável | Tipo | Descrição |
| ----------------------------------------------- | ------- | ------------------------------------- |
| `OPENCODE_EXPERIMENTAL` | boolean | Habilitar todos os recursos experimentais |
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | Habilitar descoberta de ícones |
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | Desabilitar cópia ao selecionar no TUI |
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | Tempo limite padrão para comandos bash em ms |
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | Máximo de tokens de saída para respostas LLM |
| Variável | Tipo | Descrição |
| ----------------------------------------------- | ------- | --------------------------------------------------------- |
| `OPENCODE_EXPERIMENTAL` | boolean | Habilitar todos os recursos experimentais |
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | Habilitar descoberta de ícones |
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | Desabilitar cópia ao selecionar no TUI |
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | Tempo limite padrão para comandos bash em ms |
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | Máximo de tokens de saída para respostas LLM |
| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | Habilitar monitoramento de arquivos para todo o diretório |
| `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | Habilitar formatador oxfmt |
| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | Habilitar ferramenta LSP experimental |
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Desabilitar monitoramento de arquivos |
| `OPENCODE_EXPERIMENTAL_EXA` | boolean | Habilitar recursos experimentais do Exa |
| `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Habilitar verificação de tipo LSP experimental |
| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Habilitar recursos experimentais de markdown |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Habilitar modo de plano |
| `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | Habilitar formatador oxfmt |
| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | Habilitar ferramenta LSP experimental |
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Desabilitar monitoramento de arquivos |
| `OPENCODE_EXPERIMENTAL_EXA` | boolean | Habilitar recursos experimentais do Exa |
| `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Habilitar verificação de tipo LSP experimental |
| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Habilitar recursos experimentais de markdown |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Habilitar modo de plano |

View File

@@ -319,4 +319,4 @@ opencode inclui vários comandos integrados como `/init`, `/undo`, `/redo`, `/sh
Comandos personalizados podem substituir comandos integrados.
:::
Se você definir um comando personalizado com o mesmo nome, ele substituirá o comando integrado.
Se você definir um comando personalizado com o mesmo nome, ele substituirá o comando integrado.

View File

@@ -678,4 +678,4 @@ Esses são úteis para:
- Manter dados sensíveis, como chaves de API, em arquivos separados.
- Incluir grandes arquivos de instrução sem sobrecarregar sua configuração.
- Compartilhar trechos de configuração comuns entre vários arquivos de configuração.
- Compartilhar trechos de configuração comuns entre vários arquivos de configuração.

View File

@@ -167,4 +167,4 @@ export default tool({
})
```
Aqui estamos usando o utilitário [`Bun.$`](https://bun.com/docs/runtime/shell) para executar o script Python.
Aqui estamos usando o utilitário [`Bun.$`](https://bun.com/docs/runtime/shell) para executar o script Python.

View File

@@ -15,62 +15,62 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
## Plugins
| Nome | Descrição |
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Nome | Descrição |
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Execute automaticamente sessões do OpenCode em sandboxes isoladas do Daytona com sincronização git e pré-visualizações ao vivo |
| [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) | Injete automaticamente cabeçalhos de sessão Helicone para agrupamento de requisições |
| [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | Auto-injetar tipos TypeScript/Svelte em leituras de arquivos com ferramentas de busca |
| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Use sua assinatura ChatGPT Plus/Pro em vez de créditos de API |
| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | Use seu plano Gemini existente em vez de cobrança de API |
| [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) | Use os modelos gratuitos do Antigravity em vez de cobrança de API |
| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Isolamento de devcontainer multi-branch com clones rasos e portas atribuídas automaticamente |
| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Plugin Google Antigravity OAuth, com suporte para Google Search e manuseio de API mais robusto |
| [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Otimize o uso de tokens podando saídas de ferramentas obsoletas |
| [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Adicione suporte nativo de pesquisa na web para provedores suportados com estilo fundamentado no Google |
| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de IA executem processos em segundo plano em um PTY, enviando entrada interativa para eles. |
| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instruções para comandos de shell não interativos - evita travamentos de operações dependentes de TTY |
| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Acompanhe o uso do OpenCode com Wakatime |
| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Limpe tabelas markdown produzidas por LLMs |
| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | Edição de código 10x mais rápida com a API Morph Fast Apply e marcadores de edição preguiçosos |
| [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agentes em segundo plano, ferramentas LSP/AST/MCP pré-construídas, agentes curados, compatível com Claude Code |
| [opencode-notificator](https://github.com/panta82/opencode-notificator) | Notificações de desktop e alertas sonoros para sessões do OpenCode |
| [opencode-notifier](https://github.com/mohak34/opencode-notifier) | Notificações de desktop e alertas sonoros para eventos de permissão, conclusão e erro |
| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de IA com base no contexto do OpenCode |
| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | Permite que agentes do OpenCode carreguem prompts sob demanda com descoberta e injeção de habilidades |
| [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | Memória persistente entre sessões usando Supermemory |
| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Revisão de plano interativa com anotação visual e compartilhamento privado/offline |
| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | Estenda opencode /commands em um poderoso sistema de orquestração com controle de fluxo granular |
| [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | Agende trabalhos recorrentes usando launchd (Mac) ou systemd (Linux) com sintaxe cron |
| [micode](https://github.com/vtemian/micode) | Fluxo de trabalho Estruturado Brainstorm → Planejar → Implementar com continuidade de sessão |
| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de IA com formulários de múltiplas perguntas |
| [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | Agentes em segundo plano estilo Claude Code com delegação assíncrona e persistência de contexto |
| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | Notificações nativas do OS para OpenCode saiba quando as tarefas são concluídas |
| [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | Conjunto de orquestração multi-agente 16 componentes, uma instalação |
| [opencode-worktree](https://github.com/kdcokenny/opencode-worktree) | Worktrees git sem atrito para OpenCode |
| [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) | Injete automaticamente cabeçalhos de sessão Helicone para agrupamento de requisições |
| [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | Auto-injetar tipos TypeScript/Svelte em leituras de arquivos com ferramentas de busca |
| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Use sua assinatura ChatGPT Plus/Pro em vez de créditos de API |
| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | Use seu plano Gemini existente em vez de cobrança de API |
| [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) | Use os modelos gratuitos do Antigravity em vez de cobrança de API |
| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Isolamento de devcontainer multi-branch com clones rasos e portas atribuídas automaticamente |
| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Plugin Google Antigravity OAuth, com suporte para Google Search e manuseio de API mais robusto |
| [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Otimize o uso de tokens podando saídas de ferramentas obsoletas |
| [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Adicione suporte nativo de pesquisa na web para provedores suportados com estilo fundamentado no Google |
| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de IA executem processos em segundo plano em um PTY, enviando entrada interativa para eles. |
| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instruções para comandos de shell não interativos - evita travamentos de operações dependentes de TTY |
| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Acompanhe o uso do OpenCode com Wakatime |
| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Limpe tabelas markdown produzidas por LLMs |
| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | Edição de código 10x mais rápida com a API Morph Fast Apply e marcadores de edição preguiçosos |
| [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agentes em segundo plano, ferramentas LSP/AST/MCP pré-construídas, agentes curados, compatível com Claude Code |
| [opencode-notificator](https://github.com/panta82/opencode-notificator) | Notificações de desktop e alertas sonoros para sessões do OpenCode |
| [opencode-notifier](https://github.com/mohak34/opencode-notifier) | Notificações de desktop e alertas sonoros para eventos de permissão, conclusão e erro |
| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de IA com base no contexto do OpenCode |
| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | Permite que agentes do OpenCode carreguem prompts sob demanda com descoberta e injeção de habilidades |
| [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | Memória persistente entre sessões usando Supermemory |
| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Revisão de plano interativa com anotação visual e compartilhamento privado/offline |
| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | Estenda opencode /commands em um poderoso sistema de orquestração com controle de fluxo granular |
| [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | Agende trabalhos recorrentes usando launchd (Mac) ou systemd (Linux) com sintaxe cron |
| [micode](https://github.com/vtemian/micode) | Fluxo de trabalho Estruturado Brainstorm → Planejar → Implementar com continuidade de sessão |
| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de IA com formulários de múltiplas perguntas |
| [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | Agentes em segundo plano estilo Claude Code com delegação assíncrona e persistência de contexto |
| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | Notificações nativas do OS para OpenCode saiba quando as tarefas são concluídas |
| [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | Conjunto de orquestração multi-agente 16 componentes, uma instalação |
| [opencode-worktree](https://github.com/kdcokenny/opencode-worktree) | Worktrees git sem atrito para OpenCode |
---
## Projetos
| Nome | Descrição |
| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
| Nome | Descrição |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| [kimaki](https://github.com/remorses/kimaki) | Bot do Discord para controlar sessões do OpenCode, construído sobre o SDK |
| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Plugin Neovim para prompts cientes do editor, construído sobre a API |
| [portal](https://github.com/hosenur/portal) | UI web mobile-first para OpenCode sobre Tailscale/VPN |
| [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | Template para construir plugins do OpenCode |
| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Frontend Neovim para opencode - um agente de codificação AI baseado em terminal |
| [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Provedor Vercel AI SDK para usar OpenCode via @opencode-ai/sdk |
| [OpenChamber](https://github.com/btriapitsyn/openchamber) | Aplicativo Web / Desktop e Extensão do VS Code para OpenCode |
| [OpenCode-Obsidian](https://github.com/mtymek/opencode-obsidian) | Plugin Obsidian que incorpora OpenCode na UI do Obsidian |
| [OpenWork](https://github.com/different-ai/openwork) | Uma alternativa de código aberto ao Claude Cowork, alimentada pelo OpenCode |
| [ocx](https://github.com/kdcokenny/ocx) | Gerenciador de extensões OpenCode com perfis portáteis e isolados. |
| [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Aplicativo Desktop, Web, Mobile e Cliente Remoto para OpenCode |
| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Plugin Neovim para prompts cientes do editor, construído sobre a API |
| [portal](https://github.com/hosenur/portal) | UI web mobile-first para OpenCode sobre Tailscale/VPN |
| [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | Template para construir plugins do OpenCode |
| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Frontend Neovim para opencode - um agente de codificação AI baseado em terminal |
| [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Provedor Vercel AI SDK para usar OpenCode via @opencode-ai/sdk |
| [OpenChamber](https://github.com/btriapitsyn/openchamber) | Aplicativo Web / Desktop e Extensão do VS Code para OpenCode |
| [OpenCode-Obsidian](https://github.com/mtymek/opencode-obsidian) | Plugin Obsidian que incorpora OpenCode na UI do Obsidian |
| [OpenWork](https://github.com/different-ai/openwork) | Uma alternativa de código aberto ao Claude Cowork, alimentada pelo OpenCode |
| [ocx](https://github.com/kdcokenny/ocx) | Gerenciador de extensões OpenCode com perfis portáteis e isolados. |
| [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Aplicativo Desktop, Web, Mobile e Cliente Remoto para OpenCode |
---
## Agentes
| Nome | Descrição |
| ----------------------------------------------------------------- | ------------------------------------------------------------ |
| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de IA modulares para desenvolvimento estruturado |
| [opencode-agents](https://github.com/darrenhinde/opencode-agents) | Configurações, prompts, agentes e plugins para fluxos de trabalho aprimorados |
| Nome | Descrição |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de IA modulares para desenvolvimento estruturado |
| [opencode-agents](https://github.com/darrenhinde/opencode-agents) | Configurações, prompts, agentes e plugins para fluxos de trabalho aprimorados |

View File

@@ -163,4 +163,4 @@ registry=https://your-company.jfrog.io/api/npm/npm-virtual/
Os desenvolvedores devem estar logados no registro privado antes de executar o OpenCode para garantir que os pacotes possam ser instalados a partir do seu registro empresarial.
</details>
</details>

View File

@@ -11,32 +11,32 @@ OpenCode formata automaticamente arquivos após serem escritos ou editados usand
OpenCode vem com vários formatadores integrados para linguagens e frameworks populares. Abaixo está uma lista dos formatadores, extensões de arquivo suportadas e comandos ou opções de configuração necessárias.
| Formatador | Extensões | Requisitos |
| ------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| gofmt | .go | Comando `gofmt` disponível |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Comando `mix` disponível |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e [mais](https://prettier.io/docs/en/index.html) | Dependência `prettier` em `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e [mais](https://biomejs.dev/) | Arquivo de configuração `biome.json(c)` |
| zig | .zig, .zon | Comando `zig` disponível |
| clang-format | .c, .cpp, .h, .hpp, .ino, e [mais](https://clang.llvm.org/docs/ClangFormat.html) | Arquivo de configuração `.clang-format` |
| ktlint | .kt, .kts | Comando `ktlint` disponível |
| ruff | .py, .pyi | Comando `ruff` disponível com configuração |
| rustfmt | .rs | Comando `rustfmt` disponível |
| cargofmt | .rs | Comando `cargo fmt` disponível |
| uv | .py, .pyi | Comando `uv` disponível |
| rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponível |
| standardrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponível |
| htmlbeautifier | .erb, .html.erb | Comando `htmlbeautifier` disponível |
| air | .R | Comando `air` disponível |
| dart | .dart | Comando `dart` disponível |
| ocamlformat | .ml, .mli | Comando `ocamlformat` disponível e arquivo de configuração `.ocamlformat` |
| terraform | .tf, .tfvars | Comando `terraform` disponível |
| gleam | .gleam | Comando `gleam` disponível |
| nixfmt | .nix | Comando `nixfmt` disponível |
| shfmt | .sh, .bash | Comando `shfmt` disponível |
| pint | .php | Dependência `laravel/pint` em `composer.json` |
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | Dependência `oxfmt` em `package.json` e uma [variável de ambiente experimental](/docs/cli/#experimental) |
| ormolu | .hs | Comando `ormolu` disponível |
| Formatador | Extensões | Requisitos |
| -------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| gofmt | .go | Comando `gofmt` disponível |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Comando `mix` disponível |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e [mais](https://prettier.io/docs/en/index.html) | Dependência `prettier` em `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e [mais](https://biomejs.dev/) | Arquivo de configuração `biome.json(c)` |
| zig | .zig, .zon | Comando `zig` disponível |
| clang-format | .c, .cpp, .h, .hpp, .ino, e [mais](https://clang.llvm.org/docs/ClangFormat.html) | Arquivo de configuração `.clang-format` |
| ktlint | .kt, .kts | Comando `ktlint` disponível |
| ruff | .py, .pyi | Comando `ruff` disponível com configuração |
| rustfmt | .rs | Comando `rustfmt` disponível |
| cargofmt | .rs | Comando `cargo fmt` disponível |
| uv | .py, .pyi | Comando `uv` disponível |
| rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponível |
| standardrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponível |
| htmlbeautifier | .erb, .html.erb | Comando `htmlbeautifier` disponível |
| air | .R | Comando `air` disponível |
| dart | .dart | Comando `dart` disponível |
| ocamlformat | .ml, .mli | Comando `ocamlformat` disponível e arquivo de configuração `.ocamlformat` |
| terraform | .tf, .tfvars | Comando `terraform` disponível |
| gleam | .gleam | Comando `gleam` disponível |
| nixfmt | .nix | Comando `nixfmt` disponível |
| shfmt | .sh, .bash | Comando `shfmt` disponível |
| pint | .php | Dependência `laravel/pint` em `composer.json` |
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | Dependência `oxfmt` em `package.json` e uma [variável de ambiente experimental](/docs/cli/#experimental) |
| ormolu | .hs | Comando `ormolu` disponível |
Portanto, se seu projeto tiver `prettier` em seu `package.json`, o OpenCode o usará automaticamente.
@@ -67,12 +67,12 @@ Você pode personalizar os formatadores através da seção `formatter` em sua c
Cada configuração de formatador suporta o seguinte:
| Propriedade | Tipo | Descrição |
| ---------------- | -------- | ----------------------------------------------------- |
| `disabled` | boolean | Defina como `true` para desabilitar o formatador |
| `command` | string[] | O comando a ser executado para formatação |
| `environment` | object | Variáveis de ambiente a serem definidas ao executar o formatador |
| `extensions` | string[] | Extensões de arquivo que este formatador deve tratar |
| Propriedade | Tipo | Descrição |
| ------------- | -------- | ---------------------------------------------------------------- |
| `disabled` | boolean | Defina como `true` para desabilitar o formatador |
| `command` | string[] | O comando a ser executado para formatação |
| `environment` | object | Variáveis de ambiente a serem definidas ao executar o formatador |
| `extensions` | string[] | Extensões de arquivo que este formatador deve tratar |
Vamos ver alguns exemplos.
@@ -127,4 +127,4 @@ Você pode substituir os formatadores integrados ou adicionar novos especificand
}
```
O **placeholder `$FILE`** no comando será substituído pelo caminho do arquivo que está sendo formatado.
O **placeholder `$FILE`** no comando será substituído pelo caminho do arquivo que está sendo formatado.

View File

@@ -105,14 +105,14 @@ Ou você pode configurá-lo manualmente.
O OpenCode pode ser acionado pelos seguintes eventos do GitHub:
| Tipo de Evento | Acionado Por | Detalhes |
| --------------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `issue_comment` | Comentário em um problema ou PR | Mencione `/opencode` ou `/oc` em seu comentário. O OpenCode lê o contexto e pode criar branches, abrir PRs ou responder. |
| `pull_request_review_comment` | Comentário em linhas de código específicas em um PR | Mencione `/opencode` ou `/oc` enquanto revisa o código. O OpenCode recebe o caminho do arquivo, números das linhas e contexto do diff. |
| `issues` | Problema aberto ou editado | Aciona automaticamente o OpenCode quando problemas são criados ou modificados. Requer entrada de `prompt`. |
| `pull_request` | PR aberto ou atualizado | Aciona automaticamente o OpenCode quando PRs são abertos, sincronizados ou reabertos. Útil para revisões automatizadas. |
| `schedule` | Cron baseado em agendamento | Execute o OpenCode em um cronograma. Requer entrada de `prompt`. A saída vai para logs e PRs (sem problema para comentar). |
| `workflow_dispatch` | Acionamento manual pela interface do GitHub | Acione o OpenCode sob demanda através da aba Ações. Requer entrada de `prompt`. A saída vai para logs e PRs. |
| Tipo de Evento | Acionado Por | Detalhes |
| ----------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `issue_comment` | Comentário em um problema ou PR | Mencione `/opencode` ou `/oc` em seu comentário. O OpenCode lê o contexto e pode criar branches, abrir PRs ou responder. |
| `pull_request_review_comment` | Comentário em linhas de código específicas em um PR | Mencione `/opencode` ou `/oc` enquanto revisa o código. O OpenCode recebe o caminho do arquivo, números das linhas e contexto do diff. |
| `issues` | Problema aberto ou editado | Aciona automaticamente o OpenCode quando problemas são criados ou modificados. Requer entrada de `prompt`. |
| `pull_request` | PR aberto ou atualizado | Aciona automaticamente o OpenCode quando PRs são abertos, sincronizados ou reabertos. Útil para revisões automatizadas. |
| `schedule` | Cron baseado em agendamento | Execute o OpenCode em um cronograma. Requer entrada de `prompt`. A saída vai para logs e PRs (sem problema para comentar). |
| `workflow_dispatch` | Acionamento manual pela interface do GitHub | Acione o OpenCode sob demanda através da aba Ações. Requer entrada de `prompt`. A saída vai para logs e PRs. |
### Exemplo de Agendamento
@@ -318,4 +318,4 @@ Aqui estão alguns exemplos de como você pode usar o OpenCode no GitHub.
- O contexto do diff ao redor
- Informações sobre números de linha
Isso permite solicitações mais direcionadas sem precisar especificar caminhos de arquivos ou números de linhas manualmente.
Isso permite solicitações mais direcionadas sem precisar especificar caminhos de arquivos ou números de linhas manualmente.

View File

@@ -192,4 +192,4 @@ Você pode configurar para usar uma frase de gatilho diferente de `@opencode`.
@opencode review this merge request
```
O OpenCode revisará a solicitação de mesclagem e fornecerá feedback.
O OpenCode revisará a solicitação de mesclagem e fornecerá feedback.

View File

@@ -45,4 +45,4 @@ Se a extensão falhar ao instalar automaticamente:
- Para Windsurf: comando `windsurf`
- Para VSCodium: comando `codium`
- Se não, execute `Cmd+Shift+P` (Mac) ou `Ctrl+Shift+P` (Windows/Linux) e procure por "Shell Command: Install 'code' command in PATH" (ou o equivalente para sua IDE)
- Certifique-se de que o VS Code tem permissão para instalar extensões
- Certifique-se de que o VS Code tem permissão para instalar extensões

View File

@@ -338,4 +338,4 @@ Aqui está uma [conversa de exemplo](https://opencode.ai/s/4XP1fce5) com o OpenC
E é isso! Agora você é um profissional em usar o OpenCode.
Para torná-lo seu, recomendamos [escolher um tema](/docs/themes), [personalizar os atalhos de teclado](/docs/keybinds), [configurar formatadores de código](/docs/formatters), [criar comandos personalizados](/docs/commands) ou brincar com a [configuração do OpenCode](/docs/config).
Para torná-lo seu, recomendamos [escolher um tema](/docs/themes), [personalizar os atalhos de teclado](/docs/keybinds), [configurar formatadores de código](/docs/formatters), [criar comandos personalizados](/docs/commands) ou brincar com a [configuração do OpenCode](/docs/config).

View File

@@ -134,20 +134,20 @@ Você pode desativar um atalho adicionando a tecla à sua configuração com um
O prompt de entrada do aplicativo desktop OpenCode suporta atalhos comuns de estilo Readline/Emacs para edição de texto. Estes são embutidos e atualmente não são configuráveis via `opencode.json`.
| Atalho | Ação |
| -------- | ---------------------------------------- |
| `ctrl+a` | Mover para o início da linha atual |
| `ctrl+e` | Mover para o final da linha atual |
| `ctrl+b` | Mover o cursor uma posição para trás |
| `ctrl+f` | Mover o cursor uma posição para frente |
| `alt+b` | Mover o cursor uma palavra para trás |
| `alt+f` | Mover o cursor uma palavra para frente |
| `ctrl+d` | Deletar o caractere sob o cursor |
| `ctrl+k` | Matar até o final da linha |
| `ctrl+u` | Matar até o início da linha |
| `ctrl+w` | Matar a palavra anterior |
| `alt+d` | Matar a próxima palavra |
| `ctrl+t` | Transpor caracteres |
| Atalho | Ação |
| -------- | ------------------------------------------------ |
| `ctrl+a` | Mover para o início da linha atual |
| `ctrl+e` | Mover para o final da linha atual |
| `ctrl+b` | Mover o cursor uma posição para trás |
| `ctrl+f` | Mover o cursor uma posição para frente |
| `alt+b` | Mover o cursor uma palavra para trás |
| `alt+f` | Mover o cursor uma palavra para frente |
| `ctrl+d` | Deletar o caractere sob o cursor |
| `ctrl+k` | Matar até o final da linha |
| `ctrl+u` | Matar até o início da linha |
| `ctrl+w` | Matar a palavra anterior |
| `alt+d` | Matar a próxima palavra |
| `ctrl+t` | Transpor caracteres |
| `ctrl+g` | Cancelar popovers / abortar resposta em execução |
---
@@ -189,4 +189,4 @@ Adicione isso ao array `keybindings` de nível raiz:
]
```
Salve o arquivo e reinicie o Windows Terminal ou abra uma nova aba.
Salve o arquivo e reinicie o Windows Terminal ou abra uma nova aba.

View File

@@ -11,40 +11,40 @@ OpenCode integra-se ao seu Protocolo de Servidor de Linguagem (LSP) para ajudar
OpenCode vem com vários servidores LSP integrados para linguagens populares:
| Servidor LSP | Extensões | Requisitos |
| ------------------ | ------------------------------------------------------------------- | ---------------------------------------------------------- |
| astro | .astro | Instala automaticamente para projetos Astro |
| bash | .sh, .bash, .zsh, .ksh | Instala automaticamente bash-language-server |
| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Instala automaticamente para projetos C/C++ |
| csharp | .cs | `.NET SDK` instalado |
| clojure-lsp | .clj, .cljs, .cljc, .edn | Comando `clojure-lsp` disponível |
| dart | .dart | Comando `dart` disponível |
| Servidor LSP | Extensões | Requisitos |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| astro | .astro | Instala automaticamente para projetos Astro |
| bash | .sh, .bash, .zsh, .ksh | Instala automaticamente bash-language-server |
| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Instala automaticamente para projetos C/C++ |
| csharp | .cs | `.NET SDK` instalado |
| clojure-lsp | .clj, .cljs, .cljc, .edn | Comando `clojure-lsp` disponível |
| dart | .dart | Comando `dart` disponível |
| deno | .ts, .tsx, .js, .jsx, .mjs | Comando `deno` disponível (detecta automaticamente deno.json/deno.jsonc) |
| elixir-ls | .ex, .exs | Comando `elixir` disponível |
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | Dependência `eslint` no projeto |
| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` instalado |
| gleam | .gleam | Comando `gleam` disponível |
| gopls | .go | Comando `go` disponível |
| hls | .hs, .lhs | Comando `haskell-language-server-wrapper` disponível |
| jdtls | .java | `Java SDK (versão 21+)` instalado |
| kotlin-ls | .kt, .kts | Instala automaticamente para projetos Kotlin |
| lua-ls | .lua | Instala automaticamente para projetos Lua |
| nixd | .nix | Comando `nixd` disponível |
| ocaml-lsp | .ml, .mli | Comando `ocamllsp` disponível |
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | Dependência `oxlint` no projeto |
| php intelephense | .php | Instala automaticamente para projetos PHP |
| prisma | .prisma | Comando `prisma` disponível |
| pyright | .py, .pyi | Dependência `pyright` instalada |
| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Comandos `ruby` e `gem` disponíveis |
| rust | .rs | Comando `rust-analyzer` disponível |
| sourcekit-lsp | .swift, .objc, .objcpp | `swift` instalado (`xcode` no macOS) |
| svelte | .svelte | Instala automaticamente para projetos Svelte |
| terraform | .tf, .tfvars | Instala automaticamente a partir de lançamentos do GitHub |
| tinymist | .typ, .typc | Instala automaticamente a partir de lançamentos do GitHub |
| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | Dependência `typescript` no projeto |
| vue | .vue | Instala automaticamente para projetos Vue |
| yaml-ls | .yaml, .yml | Instala automaticamente o servidor yaml-language-server da Red Hat |
| zls | .zig, .zon | Comando `zig` disponível |
| elixir-ls | .ex, .exs | Comando `elixir` disponível |
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | Dependência `eslint` no projeto |
| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` instalado |
| gleam | .gleam | Comando `gleam` disponível |
| gopls | .go | Comando `go` disponível |
| hls | .hs, .lhs | Comando `haskell-language-server-wrapper` disponível |
| jdtls | .java | `Java SDK (versão 21+)` instalado |
| kotlin-ls | .kt, .kts | Instala automaticamente para projetos Kotlin |
| lua-ls | .lua | Instala automaticamente para projetos Lua |
| nixd | .nix | Comando `nixd` disponível |
| ocaml-lsp | .ml, .mli | Comando `ocamllsp` disponível |
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | Dependência `oxlint` no projeto |
| php intelephense | .php | Instala automaticamente para projetos PHP |
| prisma | .prisma | Comando `prisma` disponível |
| pyright | .py, .pyi | Dependência `pyright` instalada |
| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Comandos `ruby` e `gem` disponíveis |
| rust | .rs | Comando `rust-analyzer` disponível |
| sourcekit-lsp | .swift, .objc, .objcpp | `swift` instalado (`xcode` no macOS) |
| svelte | .svelte | Instala automaticamente para projetos Svelte |
| terraform | .tf, .tfvars | Instala automaticamente a partir de lançamentos do GitHub |
| tinymist | .typ, .typc | Instala automaticamente a partir de lançamentos do GitHub |
| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | Dependência `typescript` no projeto |
| vue | .vue | Instala automaticamente para projetos Vue |
| yaml-ls | .yaml, .yml | Instala automaticamente o servidor yaml-language-server da Red Hat |
| zls | .zig, .zon | Comando `zig` disponível |
Os servidores LSP são habilitados automaticamente quando uma das extensões de arquivo acima é detectada e os requisitos são atendidos.
@@ -76,13 +76,13 @@ Você pode personalizar os servidores LSP através da seção `lsp` na sua confi
Cada servidor LSP suporta o seguinte:
| Propriedade | Tipo | Descrição |
| ------------------ | -------- | ------------------------------------------------- |
| `disabled` | boolean | Defina como `true` para desabilitar o servidor LSP |
| `command` | string[] | O comando para iniciar o servidor LSP |
| `extensions` | string[] | Extensões de arquivo que este servidor LSP deve manipular |
| `env` | object | Variáveis de ambiente a serem definidas ao iniciar o servidor |
| `initialization` | object | Opções de inicialização a serem enviadas ao servidor LSP |
| Propriedade | Tipo | Descrição |
| ---------------- | -------- | ------------------------------------------------------------- |
| `disabled` | boolean | Defina como `true` para desabilitar o servidor LSP |
| `command` | string[] | O comando para iniciar o servidor LSP |
| `extensions` | string[] | Extensões de arquivo que este servidor LSP deve manipular |
| `env` | object | Variáveis de ambiente a serem definidas ao iniciar o servidor |
| `initialization` | object | Opções de inicialização a serem enviadas ao servidor LSP |
Vamos ver alguns exemplos.
@@ -185,4 +185,4 @@ PHP Intelephense oferece recursos premium através de uma chave de licença. Voc
- No macOS/Linux: `$HOME/intelephense/licence.txt`
- No Windows: `%USERPROFILE%/intelephense/licence.txt`
O arquivo deve conter apenas a chave de licença sem conteúdo adicional.
O arquivo deve conter apenas a chave de licença sem conteúdo adicional.

View File

@@ -116,13 +116,13 @@ use the mcp_tudo tool to add the number 3 and 4
Aqui estão todas as opções para configurar um servidor MCP local.
| Opção | Tipo | Requerido | Descrição |
| ------------ | ------- | --------- | --------------------------------------------------------------------------------- |
| `type` | String | S | Tipo de conexão do servidor MCP, deve ser `"local"`. |
| `command` | Array | S | Comando e argumentos para executar o servidor MCP. |
| `environment`| Object | | Variáveis de ambiente a serem definidas ao executar o servidor. |
| `enabled` | Boolean | | Habilitar ou desabilitar o servidor MCP na inicialização. |
| `timeout` | Number | | Tempo limite em ms para buscar ferramentas do servidor MCP. O padrão é 5000 (5 segundos). |
| Opção | Tipo | Requerido | Descrição |
| ------------- | ------- | --------- | ----------------------------------------------------------------------------------------- |
| `type` | String | S | Tipo de conexão do servidor MCP, deve ser `"local"`. |
| `command` | Array | S | Comando e argumentos para executar o servidor MCP. |
| `environment` | Object | | Variáveis de ambiente a serem definidas ao executar o servidor. |
| `enabled` | Boolean | | Habilitar ou desabilitar o servidor MCP na inicialização. |
| `timeout` | Number | | Tempo limite em ms para buscar ferramentas do servidor MCP. O padrão é 5000 (5 segundos). |
---
@@ -152,14 +152,14 @@ O `url` é a URL do servidor MCP remoto e com a opção `headers` você pode pas
#### Opções
| Opção | Tipo | Requerido | Descrição |
| -------- | ------- | --------- | --------------------------------------------------------------------------------- |
| `type` | String | S | Tipo de conexão do servidor MCP, deve ser `"remote"`. |
| `url` | String | S | URL do servidor MCP remoto. |
| `enabled`| Boolean | | Habilitar ou desabilitar o servidor MCP na inicialização. |
| `headers`| Object | | Cabeçalhos a serem enviados com a solicitação. |
| `oauth` | Object | | Configuração de autenticação OAuth. Veja a seção [OAuth](#oauth) abaixo. |
| `timeout`| Number | | Tempo limite em ms para buscar ferramentas do servidor MCP. O padrão é 5000 (5 segundos). |
| Opção | Tipo | Requerido | Descrição |
| --------- | ------- | --------- | ----------------------------------------------------------------------------------------- |
| `type` | String | S | Tipo de conexão do servidor MCP, deve ser `"remote"`. |
| `url` | String | S | URL do servidor MCP remoto. |
| `enabled` | Boolean | | Habilitar ou desabilitar o servidor MCP na inicialização. |
| `headers` | Object | | Cabeçalhos a serem enviados com a solicitação. |
| `oauth` | Object | | Configuração de autenticação OAuth. Veja a seção [OAuth](#oauth) abaixo. |
| `timeout` | Number | | Tempo limite em ms para buscar ferramentas do servidor MCP. O padrão é 5000 (5 segundos). |
---
@@ -266,12 +266,12 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p
#### Opções de OAuth
| Opção | Tipo | Descrição |
| -------------- | ----------------- | ------------------------------------------------------------------------------- |
| `oauth` | Object \| false | Objeto de configuração OAuth, ou `false` para desabilitar a detecção automática de OAuth. |
| `clientId` | String | ID do cliente OAuth. Se não fornecido, o registro dinâmico do cliente será tentado. |
| `clientSecret` | String | Segredo do cliente OAuth, se necessário pelo servidor de autorização. |
| `scope` | String | Escopos OAuth a serem solicitados durante a autorização. |
| Opção | Tipo | Descrição |
| -------------- | --------------- | ----------------------------------------------------------------------------------------- |
| `oauth` | Object \| false | Objeto de configuração OAuth, ou `false` para desabilitar a detecção automática de OAuth. |
| `clientId` | String | ID do cliente OAuth. Se não fornecido, o registro dinâmico do cliente será tentado. |
| `clientSecret` | String | Segredo do cliente OAuth, se necessário pelo servidor de autorização. |
| `scope` | String | Escopos OAuth a serem solicitados durante a autorização. |
#### Depuração
@@ -508,4 +508,4 @@ Alternativamente, você pode adicionar algo assim ao seu [AGENTS.md](/docs/rules
```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```
```

View File

@@ -219,4 +219,4 @@ Quando o OpenCode é iniciado, ele verifica modelos na seguinte ordem de priorid
3. O último modelo usado.
4. O primeiro modelo usando uma prioridade interna.
4. O primeiro modelo usando uma prioridade interna.

View File

@@ -222,19 +222,19 @@ Se nenhuma ferramenta for especificada, todas as ferramentas estão habilitadas
Aqui estão todas as ferramentas que podem ser controladas através da configuração do modo.
| Ferramenta | Descrição |
| ------------ | -------------------------- |
| `bash` | Executar comandos de shell |
| `edit` | Modificar arquivos existentes |
| `write` | Criar novos arquivos |
| `read` | Ler conteúdos de arquivos |
| Ferramenta | Descrição |
| ----------- | ------------------------------- |
| `bash` | Executar comandos de shell |
| `edit` | Modificar arquivos existentes |
| `write` | Criar novos arquivos |
| `read` | Ler conteúdos de arquivos |
| `grep` | Pesquisar conteúdos de arquivos |
| `glob` | Encontrar arquivos por padrão |
| `list` | Listar conteúdos de diretório |
| `patch` | Aplicar patches a arquivos |
| `todowrite` | Gerenciar listas de tarefas |
| `todoread` | Ler listas de tarefas |
| `webfetch` | Buscar conteúdo da web |
| `glob` | Encontrar arquivos por padrão |
| `list` | Listar conteúdos de diretório |
| `patch` | Aplicar patches a arquivos |
| `todowrite` | Gerenciar listas de tarefas |
| `todoread` | Ler listas de tarefas |
| `webfetch` | Buscar conteúdo da web |
---
@@ -325,4 +325,4 @@ Aqui estão alguns casos de uso comuns para diferentes modos.
- **Modo Debug**: Focado em investigação com ferramentas bash e de leitura habilitadas
- **Modo Docs**: Redação de documentação com operações de arquivo, mas sem comandos do sistema
Você também pode descobrir que diferentes modelos são bons para diferentes casos de uso.
Você também pode descobrir que diferentes modelos são bons para diferentes casos de uso.

View File

@@ -54,4 +54,4 @@ Se sua empresa usa CAs personalizadas para conexões HTTPS, configure o OpenCode
export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem
```
Isso funciona tanto para conexões de proxy quanto para acesso direto à API.
Isso funciona tanto para conexões de proxy quanto para acesso direto à API.

View File

@@ -234,4 +234,4 @@ Apenas analise o código e sugira alterações.
:::tip
Use correspondência de padrões para comandos com argumentos. `"grep *"` permite `grep pattern file.txt`, enquanto `"grep"` sozinho o bloquearia. Comandos como `git status` funcionam para o comportamento padrão, mas requerem permissão explícita (como `"git status *"`) quando argumentos são passados.
:::
:::

View File

@@ -381,4 +381,4 @@ Formate como um prompt estruturado que um novo agente pode usar para retomar o t
}
```
Quando `output.prompt` é definido, ele substitui completamente o prompt de compactação padrão. O array `output.context` é ignorado neste caso.
Quando `output.prompt` é definido, ele substitui completamente o prompt de compactação padrão. O array `output.context` é ignorado neste caso.

View File

@@ -1016,12 +1016,12 @@ O plugin injeta os cabeçalhos `Helicone-Session-Id` e `Helicone-Session-Name` e
##### Cabeçalhos Comuns do Helicone
| Cabeçalho | Descrição |
| ----------------------------- | ----------------------------------------------------------- |
| `Helicone-Cache-Enabled` | Habilitar cache de resposta (`true`/`false`) |
| `Helicone-User-Id` | Rastrear métricas por usuário |
| `Helicone-Property-[Nome]` | Adicionar propriedades personalizadas (ex: `Helicone-Property-Environment`) |
| `Helicone-Prompt-Id` | Associar solicitações com versões de prompt |
| Cabeçalho | Descrição |
| -------------------------- | --------------------------------------------------------------------------- |
| `Helicone-Cache-Enabled` | Habilitar cache de resposta (`true`/`false`) |
| `Helicone-User-Id` | Rastrear métricas por usuário |
| `Helicone-Property-[Nome]` | Adicionar propriedades personalizadas (ex: `Helicone-Property-Environment`) |
| `Helicone-Prompt-Id` | Associar solicitações com versões de prompt |
Consulte o [Diretório de Cabeçalhos do Helicone](https://docs.helicone.ai/helicone-headers/header-directory) para todos os cabeçalhos disponíveis.
@@ -1630,11 +1630,11 @@ Você também pode personalizar modelos através da sua configuração do openco
Algumas opções de roteamento úteis:
| Opção | Descrição |
| -------------------- | -------------------------------------------------- |
| `order` | Sequência de provedores a serem tentados |
| `only` | Restringir a provedores específicos |
| `zeroDataRetention` | Usar apenas provedores com políticas de retenção de dados zero |
| Opção | Descrição |
| ------------------- | -------------------------------------------------------------- |
| `order` | Sequência de provedores a serem tentados |
| `only` | Restringir a provedores específicos |
| `zeroDataRetention` | Usar apenas provedores com políticas de retenção de dados zero |
---

View File

@@ -177,4 +177,4 @@ Essa abordagem permite que você:
:::tip
Para monorepos ou projetos com padrões compartilhados, usar `opencode.json` com padrões glob (como `packages/*/AGENTS.md`) é mais sustentável do que instruções manuais.
:::
:::

View File

@@ -37,13 +37,13 @@ Isso inicia tanto um servidor quanto um cliente.
#### Opções
| Opção | Tipo | Descrição | Padrão |
|------------|--------------|---------------------------------|-------------|
| `hostname` | `string` | Nome do host do servidor | `127.0.0.1` |
| `port` | `number` | Porta do servidor | `4096` |
| `signal` | `AbortSignal`| Sinal de abortar para cancelamento | `undefined` |
| `timeout` | `number` | Tempo limite em ms para iniciar o servidor | `5000` |
| `config` | `Config` | Objeto de configuração | `{}` |
| Opção | Tipo | Descrição | Padrão |
| ---------- | ------------- | ------------------------------------------ | ----------- |
| `hostname` | `string` | Nome do host do servidor | `127.0.0.1` |
| `port` | `number` | Porta do servidor | `4096` |
| `signal` | `AbortSignal` | Sinal de abortar para cancelamento | `undefined` |
| `timeout` | `number` | Tempo limite em ms para iniciar o servidor | `5000` |
| `config` | `Config` | Objeto de configuração | `{}` |
---
@@ -81,13 +81,13 @@ const client = createOpencodeClient({
#### Opções
| Opção | Tipo | Descrição | Padrão |
|----------------|------------|---------------------------------|---------------------------|
| `baseUrl` | `string` | URL do servidor | `http://localhost:4096` |
| `fetch` | `function` | Implementação de fetch personalizada | `globalThis.fetch` |
| `parseAs` | `string` | Método de análise da resposta | `auto` |
| `responseStyle`| `string` | Estilo de retorno: `data` ou `fields` | `fields` |
| `throwOnError` | `boolean` | Lançar erros em vez de retornar | `false` |
| Opção | Tipo | Descrição | Padrão |
| --------------- | ---------- | ------------------------------------- | ----------------------- |
| `baseUrl` | `string` | URL do servidor | `http://localhost:4096` |
| `fetch` | `function` | Implementação de fetch personalizada | `globalThis.fetch` |
| `parseAs` | `string` | Método de análise da resposta | `auto` |
| `responseStyle` | `string` | Estilo de retorno: `data` ou `fields` | `fields` |
| `throwOnError` | `boolean` | Lançar erros em vez de retornar | `false` |
---
@@ -125,9 +125,9 @@ O SDK expõe todas as APIs do servidor através de um cliente seguro em tipos.
### Global
| Método | Descrição | Resposta |
|-------------------|-------------------------------|--------------------------------------|
| `global.health()` | Verificar a saúde e versão do servidor | `{ healthy: true, version: string }` |
| Método | Descrição | Resposta |
| ----------------- | -------------------------------------- | ------------------------------------ |
| `global.health()` | Verificar a saúde e versão do servidor | `{ healthy: true, version: string }` |
---
@@ -142,10 +142,10 @@ console.log(health.data.version)
### App
| Método | Descrição | Resposta |
|-----------------|-------------------------|---------------------------------------------|
| `app.log()` | Escrever uma entrada de log | `boolean` |
| `app.agents()` | Listar todos os agentes disponíveis | <a href={typesUrl}><code>Agent[]</code></a> |
| Método | Descrição | Resposta |
| -------------- | ----------------------------------- | ------------------------------------------- |
| `app.log()` | Escrever uma entrada de log | `boolean` |
| `app.agents()` | Listar todos os agentes disponíveis | <a href={typesUrl}><code>Agent[]</code></a> |
---
@@ -169,10 +169,10 @@ const agents = await client.app.agents()
### Projeto
| Método | Descrição | Resposta |
|---------------------|-------------------|-----------------------------------------------|
| Método | Descrição | Resposta |
| ------------------- | ------------------------ | --------------------------------------------- |
| `project.list()` | Listar todos os projetos | <a href={typesUrl}><code>Project[]</code></a> |
| `project.current()` | Obter projeto atual | <a href={typesUrl}><code>Project</code></a> |
| `project.current()` | Obter projeto atual | <a href={typesUrl}><code>Project</code></a> |
---
@@ -190,8 +190,8 @@ const currentProject = await client.project.current()
### Caminho
| Método | Descrição | Resposta |
|--------------|----------------|------------------------------------------|
| Método | Descrição | Resposta |
| ------------ | ------------------- | ---------------------------------------- |
| `path.get()` | Obter caminho atual | <a href={typesUrl}><code>Path</code></a> |
---
@@ -207,10 +207,10 @@ const pathInfo = await client.path.get()
### Configuração
| Método | Descrição | Resposta |
|----------------------|---------------------------------|-------------------------------------------------------------------------------------------------------|
| `config.get()` | Obter informações de configuração | <a href={typesUrl}><code>Config</code></a> |
| `config.providers()` | Listar provedores e modelos padrão | `{ providers: `<a href={typesUrl}><code>Provider[]</code></a>`, default: { [key: string]: string } }` |
| Método | Descrição | Resposta |
| -------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `config.get()` | Obter informações de configuração | <a href={typesUrl}><code>Config</code></a> |
| `config.providers()` | Listar provedores e modelos padrão | `{ providers: `<a href={typesUrl}><code>Provider[]</code></a>`, default: { [key: string]: string } }` |
---
@@ -226,27 +226,27 @@ const { providers, default: defaults } = await client.config.providers()
### Sessões
| Método | Descrição | Notas |
|-----------------------------------------------------------|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| `session.list()` | Listar sessões | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | Obter sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | Listar sessões filhas | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `session.create({ body })` | Criar sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | Deletar sessão | Retorna `boolean` |
| `session.update({ path, body })` | Atualizar propriedades da sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | Analisar app e criar `AGENTS.md` | Retorna `boolean` |
| `session.abort({ path })` | Abortar uma sessão em execução | Retorna `boolean` |
| `session.share({ path })` | Compartilhar sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | Descompartilhar sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | Resumir sessão | Retorna `boolean` |
| `session.messages({ path })` | Listar mensagens em uma sessão | Retorna `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
| `session.message({ path })` | Obter detalhes da mensagem | Retorna `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | Enviar mensagem de prompt | `body.noReply: true` retorna UserMessage (apenas contexto). O padrão retorna <a href={typesUrl}><code>AssistantMessage</code></a> com resposta da IA |
| `session.command({ path, body })` | Enviar comando para a sessão | Retorna `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | Executar um comando shell | Retorna <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | Reverter uma mensagem | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | Restaurar mensagens revertidas | Retorna <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | Responder a um pedido de permissão | Retorna `boolean` |
| Método | Descrição | Notas |
| ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `session.list()` | Listar sessões | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | Obter sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | Listar sessões filhas | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `session.create({ body })` | Criar sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | Deletar sessão | Retorna `boolean` |
| `session.update({ path, body })` | Atualizar propriedades da sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | Analisar app e criar `AGENTS.md` | Retorna `boolean` |
| `session.abort({ path })` | Abortar uma sessão em execução | Retorna `boolean` |
| `session.share({ path })` | Compartilhar sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | Descompartilhar sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | Resumir sessão | Retorna `boolean` |
| `session.messages({ path })` | Listar mensagens em uma sessão | Retorna `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
| `session.message({ path })` | Obter detalhes da mensagem | Retorna `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | Enviar mensagem de prompt | `body.noReply: true` retorna UserMessage (apenas contexto). O padrão retorna <a href={typesUrl}><code>AssistantMessage</code></a> com resposta da IA |
| `session.command({ path, body })` | Enviar comando para a sessão | Retorna `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | Executar um comando shell | Retorna <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | Reverter uma mensagem | Retorna <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | Restaurar mensagens revertidas | Retorna <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | Responder a um pedido de permissão | Retorna `boolean` |
---
@@ -283,13 +283,13 @@ await client.session.prompt({
### Arquivos
| Método | Descrição | Resposta |
|---------------------------|----------------------------------|---------------------------------------------------------------------------------------------|
| `find.text({ query })` | Pesquisar texto em arquivos | Array de objetos de correspondência com `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
| `find.files({ query })` | Encontrar arquivos e diretórios por nome | `string[]` (caminhos) |
| `find.symbols({ query })` | Encontrar símbolos no workspace | <a href={typesUrl}><code>Symbol[]</code></a> |
| `file.read({ query })` | Ler um arquivo | `{ type: "raw" \| "patch", content: string }` |
| `file.status({ query? })` | Obter status para arquivos rastreados | <a href={typesUrl}><code>File[]</code></a> |
| Método | Descrição | Resposta |
| ------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `find.text({ query })` | Pesquisar texto em arquivos | Array de objetos de correspondência com `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
| `find.files({ query })` | Encontrar arquivos e diretórios por nome | `string[]` (caminhos) |
| `find.symbols({ query })` | Encontrar símbolos no workspace | <a href={typesUrl}><code>Symbol[]</code></a> |
| `file.read({ query })` | Ler um arquivo | `{ type: "raw" \| "patch", content: string }` |
| `file.status({ query? })` | Obter status para arquivos rastreados | <a href={typesUrl}><code>File[]</code></a> |
`find.files` suporta alguns campos de consulta opcionais:
@@ -324,17 +324,17 @@ const content = await client.file.read({
### TUI
| Método | Descrição | Resposta |
|-------------------------------|-------------------------|-----------|
| `tui.appendPrompt({ body })` | Adicionar texto ao prompt | `boolean` |
| `tui.openHelp()` | Abrir o diálogo de ajuda | `boolean` |
| Método | Descrição | Resposta |
| ------------------------------ | -------------------------- | --------- |
| `tui.appendPrompt({ body })` | Adicionar texto ao prompt | `boolean` |
| `tui.openHelp()` | Abrir o diálogo de ajuda | `boolean` |
| `tui.openSessions()` | Abrir o seletor de sessões | `boolean` |
| `tui.openThemes()` | Abrir o seletor de temas | `boolean` |
| `tui.openModels()` | Abrir o seletor de modelos | `boolean` |
| `tui.openModels()` | Abrir o seletor de modelos | `boolean` |
| `tui.submitPrompt()` | Enviar o prompt atual | `boolean` |
| `tui.clearPrompt()` | Limpar o prompt | `boolean` |
| `tui.executeCommand({ body })` | Executar um comando | `boolean` |
| `tui.showToast({ body })` | Mostrar notificação toast | `boolean` |
| `tui.showToast({ body })` | Mostrar notificação toast | `boolean` |
---
@@ -355,8 +355,8 @@ await client.tui.showToast({
### Autenticação
| Método | Descrição | Resposta |
|---------------------|------------------------------|-----------|
| Método | Descrição | Resposta |
| ------------------- | ----------------------------------- | --------- |
| `auth.set({ ... })` | Definir credenciais de autenticação | `boolean` |
---
@@ -374,8 +374,8 @@ await client.auth.set({
### Eventos
| Método | Descrição | Resposta |
|---------------------|-------------------------|---------------------------|
| Método | Descrição | Resposta |
| ------------------- | --------------------------------------- | --------------------------------------- |
| `event.subscribe()` | Fluxo de eventos enviados pelo servidor | Fluxo de eventos enviados pelo servidor |
---
@@ -388,4 +388,4 @@ const events = await client.event.subscribe()
for await (const event of events.stream) {
console.log("Evento:", event.type, event.properties)
}
```
```

View File

@@ -18,13 +18,13 @@ opencode serve [--port <número>] [--hostname <string>] [--cors <origem>]
#### Opções
| Flag | Descrição | Padrão |
| --------------- | ----------------------------------- | ---------------- |
| `--port` | Porta para escutar | `4096` |
| `--hostname` | Nome do host para escutar | `127.0.0.1` |
| `--mdns` | Habilitar descoberta mDNS | `false` |
| Flag | Descrição | Padrão |
| --------------- | ------------------------------------------------- | ---------------- |
| `--port` | Porta para escutar | `4096` |
| `--hostname` | Nome do host para escutar | `127.0.0.1` |
| `--mdns` | Habilitar descoberta mDNS | `false` |
| `--mdns-domain` | Nome de domínio personalizado para o serviço mDNS | `opencode.local` |
| `--cors` | Origens adicionais de navegador a permitir | `[]` |
| `--cors` | Origens adicionais de navegador a permitir | `[]` |
`--cors` pode ser passado várias vezes:
@@ -86,116 +86,116 @@ O servidor opencode expõe as seguintes APIs.
### Global
| Método | Caminho | Descrição | Resposta |
| ------ | ------------------- | ------------------------------ | -------------------------------------- |
| `GET` | `/global/health` | Obter saúde e versão do servidor | `{ healthy: true, version: string }` |
| `GET` | `/global/event` | Obter eventos globais (fluxo SSE) | Fluxo de eventos |
| Método | Caminho | Descrição | Resposta |
| ------ | ---------------- | --------------------------------- | ------------------------------------ |
| `GET` | `/global/health` | Obter saúde e versão do servidor | `{ healthy: true, version: string }` |
| `GET` | `/global/event` | Obter eventos globais (fluxo SSE) | Fluxo de eventos |
---
### Projeto
| Método | Caminho | Descrição | Resposta |
| ------ | --------------------- | --------------------------- | --------------------------------------------- |
| `GET` | `/project` | Listar todos os projetos | <a href={typesUrl}><code>Project[]</code></a> |
| `GET` | `/project/current` | Obter o projeto atual | <a href={typesUrl}><code>Project</code></a> |
| Método | Caminho | Descrição | Resposta |
| ------ | ------------------ | ------------------------ | --------------------------------------------- |
| `GET` | `/project` | Listar todos os projetos | <a href={typesUrl}><code>Project[]</code></a> |
| `GET` | `/project/current` | Obter o projeto atual | <a href={typesUrl}><code>Project</code></a> |
---
### Caminho & VCS
| Método | Caminho | Descrição | Resposta |
| ------ | ---------- | ------------------------------------- | ------------------------------------------- |
| `GET` | `/path` | Obter o caminho atual | <a href={typesUrl}><code>Path</code></a> |
| `GET` | `/vcs` | Obter informações do VCS para o projeto atual | <a href={typesUrl}><code>VcsInfo</code></a> |
| Método | Caminho | Descrição | Resposta |
| ------ | ------- | --------------------------------------------- | ------------------------------------------- |
| `GET` | `/path` | Obter o caminho atual | <a href={typesUrl}><code>Path</code></a> |
| `GET` | `/vcs` | Obter informações do VCS para o projeto atual | <a href={typesUrl}><code>VcsInfo</code></a> |
---
### Instância
| Método | Caminho | Descrição | Resposta |
| ------ | ---------------------- | ----------------------------- | --------- |
| `POST` | `/instance/dispose` | Descartar a instância atual | `boolean` |
| Método | Caminho | Descrição | Resposta |
| ------ | ------------------- | --------------------------- | --------- |
| `POST` | `/instance/dispose` | Descartar a instância atual | `boolean` |
---
### Configuração
| Método | Caminho | Descrição | Resposta |
| ------- | ---------------------- | -------------------------------- | ---------------------------------------------------------------------------------------- |
| `GET` | `/config` | Obter informações de configuração | <a href={typesUrl}><code>Config</code></a> |
| `PATCH` | `/config` | Atualizar configuração | <a href={typesUrl}><code>Config</code></a> |
| `GET` | `/config/providers` | Listar provedores e modelos padrão | `{ providers: `<a href={typesUrl}>Provider[]</a>`, default: { [key: string]: string } }` |
| Método | Caminho | Descrição | Resposta |
| ------- | ------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------- |
| `GET` | `/config` | Obter informações de configuração | <a href={typesUrl}><code>Config</code></a> |
| `PATCH` | `/config` | Atualizar configuração | <a href={typesUrl}><code>Config</code></a> |
| `GET` | `/config/providers` | Listar provedores e modelos padrão | `{ providers: `<a href={typesUrl}>Provider[]</a>`, default: { [key: string]: string } }` |
---
### Provedor
| Método | Caminho | Descrição | Resposta |
| ------ | ----------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------- |
| `GET` | `/provider` | Listar todos os provedores | `{ all: `<a href={typesUrl}>Provider[]</a>`, default: {...}, connected: string[] }` |
| `GET` | `/provider/auth` | Obter métodos de autenticação do provedor | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
| `POST` | `/provider/{id}/oauth/authorize` | Autorizar um provedor usando OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
| `POST` | `/provider/{id}/oauth/callback` | Lidar com o callback OAuth para um provedor | `boolean` |
| Método | Caminho | Descrição | Resposta |
| ------ | -------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------- |
| `GET` | `/provider` | Listar todos os provedores | `{ all: `<a href={typesUrl}>Provider[]</a>`, default: {...}, connected: string[] }` |
| `GET` | `/provider/auth` | Obter métodos de autenticação do provedor | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
| `POST` | `/provider/{id}/oauth/authorize` | Autorizar um provedor usando OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
| `POST` | `/provider/{id}/oauth/callback` | Lidar com o callback OAuth para um provedor | `boolean` |
---
### Sessões
| Método | Caminho | Descrição | Notas |
| -------- | -------------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------------- |
| `GET` | `/session` | Listar todas as sessões | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `POST` | `/session` | Criar uma nova sessão | corpo: `{ parentID?, title? }`, retorna <a href={typesUrl}><code>Session</code></a> |
| `GET` | `/session/status` | Obter status da sessão para todas as sessões | Retorna `{ [sessionID: string]: `<a href={typesUrl}>SessionStatus</a>` }` |
| `GET` | `/session/:id` | Obter detalhes da sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `DELETE` | `/session/:id` | Deletar uma sessão e todos os seus dados | Retorna `boolean` |
| `PATCH` | `/session/:id` | Atualizar propriedades da sessão | corpo: `{ title? }`, retorna <a href={typesUrl}><code>Session</code></a> |
| `GET` | `/session/:id/children` | Obter as sessões filhas de uma sessão | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `GET` | `/session/:id/todo` | Obter a lista de tarefas para uma sessão | Retorna <a href={typesUrl}><code>Todo[]</code></a> |
| `POST` | `/session/:id/init` | Analisar o app e criar `AGENTS.md` | corpo: `{ messageID, providerID, modelID }`, retorna `boolean` |
| `POST` | `/session/:id/fork` | Fazer um fork de uma sessão existente em uma mensagem | corpo: `{ messageID? }`, retorna <a href={typesUrl}><code>Session</code></a> |
| `POST` | `/session/:id/abort` | Abortar uma sessão em execução | Retorna `boolean` |
| `POST` | `/session/:id/share` | Compartilhar uma sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `DELETE` | `/session/:id/share` | Descompartilhar uma sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `GET` | `/session/:id/diff` | Obter a diferença para esta sessão | query: `messageID?`, retorna <a href={typesUrl}><code>FileDiff[]</code></a> |
| `POST` | `/session/:id/summarize` | Resumir a sessão | corpo: `{ providerID, modelID }`, retorna `boolean` |
| `POST` | `/session/:id/revert` | Reverter uma mensagem | corpo: `{ messageID, partID? }`, retorna `boolean` |
| `POST` | `/session/:id/unrevert` | Restaurar todas as mensagens revertidas | Retorna `boolean` |
| `POST` | `/session/:id/permissions/:permissionID` | Responder a um pedido de permissão | corpo: `{ response, remember? }`, retorna `boolean` |
| Método | Caminho | Descrição | Notas |
| -------- | ---------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `GET` | `/session` | Listar todas as sessões | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `POST` | `/session` | Criar uma nova sessão | corpo: `{ parentID?, title? }`, retorna <a href={typesUrl}><code>Session</code></a> |
| `GET` | `/session/status` | Obter status da sessão para todas as sessões | Retorna `{ [sessionID: string]: `<a href={typesUrl}>SessionStatus</a>` }` |
| `GET` | `/session/:id` | Obter detalhes da sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `DELETE` | `/session/:id` | Deletar uma sessão e todos os seus dados | Retorna `boolean` |
| `PATCH` | `/session/:id` | Atualizar propriedades da sessão | corpo: `{ title? }`, retorna <a href={typesUrl}><code>Session</code></a> |
| `GET` | `/session/:id/children` | Obter as sessões filhas de uma sessão | Retorna <a href={typesUrl}><code>Session[]</code></a> |
| `GET` | `/session/:id/todo` | Obter a lista de tarefas para uma sessão | Retorna <a href={typesUrl}><code>Todo[]</code></a> |
| `POST` | `/session/:id/init` | Analisar o app e criar `AGENTS.md` | corpo: `{ messageID, providerID, modelID }`, retorna `boolean` |
| `POST` | `/session/:id/fork` | Fazer um fork de uma sessão existente em uma mensagem | corpo: `{ messageID? }`, retorna <a href={typesUrl}><code>Session</code></a> |
| `POST` | `/session/:id/abort` | Abortar uma sessão em execução | Retorna `boolean` |
| `POST` | `/session/:id/share` | Compartilhar uma sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `DELETE` | `/session/:id/share` | Descompartilhar uma sessão | Retorna <a href={typesUrl}><code>Session</code></a> |
| `GET` | `/session/:id/diff` | Obter a diferença para esta sessão | query: `messageID?`, retorna <a href={typesUrl}><code>FileDiff[]</code></a> |
| `POST` | `/session/:id/summarize` | Resumir a sessão | corpo: `{ providerID, modelID }`, retorna `boolean` |
| `POST` | `/session/:id/revert` | Reverter uma mensagem | corpo: `{ messageID, partID? }`, retorna `boolean` |
| `POST` | `/session/:id/unrevert` | Restaurar todas as mensagens revertidas | Retorna `boolean` |
| `POST` | `/session/:id/permissions/:permissionID` | Responder a um pedido de permissão | corpo: `{ response, remember? }`, retorna `boolean` |
---
### Mensagens
| Método | Caminho | Descrição | Notas |
| ------ | ------------------------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GET` | `/session/:id/message` | Listar mensagens em uma sessão | query: `limit?`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}[]` |
| `POST` | `/session/:id/message` | Enviar uma mensagem e aguardar resposta | corpo: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| `GET` | `/session/:id/message/:messageID` | Obter detalhes da mensagem | Retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| `POST` | `/session/:id/prompt_async` | Enviar uma mensagem assíncrona (sem espera) | corpo: igual a `/session/:id/message`, retorna `204 No Content` |
| `POST` | `/session/:id/command` | Executar um comando de barra | corpo: `{ messageID?, agent?, model?, command, arguments }`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| `POST` | `/session/:id/shell` | Executar um comando shell | corpo: `{ agent, model?, command }`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| Método | Caminho | Descrição | Notas |
| ------ | --------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GET` | `/session/:id/message` | Listar mensagens em uma sessão | query: `limit?`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}[]` |
| `POST` | `/session/:id/message` | Enviar uma mensagem e aguardar resposta | corpo: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| `GET` | `/session/:id/message/:messageID` | Obter detalhes da mensagem | Retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| `POST` | `/session/:id/prompt_async` | Enviar uma mensagem assíncrona (sem espera) | corpo: igual a `/session/:id/message`, retorna `204 No Content` |
| `POST` | `/session/:id/command` | Executar um comando de barra | corpo: `{ messageID?, agent?, model?, command, arguments }`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
| `POST` | `/session/:id/shell` | Executar um comando shell | corpo: `{ agent, model?, command }`, retorna `{ info: `<a href={typesUrl}>Message</a>`, parts: `<a href={typesUrl}>Part[]</a>`}` |
---
### Comandos
| Método | Caminho | Descrição | Resposta |
| ------ | ------------- | ----------------- | --------------------------------------------- |
| `GET` | `/command` | Listar todos os comandos | <a href={typesUrl}><code>Command[]</code></a> |
| Método | Caminho | Descrição | Resposta |
| ------ | ---------- | ------------------------ | --------------------------------------------- |
| `GET` | `/command` | Listar todos os comandos | <a href={typesUrl}><code>Command[]</code></a> |
---
### Arquivos
| Método | Caminho | Descrição | Resposta |
| ------ | ---------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- |
| `GET` | `/find?pattern=<pat>` | Pesquisar texto em arquivos | Array de objetos de correspondência com `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
| `GET` | `/find/file?query=<q>` | Encontrar arquivos e diretórios por nome | `string[]` (caminhos) |
| `GET` | `/find/symbol?query=<q>` | Encontrar símbolos do workspace | <a href={typesUrl}><code>Symbol[]</code></a> |
| `GET` | `/file?path=<path>` | Listar arquivos e diretórios | <a href={typesUrl}><code>FileNode[]</code></a> |
| `GET` | `/file/content?path=<p>` | Ler um arquivo | <a href={typesUrl}><code>FileContent</code></a> |
| `GET` | `/file/status` | Obter status para arquivos rastreados | <a href={typesUrl}><code>File[]</code></a> |
| Método | Caminho | Descrição | Resposta |
| ------ | ------------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `GET` | `/find?pattern=<pat>` | Pesquisar texto em arquivos | Array de objetos de correspondência com `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
| `GET` | `/find/file?query=<q>` | Encontrar arquivos e diretórios por nome | `string[]` (caminhos) |
| `GET` | `/find/symbol?query=<q>` | Encontrar símbolos do workspace | <a href={typesUrl}><code>Symbol[]</code></a> |
| `GET` | `/file?path=<path>` | Listar arquivos e diretórios | <a href={typesUrl}><code>FileNode[]</code></a> |
| `GET` | `/file/content?path=<p>` | Ler um arquivo | <a href={typesUrl}><code>FileContent</code></a> |
| `GET` | `/file/status` | Obter status para arquivos rastreados | <a href={typesUrl}><code>File[]</code></a> |
#### Parâmetros de consulta `/find/file`
@@ -209,76 +209,76 @@ O servidor opencode expõe as seguintes APIs.
### Ferramentas (Experimental)
| Método | Caminho | Descrição | Resposta |
| ------ | ----------------------------------------------- | -------------------------------------- | -------------------------------------------- |
| `GET` | `/experimental/tool/ids` | Listar todos os IDs de ferramentas | <a href={typesUrl}><code>ToolIDs</code></a> |
| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Listar ferramentas com esquemas JSON para um modelo | <a href={typesUrl}><code>ToolList</code></a> |
| Método | Caminho | Descrição | Resposta |
| ------ | ------------------------------------------- | --------------------------------------------------- | -------------------------------------------- |
| `GET` | `/experimental/tool/ids` | Listar todos os IDs de ferramentas | <a href={typesUrl}><code>ToolIDs</code></a> |
| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Listar ferramentas com esquemas JSON para um modelo | <a href={typesUrl}><code>ToolList</code></a> |
---
### LSP, Formatadores & MCP
| Método | Caminho | Descrição | Resposta |
| ------ | ---------------- | ------------------------ | -------------------------------------------------------- |
| `GET` | `/lsp` | Obter status do servidor LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> |
| `GET` | `/formatter` | Obter status do formatador | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
| `GET` | `/mcp` | Obter status do servidor MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
| `POST` | `/mcp` | Adicionar servidor MCP dinamicamente | corpo: `{ name, config }`, retorna objeto de status MCP |
| Método | Caminho | Descrição | Resposta |
| ------ | ------------ | ------------------------------------ | -------------------------------------------------------- |
| `GET` | `/lsp` | Obter status do servidor LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> |
| `GET` | `/formatter` | Obter status do formatador | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
| `GET` | `/mcp` | Obter status do servidor MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
| `POST` | `/mcp` | Adicionar servidor MCP dinamicamente | corpo: `{ name, config }`, retorna objeto de status MCP |
---
### Agentes
| Método | Caminho | Descrição | Resposta |
| ------ | ----------- | ----------------------- | ------------------------------------------- |
| `GET` | `/agent` | Listar todos os agentes disponíveis | <a href={typesUrl}><code>Agent[]</code></a> |
| Método | Caminho | Descrição | Resposta |
| ------ | -------- | ----------------------------------- | ------------------------------------------- |
| `GET` | `/agent` | Listar todos os agentes disponíveis | <a href={typesUrl}><code>Agent[]</code></a> |
---
### Registro
| Método | Caminho | Descrição | Resposta |
| ------ | --------- | ---------------------------------------------------------- | --------- |
| `POST` | `/log` | Escrever entrada de log. Corpo: `{ service, level, message, extra? }` | `boolean` |
| Método | Caminho | Descrição | Resposta |
| ------ | ------- | --------------------------------------------------------------------- | --------- |
| `POST` | `/log` | Escrever entrada de log. Corpo: `{ service, level, message, extra? }` | `boolean` |
---
### TUI
| Método | Caminho | Descrição | Resposta |
| ------ | --------------------------- | ----------------------------------------- | ---------------------- |
| `POST` | `/tui/append-prompt` | Anexar texto ao prompt | `boolean` |
| `POST` | `/tui/open-help` | Abrir o diálogo de ajuda | `boolean` |
| `POST` | `/tui/open-sessions` | Abrir o seletor de sessões | `boolean` |
| `POST` | `/tui/open-themes` | Abrir o seletor de temas | `boolean` |
| `POST` | `/tui/open-models` | Abrir o seletor de modelos | `boolean` |
| `POST` | `/tui/submit-prompt` | Enviar o prompt atual | `boolean` |
| `POST` | `/tui/clear-prompt` | Limpar o prompt | `boolean` |
| `POST` | `/tui/execute-command` | Executar um comando (`{ command }`) | `boolean` |
| `POST` | `/tui/show-toast` | Mostrar toast (`{ title?, message, variant }`) | `boolean` |
| `GET` | `/tui/control/next` | Aguardar o próximo pedido de controle | Objeto de pedido de controle |
| `POST` | `/tui/control/response` | Responder a um pedido de controle (`{ body }`) | `boolean` |
| Método | Caminho | Descrição | Resposta |
| ------ | ----------------------- | ---------------------------------------------- | ---------------------------- |
| `POST` | `/tui/append-prompt` | Anexar texto ao prompt | `boolean` |
| `POST` | `/tui/open-help` | Abrir o diálogo de ajuda | `boolean` |
| `POST` | `/tui/open-sessions` | Abrir o seletor de sessões | `boolean` |
| `POST` | `/tui/open-themes` | Abrir o seletor de temas | `boolean` |
| `POST` | `/tui/open-models` | Abrir o seletor de modelos | `boolean` |
| `POST` | `/tui/submit-prompt` | Enviar o prompt atual | `boolean` |
| `POST` | `/tui/clear-prompt` | Limpar o prompt | `boolean` |
| `POST` | `/tui/execute-command` | Executar um comando (`{ command }`) | `boolean` |
| `POST` | `/tui/show-toast` | Mostrar toast (`{ title?, message, variant }`) | `boolean` |
| `GET` | `/tui/control/next` | Aguardar o próximo pedido de controle | Objeto de pedido de controle |
| `POST` | `/tui/control/response` | Responder a um pedido de controle (`{ body }`) | `boolean` |
---
### Auth
| Método | Caminho | Descrição | Resposta |
| ------ | --------------- | ------------------------------------------------------------- | --------- |
| `PUT` | `/auth/:id` | Definir credenciais de autenticação. O corpo deve corresponder ao esquema do provedor | `boolean` |
| Método | Caminho | Descrição | Resposta |
| ------ | ----------- | ------------------------------------------------------------------------------------- | --------- |
| `PUT` | `/auth/:id` | Definir credenciais de autenticação. O corpo deve corresponder ao esquema do provedor | `boolean` |
---
### Eventos
| Método | Caminho | Descrição | Resposta |
| ------ | ----------- | --------------------------------------------------------------------------- | ------------------------- |
| `GET` | `/event` | Fluxo de eventos enviados pelo servidor. O primeiro evento é `server.connected`, depois eventos de bus | Fluxo de eventos enviados pelo servidor |
| Método | Caminho | Descrição | Resposta |
| ------ | -------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| `GET` | `/event` | Fluxo de eventos enviados pelo servidor. O primeiro evento é `server.connected`, depois eventos de bus | Fluxo de eventos enviados pelo servidor |
---
### Docs
| Método | Caminho | Descrição | Resposta |
| ------ | --------- | ----------------------- | --------------------------- |
| `GET` | `/doc` | Especificação OpenAPI 3.1 | Página HTML com a especificação OpenAPI |
| Método | Caminho | Descrição | Resposta |
| ------ | ------- | ------------------------- | --------------------------------------- |
| `GET` | `/doc` | Especificação OpenAPI 3.1 | Página HTML com a especificação OpenAPI |

View File

@@ -124,4 +124,4 @@ Para implantações empresariais, o recurso de compartilhamento pode ser:
- **Restrito** a usuários autenticados apenas através de SSO
- **Auto-hospedado** em sua própria infraestrutura
[Saiba mais](/docs/enterprise) sobre como usar o opencode em sua organização.
[Saiba mais](/docs/enterprise) sobre como usar o opencode em sua organização.

View File

@@ -139,11 +139,11 @@ Controle quais habilidades os agentes podem acessar usando permissões baseadas
}
```
| Permissão | Comportamento |
|------------|--------------------------------------------|
| `allow` | Habilidade carrega imediatamente |
| `deny` | Habilidade oculta do agente, acesso rejeitado |
| `ask` | Usuário solicitado para aprovação antes de carregar |
| Permissão | Comportamento |
| --------- | --------------------------------------------------- |
| `allow` | Habilidade carrega imediatamente |
| `deny` | Habilidade oculta do agente, acesso rejeitado |
| `ask` | Usuário solicitado para aprovação antes de carregar |
Padrões suportam curingas: `internal-*` corresponde a `internal-docs`, `internal-tools`, etc.
@@ -219,4 +219,4 @@ Se uma habilidade não aparecer:
1. Verifique se `SKILL.md` está escrito em letras maiúsculas
2. Verifique se o frontmatter inclui `name` e `description`
3. Certifique-se de que os nomes das habilidades sejam únicos em todos os locais
4. Verifique as permissões—habilidades com `deny` estão ocultas dos agentes
4. Verifique as permissões—habilidades com `deny` estão ocultas dos agentes

View File

@@ -25,18 +25,18 @@ Sem suporte a truecolor, os temas podem aparecer com precisão de cor reduzida o
O OpenCode vem com vários temas embutidos.
| Nome | Descrição |
| ---------------------- | ---------------------------------------------------------------------------- |
| `system` | Adapta-se à cor de fundo do seu terminal |
| `tokyonight` | Baseado no tema [Tokyonight](https://github.com/folke/tokyonight.nvim) |
| `everforest` | Baseado no tema [Everforest](https://github.com/sainnhe/everforest) |
| `ayu` | Baseado no tema escuro [Ayu](https://github.com/ayu-theme) |
| `catppuccin` | Baseado no tema [Catppuccin](https://github.com/catppuccin) |
| `catppuccin-macchiato` | Baseado no tema [Catppuccin](https://github.com/catppuccin) |
| `gruvbox` | Baseado no tema [Gruvbox](https://github.com/morhetz/gruvbox) |
| `kanagawa` | Baseado no tema [Kanagawa](https://github.com/rebelot/kanagawa.nvim) |
| `nord` | Baseado no tema [Nord](https://github.com/nordtheme/nord) |
| `matrix` | Tema verde estilo hacker sobre fundo preto |
| Nome | Descrição |
| ---------------------- | --------------------------------------------------------------------------- |
| `system` | Adapta-se à cor de fundo do seu terminal |
| `tokyonight` | Baseado no tema [Tokyonight](https://github.com/folke/tokyonight.nvim) |
| `everforest` | Baseado no tema [Everforest](https://github.com/sainnhe/everforest) |
| `ayu` | Baseado no tema escuro [Ayu](https://github.com/ayu-theme) |
| `catppuccin` | Baseado no tema [Catppuccin](https://github.com/catppuccin) |
| `catppuccin-macchiato` | Baseado no tema [Catppuccin](https://github.com/catppuccin) |
| `gruvbox` | Baseado no tema [Gruvbox](https://github.com/morhetz/gruvbox) |
| `kanagawa` | Baseado no tema [Kanagawa](https://github.com/rebelot/kanagawa.nvim) |
| `nord` | Baseado no tema [Nord](https://github.com/nordtheme/nord) |
| `matrix` | Tema verde estilo hacker sobre fundo preto |
| `one-dark` | Baseado no tema escuro [Atom One](https://github.com/Th3Whit3Wolf/one-nvim) |
E mais, estamos constantemente adicionando novos temas.
@@ -366,4 +366,4 @@ Aqui está um exemplo de um tema personalizado:
}
}
}
```
```

View File

@@ -376,4 +376,4 @@ Para incluir arquivos que normalmente seriam ignorados, crie um arquivo `.ignore
!build/
```
Por exemplo, este arquivo `.ignore` permite que o ripgrep busque dentro dos diretórios `node_modules/`, `dist/` e `build/`, mesmo que estejam listados em `.gitignore`.
Por exemplo, este arquivo `.ignore` permite que o ripgrep busque dentro dos diretórios `node_modules/`, `dist/` e `build/`, mesmo que estejam listados em `.gitignore`.

View File

@@ -296,4 +296,4 @@ Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
export DISPLAY=:99.0
```
opencode detectará se você está usando Wayland e preferirá `wl-clipboard`, caso contrário, tentará encontrar ferramentas de área de transferência na ordem: `xclip` e `xsel`.
opencode detectará se você está usando Wayland e preferirá `wl-clipboard`, caso contrário, tentará encontrar ferramentas de área de transferência na ordem: `xclip` e `xsel`.

View File

@@ -384,4 +384,4 @@ Você pode personalizar vários aspectos da visualização do TUI usando a palet
Alternar se seu nome de usuário aparece nas mensagens de chat. Acesse isso através de:
- Paleta de comandos: Pesquise por "username" ou "hide username"
- A configuração persiste automaticamente e será lembrada entre as sessões do TUI
- A configuração persiste automaticamente e será lembrada entre as sessões do TUI

View File

@@ -139,4 +139,4 @@ Você também pode configurar as configurações do servidor no seu arquivo de c
}
```
As flags de linha de comando têm precedência sobre as configurações do arquivo de configuração.
As flags de linha de comando têm precedência sobre as configurações do arquivo de configuração.

View File

@@ -53,7 +53,7 @@ Você é cobrado por solicitação e pode adicionar créditos à sua conta.
Você também pode acessar nossos modelos através dos seguintes endpoints da API.
| Modelo | ID do Modelo | Endpoint | Pacote AI SDK |
| Modelo | ID do Modelo | Endpoint | Pacote AI SDK |
| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
@@ -103,41 +103,41 @@ https://opencode.ai/zen/v1/models
Nós suportamos um modelo de pagamento conforme o uso. Abaixo estão os preços **por 1M de tokens**.
| Modelo | Entrada | Saída | Leitura em Cache | Escrita em Cache |
| --------------------------------- | ------ | ------ | ---------------- | ---------------- |
| Big Pickle | Grátis | Grátis | Grátis | - |
| MiniMax M2.1 Free | Grátis | Grátis | Grátis | - |
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
| GLM 4.7 Free | Grátis | Grátis | Grátis | - |
| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
| GLM 4.6 | $0.60 | $2.20 | $0.10 | - |
| Kimi K2.5 Free | Grátis | Grátis | Grátis | - |
| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - |
| Kimi K2 Thinking | $0.40 | $2.50 | - | - |
| Kimi K2 | $0.40 | $2.50 | - | - |
| Qwen3 Coder 480B | $0.45 | $1.50 | - | - |
| Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 |
| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 |
| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 |
| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
| Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
| Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
| GPT 5.2 | $1.75 | $14.00 | $0.175 | - |
| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - |
| GPT 5.1 | $1.07 | $8.50 | $0.107 | - |
| GPT 5.1 Codex | $1.07 | $8.50 | $0.107 | - |
| GPT 5.1 Codex Max | $1.25 | $10.00 | $0.125 | - |
| GPT 5.1 Codex Mini | $0.25 | $2.00 | $0.025 | - |
| GPT 5 | $1.07 | $8.50 | $0.107 | - |
| GPT 5 Codex | $1.07 | $8.50 | $0.107 | - |
| GPT 5 Nano | Grátis | Grátis | Grátis | - |
| Modelo | Entrada | Saída | Leitura em Cache | Escrita em Cache |
| --------------------------------- | ------- | ------ | ---------------- | ---------------- |
| Big Pickle | Grátis | Grátis | Grátis | - |
| MiniMax M2.1 Free | Grátis | Grátis | Grátis | - |
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
| GLM 4.7 Free | Grátis | Grátis | Grátis | - |
| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
| GLM 4.6 | $0.60 | $2.20 | $0.10 | - |
| Kimi K2.5 Free | Grátis | Grátis | Grátis | - |
| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - |
| Kimi K2 Thinking | $0.40 | $2.50 | - | - |
| Kimi K2 | $0.40 | $2.50 | - | - |
| Qwen3 Coder 480B | $0.45 | $1.50 | - | - |
| Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 |
| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 |
| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 |
| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
| Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
| Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
| GPT 5.2 | $1.75 | $14.00 | $0.175 | - |
| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - |
| GPT 5.1 | $1.07 | $8.50 | $0.107 | - |
| GPT 5.1 Codex | $1.07 | $8.50 | $0.107 | - |
| GPT 5.1 Codex Max | $1.25 | $10.00 | $0.125 | - |
| GPT 5.1 Codex Mini | $0.25 | $2.00 | $0.025 | - |
| GPT 5 | $1.07 | $8.50 | $0.107 | - |
| GPT 5 Codex | $1.07 | $8.50 | $0.107 | - |
| GPT 5 Nano | Grátis | Grátis | Grátis | - |
Você pode notar _Claude Haiku 3.5_ em seu histórico de uso. Este é um [modelo de baixo custo](/docs/config/#models) que é usado para gerar os títulos de suas sessões.
@@ -233,4 +233,4 @@ Criamos o OpenCode Zen para:
1. **Benchmark** os melhores modelos/provedores para agentes de codificação.
2. Ter acesso às opções de **mais alta qualidade** e não degradar o desempenho ou redirecionar para provedores mais baratos.
3. Repassar quaisquer **reduções de preço** vendendo ao custo; assim, a única margem é para cobrir nossas taxas de processamento.
4. Não ter **vinculação** permitindo que você o use com qualquer outro agente de codificação. E sempre permitir que você use qualquer outro provedor com a OpenCode também.
4. Não ter **vinculação** permitindo que você o use com qualquer outro agente de codificação. E sempre permitir que você use qualquer outro provedor com a OpenCode também.