chore: generate
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -744,4 +744,4 @@ Procure por:
|
||||
- Riscos de exposição de dados
|
||||
- Vulnerabilidades de dependência
|
||||
- Problemas de segurança de configuração
|
||||
```
|
||||
```
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
```
|
||||
```
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
:::
|
||||
:::
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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.
|
||||
:::
|
||||
:::
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user