fix(docs): locale translations

This commit is contained in:
Adam
2026-02-10 13:59:14 -06:00
committed by opencode
parent fbc41475b4
commit fd5531316f
282 changed files with 4973 additions and 5314 deletions

View File

@@ -9,7 +9,7 @@ opencode suporta o [Agent Client Protocol](https://agentclientprotocol.com) ou (
Para uma lista de editores e ferramentas que suportam ACP, confira o [relatório de progresso do ACP](https://zed.dev/blog/acp-progress-report#available-now).
:::
ACP é um protocolo aberto que padroniza a comunicação entre editores de código e agentes de codificação de IA.
ACP é um protocolo aberto que padroniza a comunicação entre editores de código e agentes de codificação de AI.
---
@@ -30,7 +30,7 @@ Adicione à sua configuração do [Zed](https://zed.dev) (`~/.config/zed/setting
```json title="~/.config/zed/settings.json"
{
"agent_servers": {
"opencode": {
"OpenCode": {
"command": "opencode",
"args": ["acp"]
}
@@ -51,7 +51,7 @@ Você também pode vincular um atalho de teclado editando seu `keymap.json`:
{
"agent": {
"custom": {
"name": "opencode",
"name": "OpenCode",
"command": {
"command": "opencode",
"args": ["acp"]
@@ -74,7 +74,7 @@ Adicione ao seu acp.json do [JetBrains IDE](https://www.jetbrains.com/) de acord
```json title="acp.json"
{
"agent_servers": {
"opencode": {
"OpenCode": {
"command": "/absolute/path/bin/opencode",
"args": ["acp"]
}

View File

@@ -3,7 +3,7 @@ title: Agentes
description: Configure e use agentes especializados.
---
Agentes são assistentes de IA especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados.
Agentes são assistentes de AI especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados.
:::tip
Use o agente de planejamento para analisar código e revisar sugestões sem fazer alterações no código.
@@ -162,10 +162,10 @@ Configure os agentes em seu arquivo de configuração `opencode.json`:
}
},
"code-reviewer": {
"description": "Revisa o código em busca de melhores práticas e problemas potenciais",
"description": "Reviews code for best practices and potential issues",
"mode": "subagent",
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "Você é um revisor de código. Foque em segurança, desempenho e manutenibilidade.",
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
"tools": {
"write": false,
"edit": false
@@ -186,7 +186,7 @@ Você também pode definir agentes usando arquivos markdown. Coloque-os em:
```markdown title="~/.config/opencode/agents/review.md"
---
description: Revisa o código em busca de qualidade e melhores práticas
description: Reviews code for quality and best practices
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
@@ -196,14 +196,14 @@ tools:
bash: false
---
Você está no modo de revisão de código. Foque em:
You are in code review mode. Focus on:
- Qualidade do código e melhores práticas
- Bugs potenciais e casos extremos
- Implicações de desempenho
- Considerações de segurança
- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations
Forneça feedback construtivo sem fazer alterações diretas.
Provide constructive feedback without making direct changes.
```
O nome do arquivo markdown se torna o nome do agente. Por exemplo, `review.md` cria um agente `review`.
@@ -224,7 +224,7 @@ Use a opção `description` para fornecer uma breve descrição do que o agente
{
"agent": {
"review": {
"description": "Revisa o código em busca de melhores práticas e problemas potenciais"
"description": "Reviews code for best practices and potential issues"
}
}
}
@@ -291,8 +291,8 @@ Se isso não for definido, o agente continuará a iterar até que o modelo decid
{
"agent": {
"quick-thinker": {
"description": "Raciocínio rápido com iterações limitadas",
"prompt": "Você é um pensador rápido. Resolva problemas com o mínimo de etapas.",
"description": "Fast reasoning with limited iterations",
"prompt": "You are a quick thinker. Solve problems with minimal steps.",
"steps": 5
}
}
@@ -449,7 +449,7 @@ Você também pode definir permissões em agentes Markdown.
```markdown title="~/.config/opencode/agents/review.md"
---
description: Revisão de código sem edições
description: Code review without edits
mode: subagent
permission:
edit: deny
@@ -461,7 +461,7 @@ permission:
webfetch: deny
---
Apenas analise o código e sugira alterações.
Only analyze code and suggest changes.
```
Você pode definir permissões para comandos bash específicos.
@@ -645,7 +645,7 @@ Por exemplo, com os modelos de raciocínio da OpenAI, você pode controlar o esf
{
"agent": {
"deep-thinker": {
"description": "Agente que usa alto esforço de raciocínio para problemas complexos",
"description": "Agent that uses high reasoning effort for complex problems",
"model": "openai/gpt-5",
"reasoningEffort": "high",
"textVerbosity": "low"
@@ -706,20 +706,20 @@ Você tem um agente que gostaria de compartilhar? [Envie um PR](https://github.c
```markdown title="~/.config/opencode/agents/docs-writer.md"
---
description: Escreve e mantém a documentação do projeto
description: Writes and maintains project documentation
mode: subagent
tools:
bash: false
---
Você é um redator técnico. Crie documentação clara e abrangente.
You are a technical writer. Create clear, comprehensive documentation.
Foque em:
Focus on:
- Explicações claras
- Estrutura adequada
- Exemplos de código
- Linguagem amigável ao usuário
- Clear explanations
- Proper structure
- Code examples
- User-friendly language
```
---
@@ -728,20 +728,20 @@ Foque em:
```markdown title="~/.config/opencode/agents/security-auditor.md"
---
description: Realiza auditorias de segurança e identifica vulnerabilidades
description: Performs security audits and identifies vulnerabilities
mode: subagent
tools:
write: false
edit: false
---
Você é um especialista em segurança. Foque em identificar problemas potenciais de segurança.
You are a security expert. Focus on identifying potential security issues.
Procure por:
Look for:
- Vulnerabilidades de validação de entrada
- Falhas de autenticação e autorização
- Riscos de exposição de dados
- Vulnerabilidades de dependência
- Problemas de segurança de configuração
- Input validation vulnerabilities
- Authentication and authorization flaws
- Data exposure risks
- Dependency vulnerabilities
- Configuration security issues
```

View File

@@ -14,7 +14,7 @@ opencode
Mas também aceita comandos conforme documentado nesta página. Isso permite que você interaja com o opencode programaticamente.
```bash
opencode run "Explique como closures funcionam em JavaScript"
opencode run "Explain how closures work in JavaScript"
```
---
@@ -24,7 +24,7 @@ opencode run "Explique como closures funcionam em JavaScript"
Inicie a interface de usuário do terminal do opencode.
```bash
opencode [projeto]
opencode [project]
```
#### Flags
@@ -53,7 +53,7 @@ A CLI do opencode também possui os seguintes comandos.
Gerencie agentes para o opencode.
```bash
opencode agent [comando]
opencode agent [command]
```
---
@@ -69,10 +69,10 @@ opencode attach [url]
Isso permite usar o TUI com um backend opencode remoto. Por exemplo:
```bash
# Inicie o servidor backend para acesso web/móvel
# Start the backend server for web/mobile access
opencode web --port 4096 --hostname 0.0.0.0
# Em outro terminal, anexe o TUI ao backend em execução
# In another terminal, attach the TUI to the running backend
opencode attach http://10.20.30.40:4096
```
@@ -112,7 +112,7 @@ opencode agent list
Comando para gerenciar credenciais e login para provedores.
```bash
opencode auth [comando]
opencode auth [command]
```
---
@@ -160,7 +160,7 @@ opencode auth logout
Gerencie o agente do GitHub para automação de repositórios.
```bash
opencode github [comando]
opencode github [command]
```
---
@@ -199,7 +199,7 @@ opencode github run
Gerencie servidores do Model Context Protocol.
```bash
opencode mcp [comando]
opencode mcp [command]
```
---
@@ -237,7 +237,7 @@ opencode mcp ls
Autentique-se com um servidor MCP habilitado para OAuth.
```bash
opencode mcp auth [nome]
opencode mcp auth [name]
```
Se você não fornecer um nome de servidor, será solicitado que você selecione entre os servidores disponíveis habilitados para OAuth.
@@ -261,7 +261,7 @@ opencode mcp auth ls
Remova credenciais OAuth para um servidor MCP.
```bash
opencode mcp logout [nome]
opencode mcp logout [name]
```
---
@@ -271,7 +271,7 @@ opencode mcp logout [nome]
Depure problemas de conexão OAuth para um servidor MCP.
```bash
opencode mcp debug <nome>
opencode mcp debug <name>
```
---
@@ -281,7 +281,7 @@ opencode mcp debug <nome>
Liste todos os modelos disponíveis dos provedores configurados.
```bash
opencode models [provedor]
opencode models [provider]
```
Este comando exibe todos os modelos disponíveis entre seus provedores configurados no formato `provider/model`.
@@ -314,23 +314,23 @@ opencode models --refresh
Execute o opencode em modo não interativo passando um prompt diretamente.
```bash
opencode run [mensagem..]
opencode run [message..]
```
Isso é útil para scripts, automação ou quando você deseja uma resposta rápida sem iniciar o TUI completo. Por exemplo.
```bash "opencode run"
opencode run Explique o uso de contexto em Go
opencode run Explain the use of context in Go
```
Você também pode se anexar a uma instância em execução do `opencode serve` para evitar tempos de inicialização a frio do servidor MCP em cada execução:
```bash
# Inicie um servidor sem cabeça em um terminal
# Start a headless server in one terminal
opencode serve
# Em outro terminal, execute comandos que se anexam a ele
opencode run --attach http://localhost:4096 "Explique async/await em JavaScript"
# In another terminal, run commands that attach to it
opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
```
#### Flags
@@ -378,7 +378,7 @@ Isso inicia um servidor HTTP que fornece acesso à funcionalidade do opencode se
Gerencie sessões do opencode.
```bash
opencode session [comando]
opencode session [command]
```
---
@@ -436,7 +436,7 @@ Se você não fornecer um ID de sessão, será solicitado que você selecione en
Importe dados da sessão de um arquivo JSON ou URL de compartilhamento do opencode.
```bash
opencode import <arquivo>
opencode import <file>
```
Você pode importar de um arquivo local ou de uma URL de compartilhamento do opencode.
@@ -513,7 +513,7 @@ opencode uninstall
Atualiza o opencode para a versão mais recente ou uma versão específica.
```bash
opencode upgrade [alvo]
opencode upgrade [target]
```
Para atualizar para a versão mais recente.

View File

@@ -21,13 +21,13 @@ Crie `.opencode/commands/test.md`:
```md title=".opencode/commands/test.md"
---
description: Execute testes com cobertura
description: Run tests with coverage
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---
Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.
Concentre-se nos testes que falharam e sugira correções.
Run the full test suite with coverage report and show any failures.
Focus on the failing tests and suggest fixes.
```
O frontmatter define as propriedades do comando. O conteúdo se torna o template.
@@ -54,12 +54,12 @@ Use a opção `command` na sua [configuração](/docs/config) do opencode:
{
"$schema": "https://opencode.ai/config.json",
"command": {
// Este se torna o nome do comando
// This becomes the name of the command
"test": {
// Este é o prompt que será enviado ao LLM
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes que falharam e sugira correções.",
// Este é exibido como a descrição no TUI
"description": "Execute testes com cobertura",
// This is the prompt that will be sent to the LLM
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
// This is shown as the description in the TUI
"description": "Run tests with coverage",
"agent": "build",
"model": "anthropic/claude-3-5-sonnet-20241022"
}
@@ -84,13 +84,13 @@ Você também pode definir comandos usando arquivos markdown. Coloque-os em:
```markdown title="~/.config/opencode/commands/test.md"
---
description: Execute testes com cobertura
description: Run tests with coverage
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---
Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.
Concentre-se nos testes que falharam e sugira correções.
Run the full test suite with coverage report and show any failures.
Focus on the failing tests and suggest fixes.
```
O nome do arquivo markdown se torna o nome do comando. Por exemplo, `test.md` permite que você execute:
@@ -113,11 +113,11 @@ Passe argumentos para os comandos usando o espaço reservado `$ARGUMENTS`.
```md title=".opencode/commands/component.md"
---
description: Crie um novo componente
description: Create a new component
---
Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript.
Inclua tipagem adequada e estrutura básica.
Create a new React component named $ARGUMENTS with TypeScript support.
Include proper typing and basic structure.
```
Execute o comando com argumentos:
@@ -139,11 +139,11 @@ Por exemplo:
```md title=".opencode/commands/create-file.md"
---
description: Crie um novo arquivo com conteúdo
description: Create a new file with content
---
Crie um arquivo chamado $1 no diretório $2
com o seguinte conteúdo: $3
Create a file named $1 in the directory $2
with the following content: $3
```
Execute o comando:
@@ -162,32 +162,32 @@ Isso substitui:
### Saída do shell
Use _!`comando`_ para injetar a saída do [comando bash](/docs/tui#bash-commands) no seu prompt.
Use _!`command`_ para injetar a saída do [comando bash](/docs/tui#bash-commands) no seu prompt.
Por exemplo, para criar um comando personalizado que analisa a cobertura de testes:
```md title=".opencode/commands/analyze-coverage.md"
---
description: Analise a cobertura de testes
description: Analyze test coverage
---
Aqui estão os resultados atuais dos testes:
Here are the current test results:
!`npm test`
Com base nesses resultados, sugira melhorias para aumentar a cobertura.
Based on these results, suggest improvements to increase coverage.
```
Ou para revisar alterações recentes:
```md title=".opencode/commands/review-changes.md"
---
description: Revise alterações recentes
description: Review recent changes
---
Commits git recentes:
Recent git commits:
!`git log --oneline -10`
Revise essas alterações e sugira quaisquer melhorias.
Review these changes and suggest any improvements.
```
Os comandos são executados no diretório raiz do seu projeto e sua saída se torna parte do prompt.
@@ -200,11 +200,11 @@ Inclua arquivos no seu comando usando `@` seguido pelo nome do arquivo.
```md title=".opencode/commands/review-component.md"
---
description: Revise componente
description: Review component
---
Revise o componente em @src/components/Button.tsx.
Verifique problemas de desempenho e sugira melhorias.
Review the component in @src/components/Button.tsx.
Check for performance issues and suggest improvements.
```
O conteúdo do arquivo é incluído automaticamente no prompt.
@@ -225,7 +225,7 @@ A opção `template` define o prompt que será enviado ao LLM quando o comando f
{
"command": {
"test": {
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes que falharam e sugira correções."
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
}
}
}
@@ -243,7 +243,7 @@ Use a opção `description` para fornecer uma breve descrição do que o comando
{
"command": {
"test": {
"description": "Execute testes com cobertura"
"description": "Run tests with coverage"
}
}
}

View File

@@ -14,7 +14,7 @@ O opencode suporta os formatos **JSON** e **JSONC** (JSON com Comentários).
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
// Configuração do tema
// Theme configuration
"theme": "opencode",
"model": "anthropic/claude-sonnet-4-5",
"autoupdate": true,
@@ -65,7 +65,7 @@ A configuração remota é carregada primeiro, servindo como a camada base. Toda
Por exemplo, se sua organização fornece servidores MCP que estão desativados por padrão:
```json title="Configuração remota de .well-known/opencode"
```json title="Remote config from .well-known/opencode"
{
"mcp": {
"jira": {
@@ -320,11 +320,11 @@ Você pode configurar agentes especializados para tarefas específicas através
"$schema": "https://opencode.ai/config.json",
"agent": {
"code-reviewer": {
"description": "Revisa o código em busca de melhores práticas e problemas potenciais",
"description": "Reviews code for best practices and potential issues",
"model": "anthropic/claude-sonnet-4-5",
"prompt": "Você é um revisor de código. Foque em segurança, desempenho e manutenibilidade.",
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
"tools": {
// Desabilitar ferramentas de modificação de arquivos para agente somente de revisão
// Disable file modification tools for review-only agent
"write": false,
"edit": false,
},
@@ -384,14 +384,14 @@ Você pode configurar comandos personalizados para tarefas repetitivas através
"$schema": "https://opencode.ai/config.json",
"command": {
"test": {
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nFoque nos testes que falharam e sugira correções.",
"description": "Executar testes com cobertura",
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
"description": "Run tests with coverage",
"agent": "build",
"model": "anthropic/claude-haiku-4-5",
},
"component": {
"template": "Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript.\nInclua tipagem adequada e estrutura básica.",
"description": "Criar um novo componente",
"template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
"description": "Create a new component",
},
},
}

View File

@@ -30,12 +30,12 @@ A maneira mais fácil de criar ferramentas é usando o helper `tool()`, que forn
import { tool } from "@opencode-ai/plugin"
export default tool({
description: "Consultar o banco de dados do projeto",
description: "Query the project database",
args: {
query: tool.schema.string().describe("Consulta SQL a ser executada"),
query: tool.schema.string().describe("SQL query to execute"),
},
async execute(args) {
// Sua lógica de banco de dados aqui
// Your database logic here
return `Executed query: ${args.query}`
},
})
@@ -53,10 +53,10 @@ Você também pode exportar várias ferramentas de um único arquivo. Cada expor
import { tool } from "@opencode-ai/plugin"
export const add = tool({
description: "Adicionar dois números",
description: "Add two numbers",
args: {
a: tool.schema.number().describe("Primeiro número"),
b: tool.schema.number().describe("Segundo número"),
a: tool.schema.number().describe("First number"),
b: tool.schema.number().describe("Second number"),
},
async execute(args) {
return args.a + args.b
@@ -64,10 +64,10 @@ export const add = tool({
})
export const multiply = tool({
description: "Multiplicar dois números",
description: "Multiply two numbers",
args: {
a: tool.schema.number().describe("Primeiro número"),
b: tool.schema.number().describe("Segundo número"),
a: tool.schema.number().describe("First number"),
b: tool.schema.number().describe("Second number"),
},
async execute(args) {
return args.a * args.b
@@ -85,7 +85,7 @@ Você pode usar `tool.schema`, que é apenas [Zod](https://zod.dev), para defini
```ts "tool.schema"
args: {
query: tool.schema.string().describe("Consulta SQL a ser executada")
query: tool.schema.string().describe("SQL query to execute")
}
```
@@ -95,13 +95,13 @@ Você também pode importar [Zod](https://zod.dev) diretamente e retornar um obj
import { z } from "zod"
export default {
description: "Descrição da ferramenta",
description: "Tool description",
args: {
param: z.string().describe("Descrição do parâmetro"),
param: z.string().describe("Parameter description"),
},
async execute(args, context) {
// Implementação da ferramenta
return "resultado"
// Tool implementation
return "result"
},
}
```
@@ -116,10 +116,10 @@ As ferramentas recebem contexto sobre a sessão atual:
import { tool } from "@opencode-ai/plugin"
export default tool({
description: "Obter informações do projeto",
description: "Get project information",
args: {},
async execute(args, context) {
// Acessar informações do contexto
// Access context information
const { agent, sessionID, messageID, directory, worktree } = context
return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}, Worktree: ${worktree}`
},
@@ -154,10 +154,10 @@ import { tool } from "@opencode-ai/plugin"
import path from "path"
export default tool({
description: "Adicionar dois números usando Python",
description: "Add two numbers using Python",
args: {
a: tool.schema.number().describe("Primeiro número"),
b: tool.schema.number().describe("Segundo número"),
a: tool.schema.number().describe("First number"),
b: tool.schema.number().describe("Second number"),
},
async execute(args, context) {
const script = path.join(context.worktree, ".opencode/tools/add.py")

View File

@@ -27,7 +27,7 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
| [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-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de AI 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 |
@@ -35,14 +35,14 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
| [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-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de AI 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 |
| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de AI 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 |
@@ -72,5 +72,5 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
| Nome | Descrição |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de IA modulares para desenvolvimento estruturado |
| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de AI modulares para desenvolvimento estruturado |
| [opencode-agents](https://github.com/darrenhinde/opencode-agents) | Configurações, prompts, agentes e plugins para fluxos de trabalho aprimorados |

View File

@@ -6,7 +6,7 @@ description: Usando opencode com segurança em sua organização.
import config from "../../../../config.mjs"
export const email = `mailto:${config.email}`
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de IA interno.
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de AI interno.
:::note
opencode não armazena nenhum de seus códigos ou dados de contexto.
@@ -27,9 +27,9 @@ opencode é de código aberto e não armazena nenhum de seus códigos ou dados d
### Manipulação de dados
**opencode não armazena seu código ou dados de contexto.** Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de IA.
**opencode não armazena seu código ou dados de contexto.** Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de AI.
Isso significa que, enquanto você estiver usando um provedor em quem confia, ou um gateway de IA interno, você pode usar o opencode com segurança.
Isso significa que, enquanto você estiver usando um provedor em quem confia, ou um gateway de AI interno, você pode usar o opencode com segurança.
A única ressalva aqui é o recurso opcional `/share`.
@@ -76,7 +76,7 @@ Uma vez que você tenha concluído seu teste e esteja pronto para usar o opencod
Podemos configurar o opencode para usar uma única configuração central para toda a sua organização.
Essa configuração centralizada pode se integrar ao seu provedor de SSO e garante que todos os usuários acessem apenas seu gateway de IA interno.
Essa configuração centralizada pode se integrar ao seu provedor de SSO e garante que todos os usuários acessem apenas seu gateway de AI interno.
---
@@ -84,15 +84,15 @@ Essa configuração centralizada pode se integrar ao seu provedor de SSO e garan
Através da configuração central, o opencode pode se integrar ao provedor de SSO de sua organização para autenticação.
Isso permite que o opencode obtenha credenciais para seu gateway de IA interno através do seu sistema de gerenciamento de identidade existente.
Isso permite que o opencode obtenha credenciais para seu gateway de AI interno através do seu sistema de gerenciamento de identidade existente.
---
### Gateway de IA Interno
### Gateway de AI Interno
Com a configuração central, o opencode também pode ser configurado para usar apenas seu gateway de IA interno.
Com a configuração central, o opencode também pode ser configurado para usar apenas seu gateway de AI interno.
Você também pode desativar todos os outros provedores de IA, garantindo que todas as solicitações passem pela infraestrutura aprovada de sua organização.
Você também pode desativar todos os outros provedores de AI, garantindo que todas as solicitações passem pela infraestrutura aprovada de sua organização.
---
@@ -109,7 +109,7 @@ Isso está atualmente em nosso roadmap. Se você estiver interessado, **<a href=
<details>
<summary>O que é opencode Enterprise?</summary>
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de IA interno.
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de AI interno.
</details>
@@ -132,7 +132,7 @@ Oferecemos preços empresariais por assento. Se você tiver seu próprio gateway
<details>
<summary>Meus dados estão seguros com opencode Enterprise?</summary>
Sim. O opencode não armazena seu código ou dados de contexto. Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de IA. Com a configuração central e a integração SSO, seus dados permanecem seguros dentro da infraestrutura de sua organização.
Sim. O opencode não armazena seu código ou dados de contexto. Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de AI. Com a configuração central e a integração SSO, seus dados permanecem seguros dentro da infraestrutura de sua organização.
</details>

View File

@@ -63,7 +63,7 @@ Ou você pode configurá-lo manualmente.
fetch-depth: 1
persist-credentials: false
- name: Run opencode
- name: Run OpenCode
uses: anomalyco/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -119,11 +119,11 @@ O opencode pode ser acionado pelos seguintes eventos do GitHub:
Execute o opencode em um cronograma para realizar tarefas automatizadas:
```yaml title=".github/workflows/opencode-scheduled.yml"
name: Tarefa Agendada opencode
name: Scheduled OpenCode Task
on:
schedule:
- cron: "0 9 * * 1" # Toda segunda-feira às 9h UTC
- cron: "0 9 * * 1" # Every Monday at 9am UTC
jobs:
opencode:
@@ -139,15 +139,15 @@ jobs:
with:
persist-credentials: false
- name: Run opencode
- name: Run OpenCode
uses: anomalyco/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
prompt: |
Revise a base de código em busca de comentários TODO e crie um resumo.
Se você encontrar problemas que valem a pena serem abordados, abra um problema para rastreá-los.
Review the codebase for any TODO comments and create a summary.
If you find issues worth addressing, open an issue to track them.
```
Para eventos agendados, a entrada `prompt` é **obrigatória** uma vez que não há comentário para extrair instruções. Fluxos de trabalho agendados são executados sem um contexto de usuário para verificação de permissões, então o fluxo de trabalho deve conceder `contents: write` e `pull-requests: write` se você espera que o opencode crie branches ou PRs.
@@ -185,10 +185,10 @@ jobs:
model: anthropic/claude-sonnet-4-20250514
use_github_token: true
prompt: |
Revise este pull request:
- Verifique se há problemas de qualidade de código
- Procure por bugs potenciais
- Sugira melhorias
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements
```
Para eventos de `pull_request`, se nenhum `prompt` for fornecido, o opencode padrão será revisar o pull request.
@@ -200,7 +200,7 @@ Para eventos de `pull_request`, se nenhum `prompt` for fornecido, o opencode pad
Triagem automática de novos problemas. Este exemplo filtra contas com mais de 30 dias para reduzir spam:
```yaml title=".github/workflows/opencode-triage.yml"
name: Triagem de Problemas
name: Issue Triage
on:
issues:
@@ -215,7 +215,7 @@ jobs:
pull-requests: write
issues: write
steps:
- name: Verificar idade da conta
- name: Check account age
id: check
uses: actions/github-script@v7
with:
@@ -240,10 +240,10 @@ jobs:
with:
model: anthropic/claude-sonnet-4-20250514
prompt: |
Revise este problema. Se houver uma correção clara ou documentos relevantes:
- Forneça links de documentação
- Adicione orientações de tratamento de erros para exemplos de código
Caso contrário, não comente.
Review this issue. If there's a clear fix or relevant docs:
- Provide documentation links
- Add error handling guidance for code examples
Otherwise, do not comment.
```
Para eventos de `issues`, a entrada `prompt` é **obrigatória** uma vez que não há comentário para extrair instruções.
@@ -259,10 +259,10 @@ Substitua o prompt padrão para personalizar o comportamento do opencode para se
with:
model: anthropic/claude-sonnet-4-5
prompt: |
Revise este pull request:
- Verifique se há problemas de qualidade de código
- Procure por bugs potenciais
- Sugira melhorias
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements
```
Isso é útil para impor critérios de revisão específicos, padrões de codificação ou áreas de foco relevantes para seu projeto.
@@ -308,7 +308,7 @@ Aqui estão alguns exemplos de como você pode usar o opencode no GitHub.
Deixe um comentário diretamente nas linhas de código na aba "Files" do PR. O opencode detecta automaticamente o arquivo, os números das linhas e o contexto do diff para fornecer respostas precisas.
```
[Comentário sobre linhas específicas na aba Files]
[Comment on specific lines in Files tab]
/oc add error handling here
```

View File

@@ -35,9 +35,9 @@ Aqui estamos usando um componente CI/CD criado pela comunidade para opencode —
- component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2
inputs:
config_dir: ${CI_PROJECT_DIR}/opencode-config
auth_json: $OPENCODE_AUTH_JSON # O nome da variável para seu JSON de autenticação do opencode
auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON
command: optional-custom-command
message: "Seu prompt aqui"
message: "Your prompt here"
```
Para mais entradas e casos de uso [consulte a documentação](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) deste componente.
@@ -70,7 +70,7 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent
1. Configure seu ambiente GitLab
2. Configure CI/CD
3. Obtenha uma chave de API do provedor de modelo de IA
3. Obtenha uma chave de API do provedor de modelo de AI
4. Crie uma conta de serviço
5. Configure variáveis de CI/CD
6. Crie um arquivo de configuração de fluxo, aqui está um exemplo:
@@ -82,16 +82,16 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent
```yaml
image: node:22-slim
commands:
- echo "Instalando opencode"
- echo "Installing opencode"
- npm install --global opencode-ai
- echo "Instalando glab"
- echo "Installing glab"
- export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE
- apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
- curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
- apt-get install --yes glab
- echo "Configurando glab"
- echo "Configuring glab"
- echo $GITLAB_HOST
- echo "Criando configuração de autenticação do opencode"
- echo "Creating OpenCode auth configuration"
- mkdir --parents ~/.local/share/opencode
- |
cat > ~/.local/share/opencode/auth.json << EOF
@@ -102,47 +102,47 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent
}
}
EOF
- echo "Configurando git"
- echo "Configuring git"
- git config --global user.email "opencode@gitlab.com"
- git config --global user.name "opencode"
- echo "Testando glab"
- git config --global user.name "OpenCode"
- echo "Testing glab"
- glab issue list
- echo "Executando opencode"
- echo "Running OpenCode"
- |
opencode run "
Você é um assistente de IA ajudando com operações do GitLab.
You are an AI assistant helping with GitLab operations.
Contexto: $AI_FLOW_CONTEXT
Tarefa: $AI_FLOW_INPUT
Evento: $AI_FLOW_EVENT
Context: $AI_FLOW_CONTEXT
Task: $AI_FLOW_INPUT
Event: $AI_FLOW_EVENT
Por favor, execute a tarefa solicitada usando as ferramentas disponíveis do GitLab.
Seja minucioso em sua análise e forneça explicações claras.
Please execute the requested task using the available GitLab tools.
Be thorough in your analysis and provide clear explanations.
<important>
Por favor, use a CLI do glab para acessar dados do GitLab. A CLI do glab já foi autenticada. Você pode executar os comandos correspondentes.
Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
Se você for solicitado a resumir um MR ou problema ou a fornecer mais informações, então, por favor, poste uma nota de volta ao MR/Problema para que o usuário possa vê-la.
Você não precisa fazer commit ou push das alterações, isso será feito automaticamente com base nas alterações de arquivo que você fizer.
If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
</important>
"
- git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
- echo "Verificando alterações no git e fazendo push se existirem"
- echo "Checking for git changes and pushing if any exist"
- |
if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
echo "Alterações no Git detectadas, adicionando e fazendo push..."
echo "Git changes detected, adding and pushing..."
git add .
if git diff --cached --quiet; then
echo "Nenhuma alteração em estágio para fazer commit"
echo "No staged changes to commit"
else
echo "Fazendo commit das alterações no branch: $CI_WORKLOAD_REF"
git commit --message "Alterações do Codex"
echo "Fazendo push das alterações para $CI_WORKLOAD_REF"
echo "Committing changes to branch: $CI_WORKLOAD_REF"
git commit --message "Codex changes"
echo "Pushing changes up to $CI_WORKLOAD_REF"
git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
echo "Alterações enviadas com sucesso"
echo "Changes successfully pushed"
fi
else
echo "Nenhuma alteração no git detectada, pulando push"
echo "No git changes detected, skipping push"
fi
variables:
- ANTHROPIC_API_KEY

View File

@@ -147,7 +147,7 @@ Se você é novo no uso de provedores de LLM, recomendamos usar o [OpenCode Zen]
3. Cole sua chave de API.
```txt
Chave de API
API key
└ enter
@@ -162,7 +162,7 @@ Alternativamente, você pode selecionar um dos outros provedores. [Saiba mais](/
Agora que você configurou um provedor, pode navegar até um projeto no qual deseja trabalhar.
```bash
cd /caminho/para/projeto
cd /path/to/project
```
E execute o opencode.
@@ -204,7 +204,7 @@ Use a tecla `@` para buscar arquivos no projeto.
:::
```txt frame="none" "@packages/functions/src/api/index.ts"
Como a autenticação é tratada em @packages/functions/src/api/index.ts
How is authentication handled in @packages/functions/src/api/index.ts
```
Isso é útil se houver uma parte da base de código na qual você não trabalhou.
@@ -221,16 +221,16 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
Mude para ele usando a tecla **Tab**. Você verá um indicador para isso no canto inferior direito.
```bash frame="none" title="Mudar para o modo de plano"
```bash frame="none" title="Switch to Plan mode"
<TAB>
```
Agora vamos descrever o que queremos que ele faça.
```txt frame="none"
Quando um usuário excluir uma nota, gostaríamos de marcá-la como excluída no banco de dados.
Em seguida, crie uma tela que mostre todas as notas recentemente excluídas.
A partir dessa tela, o usuário pode restaurar uma nota ou excluí-la permanentemente.
When a user deletes a note, we'd like to flag it as deleted in the database.
Then create a screen that shows all the recently deleted notes.
From this screen, the user can undelete a note or permanently delete it.
```
Você quer dar ao opencode detalhes suficientes para entender o que você deseja. Ajuda conversar com ele como se você estivesse falando com um desenvolvedor júnior da sua equipe.
@@ -244,8 +244,8 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
Uma vez que ele lhe der um plano, você pode dar feedback ou adicionar mais detalhes.
```txt frame="none"
Gostaríamos de projetar essa nova tela usando um design que já usei antes.
[Imagem #1] Dê uma olhada nesta imagem e use-a como referência.
We'd like to design this new screen using a design I've used before.
[Image #1] Take a look at this image and use it as a reference.
```
:::tip
@@ -265,7 +265,7 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
E peça para ele fazer as alterações.
```bash frame="none"
Parece bom! Vá em frente e faça as alterações.
Sounds good! Go ahead and make the changes.
```
---
@@ -275,7 +275,9 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
Para alterações mais simples, você pode pedir ao opencode para construí-las diretamente sem precisar revisar o plano primeiro.
```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
Precisamos adicionar autenticação à rota /settings. Dê uma olhada em como isso é tratado na rota /notes em @packages/functions/src/notes.ts e implemente a mesma lógica em @packages/functions/src/settings.ts
We need to add authentication to the /settings route. Take a look at how this is
handled in the /notes route in @packages/functions/src/notes.ts and implement
the same logic in @packages/functions/src/settings.ts
```
Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o opencode faça as alterações corretas.
@@ -287,7 +289,7 @@ Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o ope
Vamos supor que você peça ao opencode para fazer algumas alterações.
```txt frame="none" "@packages/functions/src/api/index.ts"
Você pode refatorar a função em @packages/functions/src/api/index.ts?
Can you refactor the function in @packages/functions/src/api/index.ts?
```
Mas você percebe que não era isso que você queria. Você **pode desfazer** as alterações usando o comando `/undo`.
@@ -299,7 +301,7 @@ Mas você percebe que não era isso que você queria. Você **pode desfazer** as
O opencode agora reverterá as alterações que você fez e mostrará sua mensagem original novamente.
```txt frame="none" "@packages/functions/src/api/index.ts"
Você pode refatorar a função em @packages/functions/src/api/index.ts?
Can you refactor the function in @packages/functions/src/api/index.ts?
```
A partir daqui, você pode ajustar o prompt e pedir ao opencode para tentar novamente.

View File

@@ -182,7 +182,7 @@ Você pode adicionar servidores LSP personalizados especificando o comando e as
PHP Intelephense oferece recursos premium através de uma chave de licença. Você pode fornecer uma chave de licença colocando (apenas) a chave em um arquivo de texto em:
- No macOS/Linux: `$HOME/intelephense/licence.txt`
- No Windows: `%USERPROFILE%/intelephense/licence.txt`
- No macOS/Linux: `$HOME/intelephense/license.txt`
- No Windows: `%USERPROFILE%/intelephense/license.txt`
O arquivo deve conter apenas a chave de licença sem conteúdo adicional.

View File

@@ -29,11 +29,11 @@ Você pode definir servidores MCP em sua [Configuração do opencode](https://op
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp-server-name": {
"name-of-mcp-server": {
// ...
"enabled": true,
},
"another-mcp-server-name": {
"name-of-other-mcp-server": {
// ...
},
},
@@ -77,11 +77,11 @@ Adicione servidores MCP locais usando `type` como `"local"` dentro do objeto MCP
"mcp": {
"my-local-mcp-server": {
"type": "local",
// Ou ["bun", "x", "my-mcp-command"]
// Or ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "env_var_value",
"MY_ENV_VAR": "my_env_var_value",
},
},
},
@@ -183,7 +183,7 @@ Para a maioria dos servidores MCP habilitados para OAuth, nenhuma configuração
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.exemplo.com/mcp"
"url": "https://mcp.example.com/mcp"
}
}
}
@@ -203,9 +203,9 @@ Se você tiver credenciais de cliente do provedor do servidor MCP, pode configur
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.exemplo.com/mcp",
"url": "https://mcp.example.com/mcp",
"oauth": {
"clientId": "{env:MY_MCP_CLIENT_KEY}",
"clientId": "{env:MY_MCP_CLIENT_ID}",
"clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
"scope": "tools:read tools:execute"
}
@@ -252,7 +252,7 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p
"mcp": {
"my-api-key-server": {
"type": "remote",
"url": "https://mcp.exemplo.com/mcp",
"url": "https://mcp.example.com/mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MY_API_KEY}"
@@ -278,10 +278,10 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p
Se um servidor MCP remoto estiver falhando na autenticação, você pode diagnosticar problemas com:
```bash
# Ver status de autenticação para todos os servidores com capacidade OAuth
# View auth status for all OAuth-capable servers
opencode mcp auth list
# Depurar conexão e fluxo OAuth para um servidor específico
# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server
```
@@ -387,7 +387,7 @@ O padrão glob usa padrões simples de regex globbing:
As ferramentas do servidor MCP são registradas com o nome do servidor como prefixo, então para desabilitar todas as ferramentas de um servidor, simplesmente use:
```
"mynome_do_servidor_mcp_*": false
"mymcpservername_*": false
```
:::

View File

@@ -36,7 +36,7 @@ Um modo restrito projetado para planejamento e análise. No modo plan, as seguin
- `patch` - Não pode aplicar patches
- `bash` - Não pode executar comandos de shell
Este modo é útil quando você deseja que a IA analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código.
Este modo é útil quando você deseja que a AI analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código.
---
@@ -98,14 +98,14 @@ tools:
bash: false
---
Você está no modo de revisão de código. Foque em:
You are in code review mode. Focus on:
- Qualidade do código e melhores práticas
- Bugs potenciais e casos extremos
- Implicações de desempenho
- Considerações de segurança
- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations
Forneça feedback construtivo sem fazer alterações diretas.
Provide constructive feedback without making direct changes.
```
O nome do arquivo markdown se torna o nome do modo (por exemplo, `review.md` cria um modo `review`).
@@ -132,7 +132,7 @@ Use a configuração `model` para substituir o modelo padrão para este modo. Ú
### Temperatura
Controle a aleatoriedade e a criatividade das respostas da IA com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade.
Controle a aleatoriedade e a criatividade das respostas da AI com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade.
```json title="opencode.json"
{
@@ -278,17 +278,17 @@ tools:
edit: false
---
Você está no modo de depuração. Seu objetivo principal é ajudar a investigar e diagnosticar problemas.
You are in debug mode. Your primary goal is to help investigate and diagnose issues.
Foque em:
Focus on:
- Compreender o problema através de uma análise cuidadosa
- Usar comandos bash para inspecionar o estado do sistema
- Ler arquivos e logs relevantes
- Pesquisar padrões e anomalias
- Fornecer explicações claras das descobertas
- Understanding the problem through careful analysis
- Using bash commands to inspect system state
- Reading relevant files and logs
- Searching for patterns and anomalies
- Providing clear explanations of findings
Não faça alterações em arquivos. Apenas investigue e relate.
Do not make any changes to files. Only investigate and report.
```
```markdown title="~/.config/opencode/modes/refactor.md"
@@ -302,15 +302,15 @@ tools:
glob: true
---
Você está no modo de refatoração. Foque em melhorar a qualidade do código sem alterar a funcionalidade.
You are in refactoring mode. Focus on improving code quality without changing functionality.
Prioridades:
Priorities:
- Melhorar a legibilidade e a manutenibilidade do código
- Aplicar convenções de nomenclatura consistentes
- Reduzir a duplicação de código
- Otimizar o desempenho onde apropriado
- Garantir que todos os testes continuem passando
- Improve code readability and maintainability
- Apply consistent naming conventions
- Reduce code duplication
- Optimize performance where appropriate
- Ensure all tests continue to pass
```
---

View File

@@ -12,13 +12,13 @@ opencode suporta variáveis de ambiente de proxy padrão e certificados personal
opencode respeita variáveis de ambiente de proxy padrão.
```bash
# Proxy HTTPS (recomendado)
# HTTPS proxy (recommended)
export HTTPS_PROXY=https://proxy.example.com:8080
# Proxy HTTP (se HTTPS não estiver disponível)
# HTTP proxy (if HTTPS not available)
export HTTP_PROXY=http://proxy.example.com:8080
# Ignorar proxy para servidor local (obrigatório)
# Bypass proxy for local server (required)
export NO_PROXY=localhost,127.0.0.1
```

View File

@@ -221,7 +221,7 @@ Você também pode configurar permissões de agentes em Markdown:
```markdown title="~/.config/opencode/agents/review.md"
---
description: Revisão de código sem edições
description: Code review without edits
mode: subagent
permission:
edit: deny
@@ -229,7 +229,7 @@ permission:
webfetch: deny
---
Apenas analise o código e sugira alterações.
Only analyze code and suggest changes.
```
:::tip

View File

@@ -104,10 +104,10 @@ export const MyPlugin = async (ctx) => {
```js title=".opencode/plugins/example.js"
export const MyPlugin = async ({ project, client, $, directory, worktree }) => {
console.log("Plugin inicializado!")
console.log("Plugin initialized!")
return {
// Implementações de hooks vão aqui
// Hook implementations go here
}
}
```
@@ -117,7 +117,7 @@ A função do plugin recebe:
- `project`: As informações do projeto atual.
- `directory`: O diretório de trabalho atual.
- `worktree`: O caminho do worktree do git.
- `client`: Um cliente SDK do opencode para interagir com a IA.
- `client`: Um cliente SDK do opencode para interagir com a AI.
- `$`: A [API shell](https://bun.com/docs/runtime/shell) do Bun para executar comandos.
---
@@ -131,7 +131,7 @@ import type { Plugin } from "@opencode-ai/plugin"
export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => {
return {
// Implementações de hooks seguras em tipo
// Type-safe hook implementations
}
}
```
@@ -222,7 +222,7 @@ Envie notificações quando certos eventos ocorrerem:
export const NotificationPlugin = async ({ project, client, $, directory, worktree }) => {
return {
event: async ({ event }) => {
// Enviar notificação ao concluir a sessão
// Send notification on session completion
if (event.type === "session.idle") {
await $`osascript -e 'display notification "Session completed!" with title "opencode"'`
}
@@ -248,7 +248,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree })
return {
"tool.execute.before": async (input, output) => {
if (input.tool === "read" && output.args.filePath.includes(".env")) {
throw new Error("Não leia arquivos .env")
throw new Error("Do not read .env files")
}
},
}
@@ -259,13 +259,13 @@ export const EnvProtection = async ({ project, client, $, directory, worktree })
### Injetar variáveis de ambiente
Injete variáveis de ambiente em todas as execuções de shell (ferramentas de IA e terminais de usuário):
Injete variáveis de ambiente em todas as execuções de shell (ferramentas de AI e terminais de usuário):
```javascript title=".opencode/plugins/inject-env.js"
export const InjectEnvPlugin = async () => {
return {
"shell.env": async (input, output) => {
output.env.MY_API_KEY = "secreto"
output.env.MY_API_KEY = "secret"
output.env.PROJECT_ROOT = input.cwd
},
}
@@ -285,7 +285,7 @@ export const CustomToolsPlugin: Plugin = async (ctx) => {
return {
tool: {
mytool: tool({
description: "Esta é uma ferramenta personalizada",
description: "This is a custom tool",
args: {
foo: tool.schema.string(),
},
@@ -319,7 +319,7 @@ export const MyPlugin = async ({ client }) => {
body: {
service: "my-plugin",
level: "info",
message: "Plugin inicializado",
message: "Plugin initialized",
extra: { foo: "bar" },
},
})
@@ -340,14 +340,14 @@ import type { Plugin } from "@opencode-ai/plugin"
export const CompactionPlugin: Plugin = async (ctx) => {
return {
"experimental.session.compacting": async (input, output) => {
// Injetar contexto adicional no prompt de compactação
// Inject additional context into the compaction prompt
output.context.push(`
## Contexto Personalizado
## Custom Context
Inclua qualquer estado que deve persistir entre as compactações:
- Status da tarefa atual
- Decisões importantes tomadas
- Arquivos sendo trabalhados ativamente
Include any state that should persist across compaction:
- Current task status
- Important decisions made
- Files being actively worked on
`)
},
}
@@ -364,17 +364,17 @@ import type { Plugin } from "@opencode-ai/plugin"
export const CustomCompactionPlugin: Plugin = async (ctx) => {
return {
"experimental.session.compacting": async (input, output) => {
// Substituir todo o prompt de compactação
// Replace the entire compaction prompt
output.prompt = `
Você está gerando um prompt de continuação para uma sessão de enxame multi-agente.
You are generating a continuation prompt for a multi-agent swarm session.
Resuma:
1. A tarefa atual e seu status
2. Quais arquivos estão sendo modificados e por quem
3. Quaisquer bloqueios ou dependências entre agentes
4. Os próximos passos para concluir o trabalho
Summarize:
1. The current task and its status
2. Which files are being modified and by whom
3. Any blockers or dependencies between agents
4. The next steps to complete the work
Formate como um prompt estruturado que um novo agente pode usar para retomar o trabalho.
Format as a structured prompt that a new agent can use to resume work.
`
},
}

View File

@@ -65,7 +65,7 @@ Se você é novo, recomendamos começar com o OpenCode Zen.
3. Cole sua chave da API.
```txt
Chave da API
API key
└ enter
@@ -104,7 +104,7 @@ Não vê um provedor aqui? Envie um PR.
3. Insira sua chave da API 302.AI.
```txt
Chave da API
API key
└ enter
@@ -135,13 +135,13 @@ Para usar o Amazon Bedrock com o opencode:
Defina uma dessas variáveis de ambiente ao executar o opencode:
```bash
# Opção 1: Usando chaves de acesso da AWS
# Option 1: Using AWS access keys
AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode
# Opção 2: Usando perfil nomeado da AWS
# Option 2: Using named AWS profile
AWS_PROFILE=my-profile opencode
# Opção 3: Usando token bearer do Bedrock
# Option 3: Using Bedrock bearer token
AWS_BEARER_TOKEN_BEDROCK=XXX opencode
```
@@ -258,11 +258,11 @@ Para perfis de inferência personalizados, use o nome do modelo e do provedor na
2. Aqui você pode selecionar a opção **Claude Pro/Max** e isso abrirá seu navegador e pedirá para você se autenticar.
```txt
┌ Selecionar método de autenticação
┌ Select auth method
│ Claude Pro/Max
│ Criar uma chave da API
Inserir chave da API manualmente
│ Create an API Key
Manually enter API Key
```
@@ -309,7 +309,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
4. Insira sua chave da API.
```txt
Chave da API
API key
└ enter
@@ -356,7 +356,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
4. Insira sua chave da API.
```txt
Chave da API
API key
└ enter
@@ -395,7 +395,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
3. Insira sua chave da API Baseten.
```txt
Chave da API
API key
└ enter
@@ -422,7 +422,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
3. Insira sua chave da API Cerebras.
```txt
Chave da API
API key
└ enter
@@ -445,8 +445,8 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
2. Defina seu ID de Conta e ID de Gateway como variáveis de ambiente.
```bash title="~/.bash_profile"
export CLOUDFLARE_ACCOUNT_ID=seu-id-de-conta-de-32-caracteres
export CLOUDFLARE_GATEWAY_ID=seu-id-de-gateway
export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id
export CLOUDFLARE_GATEWAY_ID=your-gateway-id
```
3. Execute o comando `/connect` e procure por **Cloudflare AI Gateway**.
@@ -458,7 +458,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
4. Insira seu token da API do Cloudflare.
```txt
Chave da API
API key
└ enter
@@ -467,7 +467,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
Ou defina como uma variável de ambiente.
```bash title="~/.bash_profile"
export CLOUDFLARE_API_TOKEN=seu-token-da-api
export CLOUDFLARE_API_TOKEN=your-api-token
```
5. Execute o comando `/models` para selecionar um modelo.
@@ -507,7 +507,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
3. Insira sua chave da API Cortecs.
```txt
Chave da API
API key
└ enter
@@ -534,7 +534,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
3. Insira sua chave da API DeepSeek.
```txt
Chave da API
API key
└ enter
@@ -561,7 +561,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
3. Insira sua chave da API Deep Infra.
```txt
Chave da API
API key
└ enter
@@ -588,7 +588,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
3. Insira sua chave da API Firmware.
```txt
Chave da API
API key
└ enter
@@ -615,7 +615,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
3. Insira sua chave da API Fireworks AI.
```txt
Chave da API
API key
└ enter
@@ -642,10 +642,10 @@ GitLab Duo fornece um chat agente com suporte a ferramentas nativas através do
2. Escolha seu método de autenticação:
```txt
┌ Selecionar método de autenticação
┌ Select auth method
│ OAuth (Recomendado)
Token de Acesso Pessoal
│ OAuth (Recommended)
Personal Access Token
```
@@ -656,7 +656,7 @@ GitLab Duo fornece um chat agente com suporte a ferramentas nativas através do
#### Usando Token de Acesso Pessoal
1. Vá para [Configurações do Usuário do GitLab > Tokens de Acesso](https://gitlab.com/-/user_settings/personal_access_tokens)
2. Clique em **Adicionar novo token**
3. Nome: `opencode`, Escopos: `api`
3. Nome: `OpenCode`, Escopos: `api`
4. Copie o token (começa com `glpat-`)
5. Insira-o no terminal
@@ -679,7 +679,7 @@ armazenar o token no armazenamento de autenticação do opencode.
##### GitLab Auto-Hospedado
:::note[nota de conformidade]
opencode usa um pequeno modelo para algumas tarefas de IA, como gerar o título da sessão.
opencode usa um pequeno modelo para algumas tarefas de AI, como gerar o título da sessão.
Ele está configurado para usar gpt-5-nano por padrão, hospedado pela Zen. Para bloquear o opencode
para usar apenas sua própria instância hospedada do GitLab, adicione o seguinte ao seu
arquivo `opencode.json`. Também é recomendado desativar o compartilhamento de sessões.
@@ -737,7 +737,7 @@ URL de callback `http://127.0.0.1:8080/callback` e os seguintes escopos:
Em seguida, exponha o ID do aplicativo como variável de ambiente:
```bash
export GITLAB_OAUTH_CLIENT_ID=seu_id_do_aplicativo_aqui
export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
```
Mais documentação na página [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth).
@@ -797,13 +797,13 @@ Alguns modelos precisam ser habilitados manualmente nas suas [configurações do
2. Navegue até [github.com/login/device](https://github.com/login/device) e insira o código.
```txt
┌ Login com GitHub Copilot
┌ Login with GitHub Copilot
│ https://github.com/login/device
Insira o código: 8F43-6FCF
Enter code: 8F43-6FCF
Aguardando autorização...
Waiting for authorization...
```
3. Agora execute o comando `/models` para selecionar o modelo que você deseja.
@@ -835,14 +835,14 @@ Para usar o Google Vertex AI com o opencode:
Defina-as ao executar o opencode.
```bash
GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/service-account.json GOOGLE_CLOUD_PROJECT=seu-id-do-projeto opencode
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode
```
Ou adicione-as ao seu perfil bash.
```bash title="~/.bash_profile"
export GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/service-account.json
export GOOGLE_CLOUD_PROJECT=seu-id-do-projeto
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
export GOOGLE_CLOUD_PROJECT=your-project-id
export VERTEX_LOCATION=global
```
@@ -871,7 +871,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
3. Insira a chave da API para o provedor.
```txt
Chave da API
API key
└ enter
@@ -900,7 +900,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
3. Insira seu token do Hugging Face.
```txt
Chave da API
API key
└ enter
@@ -916,7 +916,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
### Helicone
[Helicone](https://helicone.ai) é uma plataforma de observabilidade LLM que fornece registro, monitoramento e análises para suas aplicações de IA. O Helicone AI Gateway roteia suas solicitações para o provedor apropriado automaticamente com base no modelo.
[Helicone](https://helicone.ai) é uma plataforma de observabilidade LLM que fornece registro, monitoramento e análises para suas aplicações de AI. O Helicone AI Gateway roteia suas solicitações para o provedor apropriado automaticamente com base no modelo.
1. Acesse [Helicone](https://helicone.ai), crie uma conta e gere uma chave da API a partir do seu painel.
@@ -929,7 +929,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
3. Insira sua chave da API Helicone.
```txt
Chave da API
API key
└ enter
@@ -961,8 +961,8 @@ Aqui está o [Diretório de Modelos do Helicone](https://helicone.ai/models), vo
},
"models": {
"gpt-4o": {
// ID do modelo (da página do diretório de modelos do Helicone)
"name": "GPT-4o", // Seu próprio nome personalizado para o modelo
// Model ID (from Helicone's model directory page)
"name": "GPT-4o", // Your own custom name for the model
},
"claude-sonnet-4-20250514": {
"name": "Claude Sonnet 4",
@@ -1080,7 +1080,7 @@ IO.NET oferece 17 modelos otimizados para vários casos de uso:
3. Insira sua chave da API IO.NET.
```txt
Chave da API
API key
└ enter
@@ -1143,7 +1143,7 @@ Para usar Kimi K2 do Moonshot AI:
3. Insira sua chave da API Moonshot.
```txt
Chave da API
API key
└ enter
@@ -1170,7 +1170,7 @@ Para usar Kimi K2 do Moonshot AI:
3. Insira sua chave da API MiniMax.
```txt
Chave da API
API key
└ enter
@@ -1197,7 +1197,7 @@ Para usar Kimi K2 do Moonshot AI:
3. Insira sua chave da API Nebius Token Factory.
```txt
Chave da API
API key
└ enter
@@ -1272,7 +1272,7 @@ Para usar o Ollama Cloud com o opencode:
5. Insira sua chave da API do Ollama Cloud.
```txt
Chave da API
API key
└ enter
@@ -1305,10 +1305,10 @@ Recomendamos se inscrever para [ChatGPT Plus ou Pro](https://chatgpt.com/pricing
2. Aqui você pode selecionar a opção **ChatGPT Plus/Pro** e isso abrirá seu navegador e pedirá para você se autenticar.
```txt
┌ Selecionar método de autenticação
┌ Select auth method
│ ChatGPT Plus/Pro
Inserir chave da API manualmente
Manually enter API Key
```
@@ -1339,7 +1339,7 @@ OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equi
3. Insira sua chave da API do opencode.
```txt
Chave da API
API key
└ enter
@@ -1366,7 +1366,7 @@ OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equi
3. Insira a chave da API para o provedor.
```txt
Chave da API
API key
└ enter
@@ -1436,7 +1436,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
3. Insira seu JSON da chave de serviço.
```txt
Chave de serviço
Service key
└ enter
@@ -1457,7 +1457,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
4. Opcionalmente, defina o ID de implantação e o grupo de recursos:
```bash
AICORE_DEPLOYMENT_ID=seu-id-de-implantação AICORE_RESOURCE_GROUP=seu-grupo-de-recursos opencode
AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode
```
:::note
@@ -1474,7 +1474,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
### OVHcloud AI Endpoints
1. Acesse o [painel OVHcloud](https://ovh.com/manager). Navegue até a seção `Public Cloud`, `AI & Machine Learning` > `Endpoints de IA` e na aba `API Keys`, clique em **Criar uma nova chave da API**.
1. Acesse o [painel OVHcloud](https://ovh.com/manager). Navegue até a seção `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` e na aba `API Keys`, clique em **Criar uma nova chave da API**.
2. Execute o comando `/connect` e procure por **OVHcloud AI Endpoints**.
@@ -1485,7 +1485,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
3. Insira sua chave da API OVHcloud AI Endpoints.
```txt
Chave da API
API key
└ enter
@@ -1514,7 +1514,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ
3. Insira sua chave da API Scaleway.
```txt
Chave da API
API key
└ enter
@@ -1541,7 +1541,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ
3. Insira sua chave da API Together AI.
```txt
Chave da API
API key
└ enter
@@ -1568,7 +1568,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ
3. Insira sua chave da API Venice AI.
```txt
Chave da API
API key
└ enter
@@ -1597,7 +1597,7 @@ O Vercel AI Gateway permite que você acesse modelos do OpenAI, Anthropic, Googl
3. Insira sua chave da API do Vercel AI Gateway.
```txt
Chave da API
API key
└ enter
@@ -1651,7 +1651,7 @@ Algumas opções de roteamento úteis:
3. Insira sua chave da API xAI.
```txt
Chave da API
API key
└ enter
@@ -1680,7 +1680,7 @@ Algumas opções de roteamento úteis:
3. Insira sua chave da API Z.AI.
```txt
Chave da API
API key
└ enter
@@ -1707,7 +1707,7 @@ Algumas opções de roteamento úteis:
3. Insira a chave da API para o provedor.
```txt
Chave da API
API key
└ enter
@@ -1741,7 +1741,7 @@ Algumas opções de roteamento úteis:
Para adicionar qualquer provedor **compatível com OpenAI** que não esteja listado no comando `/connect`:
:::tip
Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maioria dos provedores de IA modernos oferece APIs compatíveis com OpenAI.
Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maioria dos provedores de AI modernos oferece APIs compatíveis com OpenAI.
:::
1. Execute o comando `/connect` e role para baixo até **Outro**.
@@ -1749,11 +1749,11 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
```bash
$ /connect
┌ Adicionar credencial
┌ Add credential
◆ Selecionar provedor
◆ Select provider
│ ...
│ ● Outro
│ ● Other
```
@@ -1762,9 +1762,9 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
```bash
$ /connect
┌ Adicionar credencial
┌ Add credential
Insira o id do provedor
Enter provider id
│ myprovider
```
@@ -1778,11 +1778,11 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
```bash
$ /connect
┌ Adicionar credencial
┌ Add credential
Isso apenas armazena uma credencial para myprovider - você precisará configurá-la no opencode.json, verifique a documentação para exemplos.
This only stores a credential for myprovider - you will need to configure it in opencode.json, check the docs for examples.
Insira sua chave da API
Enter your API key
│ sk-...
```
@@ -1795,13 +1795,13 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
"provider": {
"myprovider": {
"npm": "@ai-sdk/openai-compatible",
"name": "Nome de Exibição do Meu Provedor de IA",
"name": "My AI ProviderDisplay Name",
"options": {
"baseURL": "https://api.myprovider.com/v1"
},
"models": {
"my-model-name": {
"name": "Nome de Exibição do Meu Modelo"
"name": "My Model Display Name"
}
}
}
@@ -1810,7 +1810,7 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
```
Aqui estão as opções de configuração:
- **npm**: Pacote do SDK de IA a ser usado, `@ai-sdk/openai-compatible` para provedores compatíveis com OpenAI
- **npm**: Pacote do SDK de AI a ser usado, `@ai-sdk/openai-compatible` para provedores compatíveis com OpenAI
- **name**: Nome de exibição na interface do usuário.
- **models**: Modelos disponíveis.
- **options.baseURL**: URL do endpoint da API.
@@ -1833,7 +1833,7 @@ Aqui está um exemplo definindo as opções `apiKey`, `headers` e `limit` do mod
"provider": {
"myprovider": {
"npm": "@ai-sdk/openai-compatible",
"name": "Nome de Exibição do Meu Provedor de IA",
"name": "My AI ProviderDisplay Name",
"options": {
"baseURL": "https://api.myprovider.com/v1",
"apiKey": "{env:ANTHROPIC_API_KEY}",
@@ -1843,7 +1843,7 @@ Aqui está um exemplo definindo as opções `apiKey`, `headers` e `limit` do mod
},
"models": {
"my-model-name": {
"name": "Nome de Exibição do Meu Modelo",
"name": "My Model Display Name",
"limit": {
"context": 200000,
"output": 65536

View File

@@ -26,26 +26,26 @@ Se você já tiver um arquivo `AGENTS.md` existente, isso tentará adicionar a e
Você também pode criar este arquivo manualmente. Aqui está um exemplo de algumas coisas que você pode colocar em um arquivo `AGENTS.md`.
```markdown title="AGENTS.md"
# Projeto Monorepo SST v3
# SST v3 Monorepo Project
Este é um monorepo SST v3 com TypeScript. O projeto usa bun workspaces para gerenciamento de pacotes.
This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
## Estrutura do Projeto
## Project Structure
- `packages/` - Contém todos os pacotes do workspace (funções, núcleo, web, etc.)
- `infra/` - Definições de infraestrutura divididas por serviço (storage.ts, api.ts, web.ts)
- `sst.config.ts` - Configuração principal do SST com imports dinâmicos
- `packages/` - Contains all workspace packages (functions, core, web, etc.)
- `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts)
- `sst.config.ts` - Main SST configuration with dynamic imports
## Padrões de Código
## Code Standards
- Use TypeScript com o modo estrito habilitado
- O código compartilhado vai em `packages/core/` com a configuração de exports adequada
- Funções vão em `packages/functions/`
- A infraestrutura deve ser dividida em arquivos lógicos em `infra/`
- Use TypeScript with strict mode enabled
- Shared code goes in `packages/core/` with proper exports configuration
- Functions go in `packages/functions/`
- Infrastructure should be split into logical files in `infra/`
## Convenções de Monorepo
## Monorepo Conventions
- Importe módulos compartilhados usando nomes de workspace: `@my-app/core/example`
- Import shared modules using workspace names: `@my-app/core/example`
```
Estamos adicionando instruções específicas do projeto aqui e isso será compartilhado entre sua equipe.
@@ -77,9 +77,9 @@ Para usuários migrando do Claude Code, o opencode suporta as convenções de ar
Para desabilitar a compatibilidade com Claude Code, defina uma dessas variáveis de ambiente:
```bash
export OPENCODE_DISABLE_CLAUDE_CODE=1 # Desabilitar todo suporte a .claude
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Desabilitar apenas ~/.claude/CLAUDE.md
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Desabilitar apenas .claude/skills
export OPENCODE_DISABLE_CLAUDE_CODE=1 # Disable all .claude support
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills
```
---
@@ -144,28 +144,28 @@ A abordagem recomendada é usar o campo `instructions` em `opencode.json`:
Você pode ensinar o opencode a ler arquivos externos fornecendo instruções explícitas em seu `AGENTS.md`. Aqui está um exemplo prático:
```markdown title="AGENTS.md"
# Regras do Projeto TypeScript
# TypeScript Project Rules
## Carregamento de Arquivos Externos
## External File Loading
CRÍTICO: Quando você encontrar uma referência de arquivo (por exemplo, @rules/general.md), use sua ferramenta de Leitura para carregá-lo conforme necessário. Eles são relevantes para a TAREFA ESPECÍFICA em questão.
CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand.
Instruções:
Instructions:
- NÃO carregue todas as referências de forma preemptiva - use carregamento sob demanda com base na necessidade real
- Quando carregado, trate o conteúdo como instruções obrigatórias que substituem os padrões
- Siga referências recursivamente quando necessário
- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed
## Diretrizes de Desenvolvimento
## Development Guidelines
Para estilo de código TypeScript e melhores práticas: @docs/typescript-guidelines.md
Para arquitetura de componentes React e padrões de hooks: @docs/react-patterns.md
Para design de API REST e tratamento de erros: @docs/api-standards.md
Para estratégias de teste e requisitos de cobertura: @test/testing-guidelines.md
For TypeScript code style and best practices: @docs/typescript-guidelines.md
For React component architecture and hooks patterns: @docs/react-patterns.md
For REST API design and error handling: @docs/api-standards.md
For testing strategies and coverage requirements: @test/testing-guidelines.md
## Diretrizes Gerais
## General Guidelines
Leia o seguinte arquivo imediatamente, pois é relevante para todos os fluxos de trabalho: @rules/general-guidelines.md.
Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.
```
Essa abordagem permite que você:

View File

@@ -111,7 +111,7 @@ O SDK pode lançar erros que você pode capturar e tratar:
try {
await client.session.get({ path: { id: "invalid-id" } })
} catch (error) {
console.error("Falha ao obter a sessão:", (error as Error).message)
console.error("Failed to get session:", (error as Error).message)
}
```
@@ -152,16 +152,16 @@ console.log(health.data.version)
#### Exemplos
```javascript
// Escrever uma entrada de log
// Write a log entry
await client.app.log({
body: {
service: "my-app",
level: "info",
message: "Operação concluída",
message: "Operation completed",
},
})
// Listar agentes disponíveis
// List available agents
const agents = await client.app.agents()
```
@@ -179,10 +179,10 @@ const agents = await client.app.agents()
#### Exemplos
```javascript
// Listar todos os projetos
// List all projects
const projects = await client.project.list()
// Obter projeto atual
// Get current project
const currentProject = await client.project.current()
```
@@ -199,7 +199,7 @@ const currentProject = await client.project.current()
#### Exemplos
```javascript
// Obter informações do caminho atual
// Get current path information
const pathInfo = await client.path.get()
```
@@ -241,7 +241,7 @@ const { providers, default: defaults } = await client.config.providers()
| `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.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 AI |
| `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> |
@@ -253,28 +253,28 @@ const { providers, default: defaults } = await client.config.providers()
#### Exemplos
```javascript
// Criar e gerenciar sessões
// Create and manage sessions
const session = await client.session.create({
body: { title: "Minha sessão" },
body: { title: "My session" },
})
const sessions = await client.session.list()
// Enviar uma mensagem de prompt
// Send a prompt message
const result = await client.session.prompt({
path: { id: session.id },
body: {
model: { providerID: "anthropic", modelID: "claude-3-5-sonnet-20241022" },
parts: [{ type: "text", text: "Olá!" }],
parts: [{ type: "text", text: "Hello!" }],
},
})
// Injetar contexto sem acionar resposta da IA (útil para plugins)
// Inject context without triggering AI response (useful for plugins)
await client.session.prompt({
path: { id: session.id },
body: {
noReply: true,
parts: [{ type: "text", text: "Você é um assistente útil." }],
parts: [{ type: "text", text: "You are a helpful assistant." }],
},
})
```
@@ -302,7 +302,7 @@ await client.session.prompt({
#### Exemplos
```javascript
// Pesquisar e ler arquivos
// Search and read files
const textResults = await client.find.text({
query: { pattern: "function.*opencode" },
})
@@ -341,13 +341,13 @@ const content = await client.file.read({
#### Exemplos
```javascript
// Controlar a interface TUI
// Control TUI interface
await client.tui.appendPrompt({
body: { text: "Adicione isso ao prompt" },
body: { text: "Add this to prompt" },
})
await client.tui.showToast({
body: { message: "Tarefa concluída", variant: "success" },
body: { message: "Task completed", variant: "success" },
})
```
@@ -366,7 +366,7 @@ await client.tui.showToast({
```javascript
await client.auth.set({
path: { id: "anthropic" },
body: { type: "api", key: "sua-chave-api" },
body: { type: "api", key: "your-api-key" },
})
```
@@ -383,9 +383,9 @@ await client.auth.set({
#### Exemplos
```javascript
// Ouvir eventos em tempo real
// Listen to real-time events
const events = await client.event.subscribe()
for await (const event of events.stream) {
console.log("Evento:", event.type, event.properties)
console.log("Event:", event.type, event.properties)
}
```

View File

@@ -13,7 +13,7 @@ O comando `opencode serve` executa um servidor HTTP sem cabeça que expõe um en
### Uso
```bash
opencode serve [--port <número>] [--hostname <string>] [--cors <origem>]
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
```
#### Opções
@@ -39,7 +39,7 @@ opencode serve --cors http://localhost:5173 --cors https://app.example.com
Defina `OPENCODE_SERVER_PASSWORD` para proteger o servidor com autenticação básica HTTP. O nome de usuário padrão é `opencode`, ou defina `OPENCODE_SERVER_USERNAME` para substituí-lo. Isso se aplica tanto ao `opencode serve` quanto ao `opencode web`.
```bash
OPENCODE_SERVER_PASSWORD=sua-senha opencode serve
OPENCODE_SERVER_PASSWORD=your-password opencode serve
```
---

View File

@@ -78,24 +78,24 @@ Crie `.opencode/skills/git-release/SKILL.md` assim:
```markdown
---
name: git-release
description: Crie lançamentos e changelogs consistentes
description: Create consistent releases and changelogs
license: MIT
compatibility: opencode
metadata:
audience: mantenedores
audience: maintainers
workflow: github
---
## O que eu faço
## What I do
- Redigir notas de lançamento a partir de PRs mesclados
- Propor um aumento de versão
- Fornecer um comando `gh release create` copiável e colável
- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command
## Quando me usar
## When to use me
Use isso quando estiver preparando um lançamento marcado.
Faça perguntas esclarecedoras se o esquema de versionamento alvo não estiver claro.
Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.
```
---
@@ -109,7 +109,7 @@ Cada entrada inclui o nome e a descrição da habilidade:
<available_skills>
<skill>
<name>git-release</name>
<description>Crie lançamentos e changelogs consistentes</description>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>
```

View File

@@ -45,7 +45,7 @@ opencode Desktop executa um servidor opencode local (o sidecar `opencode-cli`) e
- Saia completamente do aplicativo e reinicie-o.
- Se o aplicativo mostrar uma tela de erro, clique em **Reiniciar** e copie os detalhes do erro.
- Apenas macOS: menu `opencode` -> **Recarregar Webview** (ajuda se a interface estiver em branco/congelada).
- Apenas macOS: menu `OpenCode` -> **Recarregar Webview** (ajuda se a interface estiver em branco/congelada).
---
@@ -277,7 +277,7 @@ Usuários do Linux precisam ter um dos seguintes utilitários de área de transf
```bash
apt install -y xclip
# ou
# or
apt install -y xsel
```
@@ -291,7 +291,7 @@ apt install -y wl-clipboard
```bash
apt install -y xvfb
# e execute:
# and run:
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
export DISPLAY=:99.0
```

View File

@@ -16,13 +16,13 @@ opencode
Ou você pode iniciá-lo para um diretório de trabalho específico.
```bash
opencode /caminho/para/projeto
opencode /path/to/project
```
Uma vez que você esteja no TUI, você pode solicitar com uma mensagem.
```text
Me dê um resumo rápido da base de código.
Give me a quick summary of the codebase.
```
---
@@ -36,7 +36,7 @@ Você também pode usar `@` para referenciar arquivos em suas mensagens.
:::
```text "@packages/functions/src/api/index.ts"
Como a autenticação é tratada em @packages/functions/src/api/index.ts?
How is auth handled in @packages/functions/src/api/index.ts?
```
O conteúdo do arquivo é adicionado à conversa automaticamente.
@@ -290,12 +290,12 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v
<Tabs>
<TabItem label="Linux/macOS">
```bash
# Exemplo para nano ou vim
# Example for nano or vim
export EDITOR=nano
export EDITOR=vim
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# inclua --wait
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
export EDITOR="code --wait"
```
@@ -308,8 +308,8 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v
```bash
set EDITOR=notepad
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# inclua --wait
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
set EDITOR=code --wait
```
@@ -321,8 +321,8 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v
```powershell
$env:EDITOR = "notepad"
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# inclua --wait
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
$env:EDITOR = "code --wait"
```

View File

@@ -3,7 +3,7 @@ title: Web
description: Usando opencode no seu navegador.
---
opencode pode ser executado como uma aplicação web no seu navegador, proporcionando a mesma poderosa experiência de codificação com IA sem precisar de um terminal.
opencode pode ser executado como uma aplicação web no seu navegador, proporcionando a mesma poderosa experiência de codificação com AI sem precisar de um terminal.
![opencode Web - Nova Sessão](../../../assets/web/web-homepage-new-session.png)
@@ -50,8 +50,8 @@ opencode web --hostname 0.0.0.0
Ao usar `0.0.0.0`, o opencode exibirá endereços locais e de rede:
```
Acesso local: http://localhost:4096
Acesso à rede: http://192.168.1.100:4096
Local access: http://localhost:4096
Network access: http://192.168.1.100:4096
```
### Descoberta mDNS
@@ -113,10 +113,10 @@ Clique em "Ver Servidores" para visualizar os servidores conectados e seu status
Você pode anexar um terminal TUI a um servidor web em execução:
```bash
# Inicie o servidor web
# Start the web server
opencode web --port 4096
# Em outro terminal, anexe o TUI
# In another terminal, attach the TUI
opencode attach http://localhost:4096
```

View File

@@ -33,7 +33,7 @@ Para resolver isso, fizemos algumas coisas:
2. Trabalhamos com alguns provedores para garantir que esses modelos estivessem sendo servidos corretamente.
3. Finalmente, realizamos benchmarks da combinação modelo/provedor e elaboramos uma lista que nos sentimos bem em recomendar.
OpenCode Zen é um gateway de IA que lhe dá acesso a esses modelos.
OpenCode Zen é um gateway de AI que lhe dá acesso a esses modelos.
---