summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/pt-br
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-28 15:27:11 -0600
committerGitHub <[email protected]>2026-02-28 15:27:11 -0600
commite1e18c7abdb1025d7be63acee1f188b94d16eb9b (patch)
treead14a08aba4752d3ab03452209520c94bb0df59e /packages/web/src/content/docs/pt-br
parent971bd30516fb2b245f87bdf79e36bb64e72265bc (diff)
downloadopencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.tar.gz
opencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.zip
chore(docs): i18n sync (#15417)
Diffstat (limited to 'packages/web/src/content/docs/pt-br')
-rw-r--r--packages/web/src/content/docs/pt-br/config.mdx62
-rw-r--r--packages/web/src/content/docs/pt-br/custom-tools.mdx28
-rw-r--r--packages/web/src/content/docs/pt-br/keybinds.mdx10
-rw-r--r--packages/web/src/content/docs/pt-br/lsp.mdx1
-rw-r--r--packages/web/src/content/docs/pt-br/plugins.mdx4
-rw-r--r--packages/web/src/content/docs/pt-br/providers.mdx115
-rw-r--r--packages/web/src/content/docs/pt-br/sdk.mdx114
-rw-r--r--packages/web/src/content/docs/pt-br/themes.mdx6
-rw-r--r--packages/web/src/content/docs/pt-br/tui.mdx34
-rw-r--r--packages/web/src/content/docs/pt-br/zen.mdx60
10 files changed, 307 insertions, 127 deletions
diff --git a/packages/web/src/content/docs/pt-br/config.mdx b/packages/web/src/content/docs/pt-br/config.mdx
index 405c53794..4684bb199 100644
--- a/packages/web/src/content/docs/pt-br/config.mdx
+++ b/packages/web/src/content/docs/pt-br/config.mdx
@@ -14,10 +14,11 @@ O opencode suporta os formatos **JSON** e **JSONC** (JSON com Comentários).
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
- // Theme configuration
- "theme": "opencode",
"model": "anthropic/claude-sonnet-4-5",
"autoupdate": true,
+ "server": {
+ "port": 4096,
+ },
}
```
@@ -34,7 +35,7 @@ Os arquivos de configuração são **mesclados**, não substituídos.
Os arquivos de configuração são mesclados, não substituídos. As configurações das seguintes localizações de configuração são combinadas. Configurações posteriores substituem as anteriores apenas para chaves conflitantes. Configurações não conflitantes de todas as configurações são preservadas.
-Por exemplo, se sua configuração global define `theme: "opencode"` e `autoupdate: true`, e sua configuração de projeto define `model: "anthropic/claude-sonnet-4-5"`, a configuração final incluirá as três configurações.
+Por exemplo, se sua configuração global define `autoupdate: true` e sua configuração de projeto define `model: "anthropic/claude-sonnet-4-5"`, a configuração final incluirá as duas configurações.
---
@@ -95,7 +96,9 @@ Você pode habilitar servidores específicos em sua configuração local:
### Global
-Coloque sua configuração global do opencode em `~/.config/opencode/opencode.json`. Use a configuração global para preferências de usuário, como temas, provedores ou atalhos de teclado.
+Coloque sua configuração global do opencode em `~/.config/opencode/opencode.json`. Use a configuração global para preferências de todo o usuário, como provedores, modelos e permissões.
+
+Para configurações específicas do TUI, use `~/.config/opencode/tui.json`.
A configuração global substitui os padrões organizacionais remotos.
@@ -105,6 +108,8 @@ A configuração global substitui os padrões organizacionais remotos.
Adicione `opencode.json` na raiz do seu projeto. A configuração do projeto tem a maior precedência entre os arquivos de configuração padrão - ela substitui tanto as configurações globais quanto as remotas.
+Para configurações específicas do TUI do projeto, adicione `tui.json` junto a ele.
+
:::tip
Coloque a configuração específica do projeto na raiz do seu projeto.
:::
@@ -143,7 +148,9 @@ O diretório personalizado é carregado após a configuração global e os diret
## Esquema
-O arquivo de configuração tem um esquema que está definido em [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
+O esquema de configuração do servidor/tempo de execução é definido em [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
+
+A configuração do TUI usa [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json).
Seu editor deve ser capaz de validar e autocompletar com base no esquema.
@@ -151,28 +158,24 @@ Seu editor deve ser capaz de validar e autocompletar com base no esquema.
### TUI
-Você pode configurar as configurações específicas do TUI através da opção `tui`.
+Use um arquivo `tui.json` (ou `tui.jsonc`) dedicado para configurações específicas do TUI.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "tui": {
- "scroll_speed": 3,
- "scroll_acceleration": {
- "enabled": true
- },
- "diff_style": "auto"
- }
+ "$schema": "https://opencode.ai/tui.json",
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ },
+ "diff_style": "auto"
}
```
-Opções disponíveis:
+Use `OPENCODE_TUI_CONFIG` para apontar para um arquivo de configuração TUI personalizado.
-- `scroll_acceleration.enabled` - Habilitar aceleração de rolagem estilo macOS. **Tem precedência sobre `scroll_speed`.**
-- `scroll_speed` - Multiplicador de velocidade de rolagem personalizada (padrão: `3`, mínimo: `1`). Ignorado se `scroll_acceleration.enabled` for `true`.
-- `diff_style` - Controlar a renderização de diffs. `"auto"` se adapta à largura do terminal, `"stacked"` sempre mostra uma coluna única.
+Chaves legadas `theme`, `keybinds` e `tui` em `opencode.json` estão obsoletas e são migradas automaticamente quando possível.
-[Saiba mais sobre o uso do TUI aqui](/docs/tui).
+[Saiba mais sobre a configuração do TUI aqui](/docs/tui#configure).
---
@@ -298,12 +301,12 @@ Tokens Bearer (`AWS_BEARER_TOKEN_BEDROCK` ou `/connect`) têm precedência sobre
### Temas
-Você pode configurar o tema que deseja usar em sua configuração do opencode através da opção `theme`.
+Defina seu tema de interface em `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "theme": ""
+ "$schema": "https://opencode.ai/tui.json",
+ "theme": "tokyonight"
}
```
@@ -403,11 +406,11 @@ Você também pode definir comandos usando arquivos markdown em `~/.config/openc
### Atalhos de teclado
-Você pode personalizar seus atalhos de teclado através da opção `keybinds`.
+Personalize atalhos de teclado em `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {}
}
```
@@ -487,13 +490,15 @@ Você pode controlar o comportamento de compactação de contexto através da op
"$schema": "https://opencode.ai/config.json",
"compaction": {
"auto": true,
- "prune": true
+ "prune": true,
+ "reserved": 10000
}
}
```
- `auto` - Compactar automaticamente a sessão quando o contexto estiver cheio (padrão: `true`).
- `prune` - Remover saídas antigas de ferramentas para economizar tokens (padrão: `true`).
+- `reserved` - Buffer de tokens para compactação. Deixa janela suficiente para evitar estouro durante a compactação
---
@@ -673,6 +678,7 @@ Os caminhos dos arquivos podem ser:
- Relativos ao diretório do arquivo de configuração
- Ou caminhos absolutos começando com `/` ou `~`
+-
Esses são úteis para:
diff --git a/packages/web/src/content/docs/pt-br/custom-tools.mdx b/packages/web/src/content/docs/pt-br/custom-tools.mdx
index 43749200f..515b8985a 100644
--- a/packages/web/src/content/docs/pt-br/custom-tools.mdx
+++ b/packages/web/src/content/docs/pt-br/custom-tools.mdx
@@ -79,6 +79,32 @@ Isso cria duas ferramentas: `math_add` e `math_multiply`.
---
+#### Colisões de nome com ferramentas integradas
+
+Ferramentas personalizadas são chaveadas pelo nome da ferramenta. Se uma ferramenta personalizada usar o mesmo nome que uma ferramenta integrada, a ferramenta personalizada tem precedência.
+
+Por exemplo, este arquivo substitui a ferramenta `bash` integrada:
+
+```ts title=".opencode/tools/bash.ts"
+import { tool } from "@opencode-ai/plugin"
+
+export default tool({
+ description: "Restricted bash wrapper",
+ args: {
+ command: tool.schema.string(),
+ },
+ async execute(args) {
+ return `blocked: ${args.command}`
+ },
+})
+```
+
+:::note
+Prefira nomes únicos, a menos que você queira intencionalmente substituir uma ferramenta integrada. Se você quiser desabilitar uma ferramenta integrada, mas não substituí-la, use [permissões](/docs/permissions).
+:::
+
+---
+
### Argumentos
Você pode usar `tool.schema`, que é apenas [Zod](https://zod.dev), para definir tipos de argumentos.
@@ -126,7 +152,7 @@ export default tool({
})
```
-Use `context.directory` para o diretório de trabalho da sessão.
+Use `context.directory` para o diretório de trabalho da sessão.
Use `context.worktree` para a raiz do worktree do git.
---
diff --git a/packages/web/src/content/docs/pt-br/keybinds.mdx b/packages/web/src/content/docs/pt-br/keybinds.mdx
index b4da4471a..1829763ad 100644
--- a/packages/web/src/content/docs/pt-br/keybinds.mdx
+++ b/packages/web/src/content/docs/pt-br/keybinds.mdx
@@ -3,11 +3,11 @@ title: Atalhos de Teclado
description: Personalize seus atalhos de teclado.
---
-O opencode tem uma lista de atalhos de teclado que você pode personalizar através da configuração do opencode.
+O opencode tem uma lista de atalhos de teclado que você pode personalizar através de `tui.json`.
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
@@ -119,9 +119,9 @@ Você não precisa usar uma tecla líder para seus atalhos, mas recomendamos que
Você pode desativar um atalho adicionando a tecla à sua configuração com um valor de "none".
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
diff --git a/packages/web/src/content/docs/pt-br/lsp.mdx b/packages/web/src/content/docs/pt-br/lsp.mdx
index 6baf1813b..cd8937b24 100644
--- a/packages/web/src/content/docs/pt-br/lsp.mdx
+++ b/packages/web/src/content/docs/pt-br/lsp.mdx
@@ -27,6 +27,7 @@ O opencode vem com vários servidores LSP integrados para linguagens populares:
| gopls | .go | Comando `go` disponível |
| hls | .hs, .lhs | Comando `haskell-language-server-wrapper` disponível |
| jdtls | .java | `Java SDK (version 21+)` instalado |
+| julials | .jl | `julia` e `LanguageServer.jl` instalados |
| kotlin-ls | .kt, .kts | Instala automaticamente para projetos Kotlin |
| lua-ls | .lua | Instala automaticamente para projetos Lua |
| nixd | .nix | Comando `nixd` disponível |
diff --git a/packages/web/src/content/docs/pt-br/plugins.mdx b/packages/web/src/content/docs/pt-br/plugins.mdx
index bcf8f379b..54c5b1ffa 100644
--- a/packages/web/src/content/docs/pt-br/plugins.mdx
+++ b/packages/web/src/content/docs/pt-br/plugins.mdx
@@ -307,6 +307,10 @@ O helper `tool` cria uma ferramenta personalizada que o opencode pode chamar. El
Suas ferramentas personalizadas estarão disponíveis para o opencode junto com as ferramentas integradas.
+:::note
+Se uma ferramenta de plugin usar o mesmo nome que uma ferramenta integrada, a ferramenta de plugin tem precedência.
+:::
+
---
### Registro
diff --git a/packages/web/src/content/docs/pt-br/providers.mdx b/packages/web/src/content/docs/pt-br/providers.mdx
index 43f2e385f..2ef2ebdc0 100644
--- a/packages/web/src/content/docs/pt-br/providers.mdx
+++ b/packages/web/src/content/docs/pt-br/providers.mdx
@@ -54,7 +54,39 @@ OpenCode Zen é uma lista de modelos fornecidos pela equipe do opencode que fora
Se você é novo, recomendamos começar com o OpenCode Zen.
:::
-1. Execute o comando `/connect` no TUI, selecione opencode e acesse [opencode.ai/auth](https://opencode.ai/auth).
+1. Execute o comando `/connect` no TUI, selecione `OpenCode Zen` e acesse [opencode.ai/zen](https://opencode.ai/zen).
+
+ ```txt
+ /connect
+ ```
+
+2. Faça login, adicione seus dados de cobrança e copie sua chave da API.
+
+3. Cole sua chave da API.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Execute `/models` no TUI para ver a lista de modelos que recomendamos.
+
+ ```txt
+ /models
+ ```
+
+Funciona como qualquer outro provedor no opencode e é completamente opcional.
+
+---
+
+## OpenCode Go
+
+OpenCode Go é um plano de assinatura de baixo custo que fornece acesso confiável a modelos de codificação abertos populares fornecidos pela equipe do opencode que foram
+testados e verificados para funcionar bem com o opencode.
+
+1. Execute o comando `/connect` no TUI, selecione `OpenCode Go` e acesse [opencode.ai/zen](https://opencode.ai/zen).
```txt
/connect
@@ -130,6 +162,8 @@ Para usar o Amazon Bedrock com o opencode:
2. **Configure a autenticação** usando um dos seguintes métodos:
+ ***
+
#### Variáveis de Ambiente (Início Rápido)
Defina uma dessas variáveis de ambiente ao executar o opencode:
@@ -152,6 +186,8 @@ Para usar o Amazon Bedrock com o opencode:
export AWS_REGION=us-east-1
```
+ ***
+
#### Arquivo de Configuração (Recomendado)
Para configuração específica do projeto ou persistente, use `opencode.json`:
@@ -179,6 +215,8 @@ Para usar o Amazon Bedrock com o opencode:
As opções do arquivo de configuração têm precedência sobre as variáveis de ambiente.
:::
+ ***
+
#### Avançado: Endpoints VPC
Se você estiver usando endpoints VPC para Bedrock:
@@ -202,12 +240,16 @@ Para usar o Amazon Bedrock com o opencode:
A opção `endpoint` é um alias para a opção genérica `baseURL`, usando terminologia específica da AWS. Se tanto `endpoint` quanto `baseURL` forem especificados, `endpoint` tem precedência.
:::
+ ***
+
#### Métodos de Autenticação
- **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: Crie um usuário IAM e gere chaves de acesso no Console da AWS
- **`AWS_PROFILE`**: Use perfis nomeados de `~/.aws/credentials`. Primeiro configure com `aws configure --profile my-profile` ou `aws sso login`
- **`AWS_BEARER_TOKEN_BEDROCK`**: Gere chaves de API de longo prazo no console do Amazon Bedrock
- **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: Para EKS IRSA (IAM Roles for Service Accounts) ou outros ambientes Kubernetes com federação OIDC. Essas variáveis de ambiente são injetadas automaticamente pelo Kubernetes ao usar anotações de conta de serviço.
+ ***
+
#### Precedência de Autenticação
O Amazon Bedrock usa a seguinte prioridade de autenticação:
@@ -225,7 +267,8 @@ Para usar o Amazon Bedrock com o opencode:
```
:::note
-Para perfis de inferência personalizados, use o nome do modelo e do provedor na chave e defina a propriedade `id` para o arn. Isso garante o cache correto:
+Para perfis de inferência personalizados, use o nome do modelo e do provedor na chave e defina a propriedade `id` para o arn. Isso garante o cache correto.
+:::
```json title="opencode.json"
{
@@ -243,8 +286,6 @@ Para perfis de inferência personalizados, use o nome do modelo e do provedor na
}
```
-:::
-
---
### Anthropic
@@ -784,8 +825,6 @@ Para usar sua assinatura do GitHub Copilot com o opencode:
:::note
Alguns modelos podem precisar de uma [assinatura Pro+](https://github.com/features/copilot/plans) para usar.
-
-Alguns modelos precisam ser habilitados manualmente nas suas [configurações do GitHub Copilot](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use).
:::
1. Execute o comando `/connect` e procure por GitHub Copilot.
@@ -803,7 +842,8 @@ Alguns modelos precisam ser habilitados manualmente nas suas [configurações do
│ Digite o código: 8F43-6FCF
- └ Aguardando autorização...
+ │ Aguardando autorização...
+ └
```
3. Agora execute o comando `/models` para selecionar o modelo que você deseja.
@@ -1309,6 +1349,7 @@ Recomendamos se inscrever para [ChatGPT Plus ou Pro](https://chatgpt.com/pricing
│ ChatGPT Plus/Pro
│ Inserir manualmente a chave de API
+ │
```
@@ -1472,6 +1513,39 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
---
+### STACKIT
+
+O STACKIT AI Model Serving fornece um ambiente de hospedagem soberano totalmente gerenciado para modelos de IA, com foco em LLMs como Llama, Mistral e Qwen, com máxima soberania de dados na infraestrutura europeia.
+
+1. Vá para o [Portal STACKIT](https://portal.stackit.cloud), navegue até **AI Model Serving** e crie um token de autenticação para o seu projeto.
+
+ :::tip
+ Você precisa de uma conta de cliente STACKIT, conta de usuário e projeto antes de criar tokens de autenticação.
+ :::
+
+2. Execute o comando `/connect` e procure por **STACKIT**.
+
+ ```txt
+ /connect
+ ```
+
+3. Insira seu token de autenticação do STACKIT AI Model Serving.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Execute o comando `/models` para selecionar entre os modelos disponíveis, como _Qwen3-VL 235B_ ou _Llama 3.3 70B_.
+
+ ```txt
+ /models
+ ```
+
+---
+
### OVHcloud AI Endpoints
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**.
@@ -1751,10 +1825,9 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
┌ Adicionar credencial
- ▲ Isso armazena apenas uma credencial para myprovider - você precisará configurá-lo no opencode.json, verifique a documentação para exemplos.
- │
- ◇ Digite sua chave de API
- │ sk-...
+ ◆ Select provider
+ │ ...
+ │ ● Other
```
@@ -1765,10 +1838,8 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
┌ Adicionar credencial
- ▲ Isso armazena apenas uma credencial para myprovider - você precisará configurá-lo no opencode.json, verifique a documentação para exemplos.
- │
- ◇ Digite sua chave de API
- │ sk-...
+ ◇ Enter provider id
+ │ myprovider
```
@@ -1808,8 +1879,6 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
}
}
}
- }
- }
}
}
```
@@ -1857,18 +1926,6 @@ 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",
- "limit": {
- "context": 200000,
- "output": 65536
- }
- }
- }
- }
- }
}
```
diff --git a/packages/web/src/content/docs/pt-br/sdk.mdx b/packages/web/src/content/docs/pt-br/sdk.mdx
index 672b852f6..7fd765e4c 100644
--- a/packages/web/src/content/docs/pt-br/sdk.mdx
+++ b/packages/web/src/content/docs/pt-br/sdk.mdx
@@ -117,6 +117,78 @@ try {
---
+## Saída Estruturada
+
+Você pode solicitar uma saída JSON estruturada do modelo especificando um `format` com um esquema JSON. O modelo usará uma ferramenta `StructuredOutput` para retornar um JSON validado correspondente ao seu esquema.
+
+### Uso Básico
+
+```typescript
+const result = await client.session.prompt({
+ path: { id: sessionId },
+ body: {
+ parts: [{ type: "text", text: "Research Anthropic and provide company info" }],
+ format: {
+ type: "json_schema",
+ schema: {
+ type: "object",
+ properties: {
+ company: { type: "string", description: "Company name" },
+ founded: { type: "number", description: "Year founded" },
+ products: {
+ type: "array",
+ items: { type: "string" },
+ description: "Main products",
+ },
+ },
+ required: ["company", "founded"],
+ },
+ },
+ },
+})
+
+// Acessar a saída estruturada
+console.log(result.data.info.structured_output)
+// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] }
+```
+
+### Tipos de Formato de Saída
+
+| Tipo | Descrição |
+| ------------- | --------------------------------------------------------- |
+| `text` | Padrão. Resposta de texto padrão (sem saída estruturada) |
+| `json_schema` | Retorna JSON validado correspondente ao esquema fornecido |
+
+### Formato do Esquema JSON
+
+Ao usar `type: 'json_schema'`, forneça:
+
+| Campo | Tipo | Descrição |
+| ------------ | --------------- | -------------------------------------------------------------- |
+| `type` | `'json_schema'` | Obrigatório. Especifica o modo de esquema JSON |
+| `schema` | `object` | Obrigatório. Objeto JSON Schema definindo a estrutura de saída |
+| `retryCount` | `number` | Opcional. Número de tentativas de validação (padrão: 2) |
+
+### Tratamento de Erros
+
+Se o modelo falhar em produzir uma saída estruturada válida após todas as tentativas, a resposta incluirá um `StructuredOutputError`:
+
+```typescript
+if (result.data.info.error?.name === "StructuredOutputError") {
+ console.error("Failed to produce structured output:", result.data.info.error.message)
+ console.error("Attempts:", result.data.info.error.retries)
+}
+```
+
+### Melhores Práticas
+
+1. **Forneça descrições claras** nas propriedades do seu esquema para ajudar o modelo a entender quais dados extrair
+2. **Use `required`** para especificar quais campos devem estar presentes
+3. **Mantenha os esquemas focados** - esquemas aninhados complexos podem ser mais difíceis para o modelo preencher corretamente
+4. **Defina um `retryCount` apropriado** - aumente para esquemas complexos, diminua para os simples
+
+---
+
## APIs
O SDK expõe todas as APIs do servidor através de um cliente seguro em tipos.
@@ -226,27 +298,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 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> |
-| `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 AI. Suporta `body.outputFormat` para [saída estruturada](#saída-estruturada) |
+| `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` |
---
diff --git a/packages/web/src/content/docs/pt-br/themes.mdx b/packages/web/src/content/docs/pt-br/themes.mdx
index a1a5083cb..5706d6e83 100644
--- a/packages/web/src/content/docs/pt-br/themes.mdx
+++ b/packages/web/src/content/docs/pt-br/themes.mdx
@@ -61,11 +61,11 @@ O tema do sistema é para usuários que:
## Usando um tema
-Você pode selecionar um tema chamando a seleção de tema com o comando `/theme`. Ou você pode especificá-lo em sua [configuração](/docs/config).
+Você pode selecionar um tema chamando a seleção de tema com o comando `/theme`. Ou você pode especificá-lo em `tui.json`.
-```json title="opencode.json" {3}
+```json title="tui.json" {3}
{
- "$schema": "https://opencode.ai/config.json",
+ "$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```
diff --git a/packages/web/src/content/docs/pt-br/tui.mdx b/packages/web/src/content/docs/pt-br/tui.mdx
index 17b9c7de0..67de2138b 100644
--- a/packages/web/src/content/docs/pt-br/tui.mdx
+++ b/packages/web/src/content/docs/pt-br/tui.mdx
@@ -234,7 +234,7 @@ Compartilhe a sessão atual. [Saiba mais](/docs/share).
Liste os temas disponíveis.
```bash frame="none"
-/theme
+/themes
```
**Atalho:** `ctrl+x t`
@@ -352,24 +352,34 @@ Alguns editores precisam de argumentos de linha de comando para rodar em modo bl
## Configuração
-Você pode personalizar o comportamento do TUI através do seu arquivo de configuração do opencode.
+Você pode personalizar o comportamento do TUI através de `tui.json` (ou `tui.jsonc`).
-```json title="opencode.json"
+```json title="tui.json"
{
- "$schema": "https://opencode.ai/config.json",
- "tui": {
- "scroll_speed": 3,
- "scroll_acceleration": {
- "enabled": true
- }
- }
+ "$schema": "https://opencode.ai/tui.json",
+ "theme": "opencode",
+ "keybinds": {
+ "leader": "ctrl+x"
+ },
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ },
+ "diff_style": "auto"
}
```
+Isso é separado do `opencode.json`, que configura o comportamento do servidor/runtime.
+
### Opções
-- `scroll_acceleration` - Ative a aceleração de rolagem no estilo macOS para uma rolagem suave e natural. Quando ativado, a velocidade de rolagem aumenta com gestos de rolagem rápidos e permanece precisa para movimentos mais lentos. **Esta configuração tem precedência sobre `scroll_speed` e a substitui quando ativada.**
-- `scroll_speed` - Controla quão rápido o TUI rola ao usar comandos de rolagem (mínimo: `1`). O padrão é `3`. **Nota: Isso é ignorado se `scroll_acceleration.enabled` estiver definido como `true`.**
+- `theme` - Define o tema da sua interface. [Saiba mais](/docs/themes).
+- `keybinds` - Personaliza atalhos de teclado. [Saiba mais](/docs/keybinds).
+- `scroll_acceleration.enabled` - Ative a aceleração de rolagem no estilo macOS para uma rolagem suave e natural. Quando ativado, a velocidade de rolagem aumenta com gestos de rolagem rápidos e permanece precisa para movimentos mais lentos. **Esta configuração tem precedência sobre `scroll_speed` e a substitui quando ativada.**
+- `scroll_speed` - Controla quão rápido o TUI rola ao usar comandos de rolagem (mínimo: `0.001`, suporta valores decimais). O padrão é `3`. **Nota: Isso é ignorado se `scroll_acceleration.enabled` estiver definido como `true`.**
+- `diff_style` - Controla a renderização de diffs. `"auto"` se adapta à largura do terminal, `"stacked"` sempre mostra um layout de coluna única.
+
+Use `OPENCODE_TUI_CONFIG` para carregar um caminho de configuração TUI personalizado.
---
diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx
index 203f0b3f9..2ec969d72 100644
--- a/packages/web/src/content/docs/pt-br/zen.mdx
+++ b/packages/web/src/content/docs/pt-br/zen.mdx
@@ -1,19 +1,19 @@
---
title: Zen
-description: Lista selecionada de modelos fornecidos pelo opencode.
+description: Lista selecionada de modelos fornecidos pelo OpenCode.
---
-import config from "../../../../config.mjs"
+import config from "../../../config.mjs"
export const console = config.console
export const email = `mailto:${config.email}`
-O OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equipe do opencode.
+O OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equipe do OpenCode.
:::note
O OpenCode Zen está atualmente em beta.
:::
-O Zen funciona como qualquer outro provedor no opencode. Você faz login no OpenCode Zen e obtém sua chave de API. É **completamente opcional** e você não precisa usá-lo para utilizar o opencode.
+O Zen funciona como qualquer outro provedor no OpenCode. Você faz login no OpenCode Zen e obtém sua chave de API. É **completamente opcional** e você não precisa usá-lo para utilizar o OpenCode.
---
@@ -22,7 +22,7 @@ O Zen funciona como qualquer outro provedor no opencode. Você faz login no Open
Existe um grande número de modelos disponíveis, mas apenas alguns desses modelos funcionam bem como agentes de codificação. Além disso, a maioria dos provedores é configurada de maneira muito diferente; portanto, você obtém desempenhos e qualidades muito diferentes.
:::tip
-Testamos um grupo selecionado de modelos e provedores que funcionam bem com o opencode.
+Testamos um grupo selecionado de modelos e provedores que funcionam bem com o OpenCode.
:::
Portanto, se você estiver usando um modelo através de algo como OpenRouter, você nunca pode ter certeza se está obtendo a melhor versão do modelo que deseja.
@@ -39,7 +39,7 @@ O OpenCode Zen é um gateway de IA que lhe dá acesso a esses modelos.
## Como funciona
-O OpenCode Zen funciona como qualquer outro provedor no opencode.
+O OpenCode Zen funciona como qualquer outro provedor no OpenCode.
1. Você faz login no **<a href={console}>OpenCode Zen</a>**, adiciona seus dados de cobrança e copia sua chave de API.
2. Você executa o comando `/connect` no TUI, seleciona OpenCode Zen e cola sua chave de API.
@@ -55,6 +55,7 @@ Você também pode acessar nossos modelos através dos seguintes endpoints da AP
| Modelo | ID do Modelo | Endpoint | Pacote AI SDK |
| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
+| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| 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` |
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
@@ -64,28 +65,30 @@ Você também pode acessar nossos modelos através dos seguintes endpoints da AP
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
-| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` |
| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
+| MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| MiniMax M2.5 Free | minimax-m2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
-O [id do modelo](/docs/config/#models) na sua configuração do opencode usa o formato `opencode/<model-id>`. Por exemplo, para GPT 5.2 Codex, você usaria `opencode/gpt-5.2-codex` na sua configuração.
+O [id do modelo](/docs/config/#models) na sua configuração do OpenCode usa o formato `opencode/<model-id>`. Por exemplo, para GPT 5.2 Codex, você usaria `opencode/gpt-5.2-codex` na sua configuração.
---
@@ -106,29 +109,34 @@ Nós suportamos um modelo de pagamento conforme o uso. Abaixo estão os preços
| 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.5 Free | Grátis | Grátis | Grátis | - |
+| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - |
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
-| GLM 4.7 Free | Grátis | Grátis | Grátis | - |
+| GLM 5 | $1.00 | $3.20 | $0.20 | - |
| 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 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 |
+| Claude Sonnet 4.6 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
+| Claude Sonnet 4.6 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.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.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
+| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
| 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.3 Codex | $1.75 | $14.00 | $0.175 | - |
| 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 | - |
@@ -147,10 +155,8 @@ As taxas de cartão de crédito são repassadas ao custo (4,4% + $0,30 por trans
Os modelos gratuitos:
-- GLM 4.7 Free está disponível no opencode por tempo limitado. A equipe está usando esse tempo para coletar feedback e melhorar o modelo.
-- Kimi K2.5 Free está disponível no opencode por tempo limitado. A equipe está usando esse tempo para coletar feedback e melhorar o modelo.
-- MiniMax M2.1 Free está disponível no opencode por tempo limitado. A equipe está usando esse tempo para coletar feedback e melhorar o modelo.
-- Big Pickle é um modelo oculto que está gratuito no opencode por tempo limitado. A equipe está usando esse tempo para coletar feedback e melhorar o modelo.
+- MiniMax M2.5 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse tempo para coletar feedback e melhorar o modelo.
+- Big Pickle é um modelo oculto que está gratuito no OpenCode por tempo limitado. A equipe está usando esse tempo para coletar feedback e melhorar o modelo.
<a href={email}>Entre em contato conosco</a> se você tiver alguma dúvida.
@@ -177,9 +183,7 @@ Por exemplo, digamos que você defina um limite de uso mensal de $20, o Zen não
Todos os nossos modelos estão hospedados nos EUA. Nossos provedores seguem uma política de zero retenção e não usam seus dados para treinamento de modelos, com as seguintes exceções:
- Big Pickle: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo.
-- GLM 4.7 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo.
-- Kimi K2.5 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo.
-- MiniMax M2.1 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo.
+- MiniMax M2.5 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo.
- APIs da OpenAI: As solicitações são retidas por 30 dias de acordo com as [Políticas de Dados da OpenAI](https://platform.openai.com/docs/guides/your-data).
- APIs da Anthropic: As solicitações são retidas por 30 dias de acordo com as [Políticas de Dados da Anthropic](https://docs.anthropic.com/en/docs/claude-code/data-usage).
@@ -233,4 +237,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 o 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 o OpenCode também.