chore(docs): i18n sync (#15417)

This commit is contained in:
Adam
2026-02-28 15:27:11 -06:00
committed by GitHub
parent 971bd30516
commit e1e18c7abd
174 changed files with 6358 additions and 4392 deletions

View File

@@ -335,20 +335,20 @@ opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
#### フラグ
| フラグ | ショート | 説明 |
| ------------ | ----------- | ----------------------------------------------------------------------------------------- |
| `--command` | | 実行するコマンド。引数には message を使用します。 |
| `--continue` | `-c` | 最後のセッションを続行 |
| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) |
| `--continue` | `--session` | 続行するセッション ID |
| `--share` | | セッションを共有する |
| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル |
| `--agent` | | 使用するエージェント |
| `--file` | `-f` | メッセージに添付するファイル |
| `--format` | | 形式: デフォルト (フォーマット済み) または json (生の JSON イベント) |
| `--title` | | セッションのタイトル (値が指定されていない場合は、切り詰められたプロンプトが使用されます) |
| `--attach` | | 実行中の opencode サーバー (http://localhost:4096 など) に接続します。 |
| `--port` | | ローカルサーバーのポート (デフォルトはランダムポート) |
| フラグ | ショート | 説明 |
| ------------ | -------- | ----------------------------------------------------------------------------------------- |
| `--command` | | 実行するコマンド。引数には message を使用します。 |
| `--continue` | `-c` | 最後のセッションを続行 |
| `--session` | `-s` | 続行するセッション ID |
| `--fork` | | 続行時にセッションをフォーク (`--continue` または `--session` と併用) |
| `--share` | | セッションを共有する |
| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル |
| `--agent` | | 使用するエージェント |
| `--file` | `-f` | メッセージに添付するファイル |
| `--format` | | 形式: デフォルト (フォーマット済み) または json (生の JSON イベント) |
| `--title` | | セッションのタイトル (値が指定されていない場合は、切り詰められたプロンプトが使用されます) |
| `--attach` | | 実行中の opencode サーバー (http://localhost:4096 など) に接続します。 |
| `--port` | | ローカルサーバーのポート (デフォルトはランダムポート) |
---

View File

@@ -14,10 +14,11 @@ OpenCode は、**JSON** と **JSONC** (コメント付きの JSON) 形式の両
```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,
},
}
```
@@ -25,14 +26,15 @@ OpenCode は、**JSON** と **JSONC** (コメント付きの JSON) 形式の両
## ファイルの場所
設定をいくつかの異なる場所に配置できます。
優先順位が異なります。
設定をいくつかの異なる場所に配置できます。それらは異なる優先順位を持ちます。
:::note
設定ファイルは置き換えられるのではなく、**マージ**されます。設定は、次の構成場所から結合されます。後続の設定は、競合するキーに対してのみ以前の設定をオーバーライドします。すべての設定の競合しない設定は保持されます。
設定ファイルは置き換えられるのではなく、**マージ**されます。
:::
たとえば、グローバル設定で `theme: "opencode"` と `autoupdate: true` が設定され、プロジェクト設定で `model: "anthropic/claude-sonnet-4-5"` が設定されている場合、最終的な設定には 3 つの設定がすべて含まれます。
設定ファイルは結合され、置き換えられません。次の構成場所からの設定が結合されます。競合するキーに対してのみ、後の設定が前の設定を上書きします。すべての構成からの競合しない設定は保持されます。
たとえば、グローバル設定で `autoupdate: true` を設定し、プロジェクト設定で `model: "anthropic/claude-sonnet-4-5"` を設定した場合、最終的な構成には両方の設定が含まれます。
---
@@ -93,7 +95,9 @@ OpenCode は、**JSON** と **JSONC** (コメント付きの JSON) 形式の両
### グローバル
グローバル OpenCode 設定を `~/.config/opencode/opencode.json` に配置します。テーマ、プロバイダー、キーバインドなどのユーザー全体の設定にはグローバル設定を使用します。
グローバル OpenCode 設定を `~/.config/opencode/opencode.json` に配置します。プロバイダー、モデル、権限などのユーザー全体の設定にはグローバル設定を使用します。
TUI 固有の設定には、`~/.config/opencode/tui.json` を使用します。
グローバル設定はリモート組織のデフォルトをオーバーライドします。
@@ -103,6 +107,8 @@ OpenCode は、**JSON** と **JSONC** (コメント付きの JSON) 形式の両
プロジェクトのルートに `opencode.json` を追加します。プロジェクト設定は、標準設定ファイルの中で最も高い優先順位を持ち、グローバル設定とリモート設定の両方をオーバーライドします。
プロジェクト固有の TUI 設定については、その横に `tui.json` を追加します。
:::tip
プロジェクト固有の設定をプロジェクトのルートに配置します。
:::
@@ -144,7 +150,9 @@ opencode run "Hello world"
## スキーマ
設定ファイルには、[**`opencode.ai/config.json`**](https://opencode.ai/config.json) を使用します。
サーバー/ランタイム構成スキーマは [**`opencode.ai/config.json`**](https://opencode.ai/config.json) で定義されています。
TUI 設定は [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json) を使用します。
エディターはスキーマに基づいて検証し、オートコンプリートできる必要があります。
@@ -152,28 +160,24 @@ opencode run "Hello world"
### TUI
`tui` オプションを使用して TUI 固有の設定を構成できます。
TUI 固有の設定には、専用の `tui.json` (または `tui.jsonc`) ファイルを使用します。
```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"
}
```
利用可能なオプション:
カスタム TUI 設定ファイルを指定するには、`OPENCODE_TUI_CONFIG` を使用します。
- `scroll_acceleration.enabled` - macOS スタイルのスクロールアクセラレーションを有効にします。 **`scroll_speed` よりも優先されます。**
- `scroll_speed` - カスタムのスクロール速度乗数 (デフォルト: `3`、最小: `1`)。 `scroll_acceleration.enabled` が `true` の場合は無視されます。
- `diff_style` - 差分レンダリングを制御します。 `"auto"` はターミナルの幅に適応し、`"stacked"` は常に 1 列を表示します。
`opencode.json` 内の従来の `theme`、`keybinds`、および `tui` キーは非推奨となり、可能であれば自動的に移行されます。
[TUI の使用方法の詳細については、こちら](/docs/tui) をご覧ください。
[TUI の設定の詳細については、こちら](/docs/tui#configure) をご覧ください。
---
@@ -237,7 +241,7 @@ LLM が使用できるツールは、`tools` オプションを通じて管理
}
```
`small_model` オプションは、タイトル生成などの軽量タスク用に別のモデルを構成します。デフォルトでは、OpenCode は、プロバイダーから安価なモデルが入手可能な場合は、より安価なモデルを使用しようとします。そうでない場合は、メインモデルにフォールバックします。
`small_model` オプションは、タイトル生成などの軽量タスク用に別のモデルを構成します。デフォルトでは、OpenCode は、プロバイダーから安価なモデルが入手可能な場合は、より安価なモデルを使用しようとします。そうでない場合は、メインモデルにフォールバックします。
プロバイダーオプションには、`timeout` および `setCacheKey` を含めることができます。
@@ -258,7 +262,7 @@ LLM が使用できるツールは、`tools` オプションを通じて管理
- `timeout` - リクエストのタイムアウト (ミリ秒単位) (デフォルト: 300000)。無効にするには、`false` に設定します。
- `setCacheKey` - 指定されたプロバイダーに対してキャッシュキーが常に設定されていることを確認します。
[ローカルモデル](/docs/models#local). [詳細はこちら](/docs/models)。
[ローカルモデル](/docs/models#local) も設定できます。[詳細はこちら](/docs/models)。
---
@@ -290,21 +294,21 @@ Amazon Bedrock は、AWS 固有の設定をサポートしています。
- `endpoint` - VPC エンドポイントのカスタムエンドポイント URL。これは、AWS 固有の用語を使用した汎用 `baseURL` オプションのエイリアスです。両方を指定した場合は、`endpoint` が優先されます。
:::note
ベアラー トークン (`AWS_BEARER_TOKEN_BEDROCK` または `/connect`) は、プロファイルベースの認証より優先されます。詳細については、「認証優先順位](/docs/providers#authentication-precedence)」を参照してください。
ベアラー トークン (`AWS_BEARER_TOKEN_BEDROCK` または `/connect`) は、プロファイルベースの認証より優先されます。詳細については、「[認証優先順位](/docs/providers#authentication-precedence)」を参照してください。
:::
[Amazon Bedrock 設定 ](/docs/providers#amazon-bedrock) の詳細をご覧ください。
[Amazon Bedrock 設定](/docs/providers#amazon-bedrock) の詳細をご覧ください。
---
### テーマ
`theme` オプションを使用して、OpenCode 設定で使用するテーマを構成できます。
UI テーマを `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"
}
```
@@ -404,11 +408,11 @@ Amazon Bedrock は、AWS 固有の設定をサポートしています。
### キーバインド
`keybinds` オプションを使用してキーバインドをカスタマイズできます。
`tui.json` でキーバインドをカスタマイズます。
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"keybinds": {}
}
```

View File

@@ -79,6 +79,32 @@ export const multiply = tool({
---
#### 組み込みツールとの名前の衝突
カスタムツールはツール名でキー設定されます。カスタムツールが組み込みツールと同じ名前を使用する場合、カスタムツールが優先されます。
たとえば、このファイルは組み込みの `bash` ツールを置き換えます。
```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
組み込みツールを意図的に置き換えたい場合を除き、一意の名前を使用することをお勧めします。組み込みツールを無効にしたいがオーバーライドしたくない場合は、[権限](/docs/permissions) を使用してください。
:::
---
### 引数
引数の型を定義するには、`tool.schema` (つまり [Zod](https://zod.dev)) を使用できます。

View File

@@ -13,31 +13,32 @@ OpenCode には、一般的な言語およびフレームワーク用のいく
| Formatter | Extensions | Requirements |
| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| gofmt | .go | `gofmt` command available |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` command available |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://prettier.io/docs/en/index.html) | `prettier` dependency in `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://biomejs.dev/) | `biome.json(c)` config file |
| zig | .zig, .zon | `zig` command available |
| clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file |
| ktlint | .kt, .kts | `ktlint` command available |
| ruff | .py, .pyi | `ruff` command available with config |
| rustfmt | .rs | `rustfmt` command available |
| cargofmt | .rs | `cargo fmt` command available |
| uv | .py, .pyi | `uv` command available |
| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available |
| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available |
| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available |
| air | .R | `air` command available |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://biomejs.dev/) | `biome.json(c)` config file |
| cargofmt | .rs | `cargo fmt` command available |
| clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file |
| cljfmt | .clj, .cljs, .cljc, .edn | `cljfmt` command available |
| dart | .dart | `dart` command available |
| dfmt | .d | `dfmt` command available |
| ocamlformat | .ml, .mli | `ocamlformat` command available and `.ocamlformat` config file |
| terraform | .tf, .tfvars | `terraform` command available |
| gleam | .gleam | `gleam` command available |
| gofmt | .go | `gofmt` command available |
| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available |
| ktlint | .kt, .kts | `ktlint` command available |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` command available |
| nixfmt | .nix | `nixfmt` command available |
| shfmt | .sh, .bash | `shfmt` command available |
| pint | .php | `laravel/pint` dependency in `composer.json` |
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `oxfmt` dependency in `package.json` and an [experimental env variable flag](/docs/cli/#experimental) |
| ocamlformat | .ml, .mli | `ocamlformat` command available and `.ocamlformat` config file |
| ormolu | .hs | `ormolu` command available |
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `oxfmt` dependency in `package.json` and an [experimental env variable flag](/docs/cli/#experimental) |
| pint | .php | `laravel/pint` dependency in `composer.json` |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://prettier.io/docs/en/index.html) | `prettier` dependency in `package.json` |
| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available |
| ruff | .py, .pyi | `ruff` command available with config |
| rustfmt | .rs | `rustfmt` command available |
| shfmt | .sh, .bash | `shfmt` command available |
| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available |
| terraform | .tf, .tfvars | `terraform` command available |
| uv | .py, .pyi | `uv` command available |
| zig | .zig, .zon | `zig` command available |
したがって、プロジェクトの `prettier` に `package.json` が含まれている場合、OpenCode は自動的にそれを使用します。

View File

@@ -3,11 +3,11 @@ title: キーバインド
description: キーバインドをカスタマイズします。
---
OpenCode には、OpenCode 設定を通じてカスタマイズできるキーバインドのリストがあります。
OpenCode には、`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",
@@ -117,11 +117,11 @@ OpenCode は、ほとんどのキーバインドに `leader` キーを使用し
## キーバインドを無効にする
キーバインドを無効にするには、値「none」を指定してキーを構成に追加します。
キーバインドを無効にするには、値「none」を指定してキーを `tui.json` に追加します。
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}

View File

@@ -27,6 +27,7 @@ OpenCode には、一般的な言語用のいくつかの組み込み LSP サー
| gopls | .go | `go` command available |
| hls | .hs, .lhs | `haskell-language-server-wrapper` command available |
| jdtls | .java | `Java SDK (version 21+)` installed |
| julials | .jl | `julia` and `LanguageServer.jl` installed |
| kotlin-ls | .kt, .kts | Auto-installs for Kotlin projects |
| lua-ls | .lua | Auto-installs for Lua projects |
| nixd | .nix | `nixd` command available |

View File

@@ -16,7 +16,8 @@ MCP サーバーを使用すると、コンテキストが追加されます。
:::tip
MCP サーバーはコンテキストに追加されるため、どのサーバーを有効にするかには注意してください。
:::
特定の MCP サーバーは、大量のトークンを追加する傾向があり、コンテキスト制限を簡単に超える可能性があります。
特定の MCP サーバー (GitHub MCP サーバーなど) は、大量のトークンを追加する傾向があり、コンテキスト制限を簡単に超える可能性があります。
---
@@ -157,7 +158,7 @@ use the mcp_everything tool to add the number 3 and 4
| `url` | 文字列 | Y | リモート MCP サーバーの URL。 |
| `enabled` | ブール値 | | 起動時に MCP サーバーを有効または無効にします。 |
| `headers` | オブジェクト | | リクエストとともに送信するヘッダー。 |
| `oauth` | オブジェクト | | OAuth 認証設定。以下の「OAuth](#oauth)」セクションを参照してください。 |
| `oauth` | オブジェクト | | OAuth 認証設定。以下の「[OAuth](#oauth)」セクションを参照してください。 |
| `timeout` | 数値 | | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 |
---
@@ -391,6 +392,8 @@ MCP サーバーツールはサーバー名をプレフィックスとして登
:::
---
## 例
以下に、一般的な MCP サーバーの例をいくつか示します。他のサーバーを文書化したい場合は、PR を送信できます。
@@ -506,471 +509,3 @@ What's the right way to set a custom domain in an SST Astro component? use the g
```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```
`enabled` を `false` に設定してサーバーを無効にすることもできます。これは、サーバーを構成から削除せずに一時的に無効にする場合に便利です。
---
### リモートのデフォルトを上書きする
組織は、`.well-known/opencode` エンドポイント経由でデフォルトの MCP サーバーを提供できます。これらのサーバーはデフォルトで無効になっている場合があり、ユーザーは必要なサーバーにオプトインできます。
組織のリモート構成から特定のサーバーを有効にするには、`enabled: true` を使用してローカル構成に追加します。
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}
```
ローカルの設定値はリモートのデフォルト値をオーバーライドします。詳細については、「config precedence](/docs/config#precedence-order)」を参照してください。
---
## ローカル
MCP オブジェクト内の `type` から `"local"` を使用してローカル MCP サーバーを追加します。
```jsonc title="opencode.jsonc" {15}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-local-mcp-server": {
"type": "local",
// Or ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value",
},
},
},
}
```
このコマンドは、ローカル MCP サーバーの起動方法を示します。環境変数のリストを渡すこともできます。
たとえば、テスト [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything) MCP サーバー] を追加する方法は次のとおりです。
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
},
},
}
```
これを使用するには、プロンプトに `use the mcp_everything tool` を追加します。
```txt "mcp_everything"
use the mcp_everything tool to add the number 3 and 4
```
---
#### オプション
ここでは、ローカル MCP サーバーを構成するためのすべてのオプションを示します。
| オプション | タイプ | 必須 | 説明 |
| ------------- | ------------ | ---- | ------------------------------------------------------------------------------------------ |
| `type` | 文字列 | Y | MCP サーバー接続のタイプは、`"local"` である必要があります。 |
| `command` | 配列 | Y | MCP サーバーを実行するためのコマンドと引数。 |
| `environment` | オブジェクト | | サーバーの実行時に設定する環境変数。 |
| `enabled` | ブール値 | | 起動時に MCP サーバーを有効または無効にします。 |
| `timeout` | 番号 | | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 |
---
## リモート
`type` を `"remote"` に設定して、リモート MCP サーバーを追加します。
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-remote-mcp": {
"type": "remote",
"url": "https://my-mcp-server.com",
"enabled": true,
"headers": {
"Authorization": "Bearer MY_API_KEY"
}
}
}
}
```
`url` はリモート MCP サーバーの URL で、`headers` オプションを使用するとヘッダーのリストを渡すことができます。
---
#### オプション
| オプション | タイプ | 必須 | 説明 |
| ---------- | ------------ | ---- | ------------------------------------------------------------------------------------------ |
| `type` | 文字列 | Y | MCP サーバー接続のタイプは、`"remote"` である必要があります。 |
| `url` | 文字列 | Y | リモート MCP サーバーの URL。 |
| `enabled` | ブール値 | | 起動時に MCP サーバーを有効または無効にします。 |
| `headers` | オブジェクト | | リクエストとともに送信するヘッダー。 |
| `oauth` | オブジェクト | | OAuth認証構成。以下の「OAuth](#oauth)」セクションを参照してください。 |
| `timeout` | 番号 | | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 |
---
## OAuth
OpenCode は、リモート MCP サーバーの OAuth 認証を自動的に処理します。サーバーが認証を必要とする場合、OpenCode は次のことを行います。
1. 401 応答を検出し、OAuth フローを開始します。
2. サーバーでサポートされている場合は **動的クライアント登録 (RFC 7591)** を使用します
3. 今後のリクエストに備えてトークンを安全に保管する
---
### 自動
ほとんどの OAuth 対応 MCP サーバーでは、特別な構成は必要ありません。リモートサーバーを設定するだけです。
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}
```
サーバーが認証を必要とする場合、OpenCode を初めて使用しようとすると、認証を求めるプロンプトが表示されます。そうでない場合は、`opencode mcp auth <server-name>` を使用して flow](#authenticating) を手動でトリガーできます。
---
### 事前登録済み
MCP サーバープロバイダーからクライアント認証情報を取得している場合は、それらを構成できます。
```json title="opencode.json" {7-11}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": {
"clientId": "{env:MY_MCP_CLIENT_ID}",
"clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
"scope": "tools:read tools:execute"
}
}
}
}
```
---
### 認証中
手動で認証をトリガーしたり、資格情報を管理したりできます。
特定の MCP サーバーで認証します。
```bash
opencode mcp auth my-oauth-server
```
すべての MCP サーバーとその認証ステータスをリストします。
```bash
opencode mcp list
```
保存されている認証情報を削除します。
```bash
opencode mcp logout my-oauth-server
```
`mcp auth` コマンドは、認証のためにブラウザを開きます。承認後、OpenCode はトークンを `~/.local/share/opencode/mcp-auth.json` に安全に保存します。
---
#### OAuthの無効化
サーバー (代わりに API キーを使用するサーバーなど) の自動 OAuth を無効にする場合は、`oauth` を `false` に設定します。
```json title="opencode.json" {7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-api-key-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MY_API_KEY}"
}
}
}
}
```
---
#### OAuth オプション
| オプション | タイプ | 説明 |
| -------------- | --------------- | -------------------------------------------------------------------------------- |
| `oauth` | Object \| false | OAuth config object, or `false` to disable OAuth auto-detection. |
| `clientId` | String | OAuth client ID. If not provided, dynamic client registration will be attempted. |
| `clientSecret` | String | OAuth client secret, if required by the authorization server. |
| `scope` | String | OAuth scopes to request during authorization. |
#### デバッグ
リモート MCP サーバーが認証に失敗した場合は、次の方法で問題を診断できます。
```bash
# View auth status for all OAuth-capable servers
opencode mcp auth list
# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server
```
`mcp debug` コマンドは、現在の認証ステータスを表示し、HTTP 接続をテストし、OAuth 検出フローを試行します。
---
## 管理
MCP は、組み込みツールと並んで、OpenCode のツールとして利用できます。したがって、他のツールと同様に、OpenCode config を通じてそれらを管理できます。
---
### グローバル
これは、それらをグローバルに有効または無効にできることを意味します。
```json title="opencode.json" {14}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp-foo": false
}
}
```
グロブ パターンを使用して、一致するすべての MCP を無効にすることもできます。
```json title="opencode.json" {14}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp*": false
}
}
```
ここでは、グロブ パターン `my-mcp*` を使用して、すべての MCP を無効にしています。
---
### エージェントごと
多数の MCP サーバーがある場合は、エージェントごとにのみ有効にし、グローバルに無効にすることができます。これを行うには:
1. ツールとしてグローバルに無効にします。
2. [エージェント config](/docs/agents#tools) で、MCP サーバーをツールとして有効にします。
```json title="opencode.json" {11, 14-18}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-mcp": {
"type": "local",
"command": ["bun", "x", "my-mcp-command"],
"enabled": true
}
},
"tools": {
"my-mcp*": false
},
"agent": {
"my-agent": {
"tools": {
"my-mcp*": true
}
}
}
}
```
---
#### グロブパターン
グロブ パターンでは、単純な正規表現のグロブ パターンを使用します。
- `*` は 0 個以上の任意の文字に一致します (例: `"my-mcp*"` は `my-mcp_search`、`my-mcp_list` などに一致します)。
- `?` は 1 つの文字に正確に一致します
- 他のすべての文字は文字通り一致します
:::note
MCP サーバー ツールはサーバー名をプレフィックスとして登録されているため、サーバーのすべてのツールを無効にするには、次のコマンドを使用するだけです。
```
"mymcpservername_*": false
```
:::
## 例
以下に、一般的な MCP サーバーの例をいくつか示します。他のサーバーを文書化したい場合は、PR を送信できます。
---
### Sentry
[Sentry MCP サーバー ](https://mcp.sentry.dev) を追加して、Sentry プロジェクトや問題と対話します。
```json title="opencode.json" {4-8}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}
```
構成を追加した後、Sentry で認証します。
```bash
opencode mcp auth sentry
```
これにより、ブラウザ ウィンドウが開き、OAuth フローが完了し、OpenCode が Sentry アカウントに接続されます。
認証が完了すると、プロンプトで Sentry ツールを使用して、問題、プロジェクト、エラー データをクエリできるようになります。
```txt "use sentry"
Show me the latest unresolved issues in my project. use sentry
```
---
### Context7
ドキュメントを検索するために [Context7 MCP server](https://github.com/upstash/context7) を追加します。
```json title="opencode.json" {4-7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}
```
無料アカウントにサインアップしている場合は、API キーを使用して、より高いレート制限を取得できます。
```json title="opencode.json" {7-9}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
}
```
ここでは、`CONTEXT7_API_KEY` 環境変数が設定されていることを前提としています。
Context7 MCP サーバーを使用するには、プロンプトに `use context7` を追加します。
```txt "use context7"
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7
```
あるいは、次のようなものを [AGENTS.md](/docs/rules/).
```md title="AGENTS.md"
When you need to search docs, use `context7` tools.
```
---
### Grep by Vercel
GitHub 上のコード スニペットを検索するには、[Grep by Vercel](https://grep.app) MCP サーバーを追加します。
```json title="opencode.json" {4-7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}
```
MCP サーバーに `gh_grep` という名前を付けたので、プロンプトに `use the gh_grep tool` を追加して、エージェントにそれを使用させることができます。
```txt "use the gh_grep tool"
What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool
```
あるいは、次のようなものを [AGENTS.md](/docs/rules/).
```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```

View File

@@ -235,11 +235,87 @@ export const NotificationPlugin = async ({ project, client, $, directory, worktr
macOS 上で AppleScript を実行するために `osascript` を使用しています。ここでは通知を送信するために使用しています。
:::note
OpenCode デスクトップアプリを使用している場合は、応答の準備ができたとき、またはセッションエラーが発生したときにシステム通知を自動的に送信できます。
組み込みツールと同じ名前のプラグインツールを使用すると、プラグインツールが優先されます。
:::
---
### ロギング
構造化ログには `console.log` の代わりに `client.app.log()` を使用します。
```ts title=".opencode/plugins/my-plugin.ts"
export const MyPlugin = async ({ client }) => {
await client.app.log({
body: {
service: "my-plugin",
level: "info",
message: "Plugin initialized",
extra: { foo: "bar" },
},
})
}
```
レベル: `debug`、`info`、`warn`、`error`。詳細については、[SDK ドキュメント](https://opencode.ai/docs/sdk) を参照してください。
---
### 圧縮フック
セッションが圧縮されたときに含まれるコンテキストをカスタマイズします。
```ts title=".opencode/plugins/compaction.ts"
import type { Plugin } from "@opencode-ai/plugin"
export const CompactionPlugin: Plugin = async (ctx) => {
return {
"experimental.session.compacting": async (input, output) => {
// Inject additional context into the compaction prompt
output.context.push(`
## Custom Context
Include any state that should persist across compaction:
- Current task status
- Important decisions made
- Files being actively worked on
`)
},
}
}
```
`experimental.session.compacting` フックは、LLM が継続概要を生成する前に起動します。これを使用して、デフォルトの圧縮プロンプトでは見逃されるドメイン固有のコンテキストを挿入します。
`output.prompt` を設定することで、圧縮プロンプトを完全に置き換えることもできます。
```ts title=".opencode/plugins/custom-compaction.ts"
import type { Plugin } from "@opencode-ai/plugin"
export const CustomCompactionPlugin: Plugin = async (ctx) => {
return {
"experimental.session.compacting": async (input, output) => {
// Replace the entire compaction prompt
output.prompt = `
You are generating a continuation prompt for a multi-agent swarm session.
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
Format as a structured prompt that a new agent can use to resume work.
`
},
}
}
```
`output.prompt` を設定すると、デフォルトの圧縮プロンプトが完全に置き換えられます。この場合、`output.context` 配列は無視されます。
---
### .env の保護
OpenCode が `.env` ファイルを読み取らないようにします。

View File

@@ -57,7 +57,38 @@ OpenCode で適切に動作することがテストおよび検証されてい
初めての方は、OpenCode Zen から始めることをお勧めします。
:::
1. TUI で `/connect` コマンドを実行し、opencode を選択して、[opencode.ai/auth](https://opencode.ai/auth) で認証します。
1. TUI で `/connect` コマンドを実行し、`OpenCode Zen` を選択して、[opencode.ai/zen](https://opencode.ai/zen) にアクセスします。
```txt
/connect
```
2. サインインし、お支払いの詳細を追加し、API キーをコピーします。
3. API キーを貼り付けます。
```txt
┌ API key
└ enter
```
4. TUI で `/models` を実行すると、推奨されるモデルのリストが表示されます。
```txt
/models
```
これは OpenCode の他のプロバイダーと同様に機能し、使用は完全にオプションです。
---
## OpenCode Go
OpenCode Go は、OpenCode チームによって提供される、人気のあるオープンコーディングモデルへの信頼性の高いアクセスを提供する低コストのサブスクリプションプランです。これらは OpenCode でうまく機能することがテストおよび検証されています。
1. TUI で `/connect` コマンドを実行し、`OpenCode Go` を選択して、[opencode.ai/zen](https://opencode.ai/zen) にアクセスします。
```txt
/connect
@@ -126,105 +157,111 @@ OpenCode で適切に動作することがテストおよび検証されてい
OpenCode で Amazon Bedrock を使用するには:
1. Amazon Bedrock コンソールの **モデルカタログ** に移動しリクエストします。
必要なモデルにアクセスします。
1. Amazon Bedrock コンソールの **モデルカタログ** に移動し、必要なモデルへのアクセスをリクエストします。
:::tip
Amazon Bedrock で必要なモデルにアクセスできる必要があります。
:::
:::tip
Amazon Bedrock で必要なモデルにアクセスできる必要があります。
:::
2. **次のいずれかの方法を使用して認証を構成します**
2. **次のいずれかの方法を使用して認証を構成します**:
***
#### 環境変数 (クイックスタート)
opencode の実行中に次の環境変数のいずれかを設定します。
opencode の実行中に次の環境変数のいずれかを設定します。
```bash
# Option 1: Using AWS access keys
```bash
# オプション 1: AWS アクセスキーの使用
AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode
# Option 2: Using named AWS profile
# オプション 2: 名前付き AWS プロファイルの使用
AWS_PROFILE=my-profile opencode
# Option 3: Using Bedrock bearer token
# オプション 3: Bedrock ベアラートークンの使用
AWS_BEARER_TOKEN_BEDROCK=XXX opencode
```
```
または、それらを bash プロファイルに追加します。
または、それらを bash プロファイルに追加します。
```bash title="~/.bash_profile"
```bash title="~/.bash_profile"
export AWS_PROFILE=my-dev-profile
export AWS_REGION=us-east-1
```
```
#### 設定ファイル (推奨)
***
プロジェクト固有の設定または永続的な設定の場合は、`opencode.json` を使用します。
#### 設定ファイル (推奨)
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "my-aws-profile"
}
}
}
}
```
プロジェクト固有の設定または永続的な設定の場合は、`opencode.json` を使用します。
**利用可能なオプション:**
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "my-aws-profile"
}
}
}
}
```
- `region` - AWS リージョン (例: `us-east-1`、`eu-west-1`)
- `profile` - `~/.aws/credentials` からの AWS 名前付きプロファイル
- `endpoint` - VPC エンドポイントのカスタムエンドポイント URL (汎用 `baseURL` オプションのエイリアス)
**利用可能なオプション:**
- `region` - AWS リージョン (例: `us-east-1`、`eu-west-1`)
- `profile` - `~/.aws/credentials` からの AWS 名前付きプロファイル
- `endpoint` - VPC エンドポイントのカスタムエンドポイント URL (汎用 `baseURL` オプションのエイリアス)
:::tip
設定ファイルのオプションは環境変数より優先されます。
:::
:::tip
設定ファイルのオプションは環境変数より優先されます。
:::
#### 上級: VPC エンドポイント
***
Bedrock の VPC エンドポイントを使用している場合:
#### 上級: VPC エンドポイント
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "production",
"endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
}
}
}
}
```
Bedrock の VPC エンドポイントを使用している場合:
:::note
`endpoint` オプションは、AWS 固有の用語を使用した汎用の `baseURL` オプションのエイリアスです。 `endpoint` と `baseURL` の両方が指定された場合は、`endpoint` が優先されます。
:::
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "production",
"endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
}
}
}
}
```
#### 認証方法
:::note
`endpoint` オプションは、AWS 固有の用語を使用した汎用の `baseURL` オプションのエイリアスです。 `endpoint` と `baseURL` の両方が指定された場合は、`endpoint` が優先されます。
:::
- **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: IAM ユーザーを作成し、AWS コンソールでアクセスキーを生成します。
- **`AWS_PROFILE`**: `~/.aws/credentials` の名前付きプロファイルを使用します。最初に `aws configure --profile my-profile` または `aws sso login` を設定します
- **`AWS_BEARER_TOKEN_BEDROCK`**: Amazon Bedrock コンソールから長期 API キーを生成します
- **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: EKS IRSA (サービスアカウントの IAM ロール) または OIDC フェデレーションを備えた他の Kubernetes 環境の場合。これらの環境変数は、サービスアカウントアノテーションを使用するときに Kubernetes によって自動的に挿入されます。
***
#### 認証の優先順位
#### 認証方法
- **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: IAM ユーザーを作成し、AWS コンソールでアクセスキーを生成します
- **`AWS_PROFILE`**: `~/.aws/credentials` の名前付きプロファイルを使用します。最初に `aws configure --profile my-profile` または `aws sso login` を設定します
- **`AWS_BEARER_TOKEN_BEDROCK`**: Amazon Bedrock コンソールから長期 API キーを生成します
- **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: EKS IRSA (サービスアカウントの IAM ロール) または OIDC フェデレーションを備えた他の Kubernetes 環境の場合。これらの環境変数は、サービスアカウントアノテーションを使用するときに Kubernetes によって自動的に挿入されます。
Amazon Bedrock は次の認証優先度を使用します。
***
1. **ベアラー トークン** - `AWS_BEARER_TOKEN_BEDROCK` 環境変数または `/connect` コマンドからのトークン
2. **AWS 認証情報チェーン** - プロファイル、アクセスキー、共有認証情報、IAM ロール、Web ID トークン (EKS IRSA)、インスタンスメタデータ
#### 認証の優先順位
:::note
ベアラー トークンが (`/connect` または `AWS_BEARER_TOKEN_BEDROCK` 経由で) 設定されると、設定されたプロファイルを含むすべての AWS 認証情報方法よりも優先されます。
:::
Amazon Bedrock は次の認証優先度を使用します。
1. **ベアラー トークン** - `AWS_BEARER_TOKEN_BEDROCK` 環境変数または `/connect` コマンドからのトークン
2. **AWS 認証情報チェーン** - プロファイル、アクセスキー、共有認証情報、IAM ロール、Web ID トークン (EKS IRSA)、インスタンスメタデータ
:::note
ベアラー トークンが (`/connect` または `AWS_BEARER_TOKEN_BEDROCK` 経由で) 設定されると、設定されたプロファイルを含むすべての AWS 認証情報方法よりも優先されます。
:::
3. `/models` コマンドを実行して、必要なモデルを選択します。
@@ -234,6 +271,7 @@ Amazon Bedrock は次の認証優先度を使用します。
:::note
カスタム推論プロファイルの場合、キーでモデルとプロバイダー名を使用し、`id` プロパティを arn に設定します。これにより、正しいキャッシュが保証されます。
:::
```json title="opencode.json"
{
@@ -251,8 +289,6 @@ Amazon Bedrock は次の認証優先度を使用します。
}
```
:::
---
### Anthropic
@@ -672,9 +708,42 @@ GitLab Duo は、GitLab の Anthropic プロキシを介したネイティブツ
6. `/models` コマンドを実行して、利用可能なモデルを確認します。
```txt
/models
```
```txt
/models
```
---
### STACKIT
STACKIT AI Model Serving は、Llama、Mistral、Qwen などの LLM に焦点を当て、ヨーロッパのインフラストラクチャでの最大限のデータ主権を備えた、AI モデル用の完全に管理された主権ホスティング環境を提供します。
1. [STACKIT Portal](https://portal.stackit.cloud) に移動し、**AI Model Serving** に移動して、プロジェクトの認証トークンを作成します。
:::tip
認証トークンを作成する前に、STACKIT 顧客アカウント、ユーザーアカウント、およびプロジェクトが必要です。
:::
2. `/connect` コマンドを実行し、**STACKIT** を検索します。
```txt
/connect
```
3. STACKIT AI Model Serving 認証トークンを入力します。
```txt
┌ API key
└ enter
```
4. `/models` コマンドを実行して、_Qwen3-VL 235B_ や _Llama 3.3 70B_ などの利用可能なモデルから選択します。
```txt
/models
```
3 つの Claude ベースのモデルが利用可能です。

View File

@@ -117,6 +117,78 @@ try {
---
## 構造化出力
`format` を JSON スキーマで指定することで、モデルから構造化された JSON 出力をリクエストできます。モデルは `StructuredOutput` ツールを使用して、スキーマに一致する検証済み JSON を返します。
### 基本的な使用法
```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"],
},
},
},
})
// Access the structured output
console.log(result.data.info.structured_output)
// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] }
```
### 出力フォーマットの種類
| タイプ | 説明 |
| ------------- | ---------------------------------------------------- |
| `text` | デフォルト。標準テキスト応答 (構造化出力なし) |
| `json_schema` | 提供されたスキーマに一致する検証済み JSON を返します |
### JSON スキーマフォーマット
`type: 'json_schema'` を使用する場合は、以下を指定します:
| フィールド | タイプ | 説明 |
| ------------ | --------------- | -------------------------------------------------- |
| `type` | `'json_schema'` | 必須。JSON スキーマモードを指定します |
| `schema` | `object` | 必須。出力構造を定義する JSON スキーマオブジェクト |
| `retryCount` | `number` | オプション。検証の再試行回数 (デフォルト: 2) |
### エラー処理
すべての再試行後にモデルが有効な構造化出力を生成できない場合、応答には `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)
}
```
### ベストプラクティス
1. **明確な説明を提供する**: モデルが抽出するデータを理解できるように、スキーマプロパティに明確な説明を提供します
2. **`required` を使用する**: 存在する必要があるフィールドを指定します
3. **スキーマを焦点を絞ったものにする**: 複雑なネストされたスキーマは、モデルが正しく入力するのが難しい場合があります
4. **適切な `retryCount` を設定する**: 複雑なスキーマの場合は増やし、単純なスキーマの場合は減らします
---
## API
SDK は、型安全なクライアントを通じてすべてのサーバー API を公開します。
@@ -226,27 +298,27 @@ const { providers, default: defaults } = await client.config.providers()
### Sessions
| メソッド | 説明 | 詳細 |
| ---------------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `session.list()` | セッションをリストする | 戻り値 <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | セッションを取得 | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | 子セッションをリストする | 戻り値 <a href={typesUrl}><code>Session[]</code></a> |
| `session.create({ body })` | セッションの作成 | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | セッションを削除 | 戻り値 `boolean` |
| `session.update({ path, body })` | セッションのプロパティを更新する | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | アプリを分析して `AGENTS.md` を作成する | 戻り値 `boolean` |
| `session.abort({ path })` | 実行中のセッションを中止する | 戻り値 `boolean` |
| `session.share({ path })` | セッションを共有する | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | セッションの共有を解除 | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | セッションを要約する | 戻り値 `boolean` |
| `session.messages({ path })` | セッション内のメッセージをリストする | 戻り値 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
| `session.message({ path })` | メッセージの詳細を取得する | 戻り値 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | プロンプトメッセージを送信する | `body.noReply: true` は UserMessage (コンテキストのみ) を返します。デフォルトでは、AI 応答を含む <a href={typesUrl}><code>AssistantMessage</code></a> を返します。 |
| `session.command({ path, body })` | コマンドをセッションに送信 | 戻り値 `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | シェルコマンドを実行する | 戻り値 <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | メッセージを元に戻す | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | 元に戻したメッセージを復元する | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | 許可リクエストに応答する | 戻り値 `boolean` |
| メソッド | 説明 | 詳細 |
| ---------------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `session.list()` | セッションをリストする | 戻り値 <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | セッションを取得 | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | 子セッションをリストする | 戻り値 <a href={typesUrl}><code>Session[]</code></a> |
| `session.create({ body })` | セッションの作成 | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | セッションを削除 | 戻り値 `boolean` |
| `session.update({ path, body })` | セッションのプロパティを更新する | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | アプリを分析して `AGENTS.md` を作成する | 戻り値 `boolean` |
| `session.abort({ path })` | 実行中のセッションを中止する | 戻り値 `boolean` |
| `session.share({ path })` | セッションを共有する | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | セッションの共有を解除 | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | セッションを要約する | 戻り値 `boolean` |
| `session.messages({ path })` | セッション内のメッセージをリストする | 戻り値 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
| `session.message({ path })` | メッセージの詳細を取得する | 戻り値 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | プロンプトメッセージを送信する | `body.noReply: true` は UserMessage (コンテキストのみ) を返します。デフォルトでは、AI 応答を含む <a href={typesUrl}><code>AssistantMessage</code></a> を返します。[構造化出力](#構造化出力) のための `body.outputFormat` をサポートします。 |
| `session.command({ path, body })` | コマンドをセッションに送信 | 戻り値 `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | シェルコマンドを実行する | 戻り値 <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | メッセージを元に戻す | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | 元に戻したメッセージを復元する | 戻り値 <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | 許可リクエストに応答する | 戻り値 `boolean` |
---

View File

@@ -61,11 +61,11 @@ OpenCode にはいくつかの組み込みテーマが付属しています。
## テーマの使用
テーマを選択するには、`/theme` コマンドでテーマ選択を表示します。または、[config](/docs/config) で設定します。
テーマを選択するには、`/theme` コマンドでテーマ選択を表示します。または、`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"
}
```

View File

@@ -349,24 +349,34 @@ VS Code などの一部のエディターは、`--wait` フラグを使用して
## 設定
OpenCode 設定ファイルを通じて TUI の動作をカスタマイズできます。
`tui.json` (または `tui.jsonc`) ファイルを通じて TUI の動作をカスタマイズできます。
```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"
}
```
これは、サーバー/ランタイムの動作を構成する `opencode.json` とは別です。
### オプション
- `scroll_acceleration` - macOS スタイルのスクロールアクセラレーションを有効にして、スムーズで自然なスクロールを実現します。有効にすると、高速スクロールジェスチャではスクロール速度が向上し、ゆっくりとした動きでは正確なままになります。 **この設定は `scroll_speed` よりも優先され、有効になっている場合は上書きされます。**
- `scroll_speed` - スクロールコマンドを使用するときに TUI がスクロールする速度を制御します (最小: `1`)。デフォルトは `3` です。 **注: `scroll_acceleration.enabled` が `true` に設定されている場合、これは無視されます。**
- `theme` - UI テーマを設定します。[詳細はこちら](/docs/themes)。
- `keybinds` - キーボードショートカットをカスタマイズします。[詳細はこちら](/docs/keybinds)。
- `scroll_acceleration.enabled` - macOS スタイルのスクロールアクセラレーションを有効にして、スムーズで自然なスクロールを実現します。有効にすると、高速スクロールジェスチャではスクロール速度が向上し、ゆっくりとした動きでは正確なままになります。 **この設定は `scroll_speed` よりも優先され、有効になっている場合は上書きされます。**
- `scroll_speed` - スクロールコマンドを使用するときに TUI がスクロールする速度を制御します (最小: `0.001`、小数をサポート)。デフォルトは `3` です。 **注: `scroll_acceleration.enabled` が `true` に設定されている場合、これは無視されます。**
- `diff_style` - 差分レンダリングを制御します。 `"auto"` はターミナルの幅に適応し、`"stacked"` は常に 1 列のレイアウトを表示します。
カスタム TUI 設定パスをロードするには、`OPENCODE_TUI_CONFIG` を使用します。
---

View File

@@ -18,23 +18,19 @@ Zen は OpenCode の他のプロバイダーと同様に機能します。 OpenC
## 背景
モデルはたくさんありますが、そのうちのほんの一部です
これらのモデルはコーディングエージェントとしてうまく機能します。さらに、ほとんどのプロバイダーは、
構成が大きく異なります。したがって、まったく異なるパフォーマンスと品質が得られます。
世の中には多数のモデルがありますが、コーディングエージェントとしてうまく機能するのはごく一部です。さらに、ほとんどのプロバイダーは構成が大きく異なるため、パフォーマンスと品質も大きく異なります。
:::tip
私たちは、OpenCode で適切に動作するモデルとプロバイダーの選択されたグループをテストしました。
OpenCode で適切に動作する、厳選されたモデルとプロバイダーのグループをテストしました。
:::
OpenRouter などを通じてモデルを使用している場合は、決してそうすることはできません。
必要なモデルの最高のバージョンを入手しているかどうかを確認してください
OpenRouter などを通じてモデルを使用している場合、必要なモデルの最高のバージョンを取得できているか確信が持てません
これを修正するために、いくつかのことを行いました。
1. 私たちは選択したモデルグループをテストし、そ方法についてチームと話し合いました。
それらを実行するのが最善です。
1. 選抜したモデルグループをテストし、それらを最適に実行する方法についてチームと話し合いました。
2. その後、いくつかのプロバイダーと協力して、これらが確実に提供されるようにしました。
3. 最後に、モデルとプロバイダーの組み合わせをベンチマークし、次の結果を導き出しました。
私たちが自信を持ってお勧めするリストをご紹介します。
3. 最後に、モデルとプロバイダーの組み合わせをベンチマークし、自信を持ってお勧めできるリストを作成しました。
OpenCode Zen は、これらのモデルへのアクセスを可能にする AI ゲートウェイです。
@@ -44,8 +40,7 @@ OpenCode Zen は、これらのモデルへのアクセスを可能にする AI
OpenCode Zen は、OpenCode の他のプロバイダーと同様に機能します。
1. **<a href={console}>OpenCode Zen</a>** にログインし、請求内容を追加します
詳細を確認し、API キーをコピーします。
1. **<a href={console}>OpenCode Zen</a>** にサインインし、請求情報を追加して、API キーをコピーします
2. TUI で `/connect` コマンドを実行し、OpenCode Zen を選択して API キーを貼り付けます。
3. TUI で `/models` を実行すると、推奨されるモデルのリストが表示されます。
@@ -59,6 +54,7 @@ OpenCode Zen は、OpenCode の他のプロバイダーと同様に機能しま
| Model | Model ID | Endpoint | AI SDK Package |
| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
| 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` |
@@ -68,22 +64,24 @@ OpenCode Zen は、OpenCode の他のプロバイダーと同様に機能しま
| 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` |
@@ -112,29 +110,34 @@ https://opencode.ai/zen/v1/models
| Model | Input | Output | Cached Read | Cached Write |
| --------------------------------- | ------ | ------ | ----------- | ------------ |
| Big Pickle | Free | Free | Free | - |
| MiniMax M2.1 Free | Free | Free | Free | - |
| MiniMax M2.5 Free | Free | Free | Free | - |
| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - |
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
| GLM 4.7 Free | Free | Free | Free | - |
| 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 | Free | Free | Free | - |
| 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 | - |
@@ -151,10 +154,10 @@ https://opencode.ai/zen/v1/models
クレジットカード手数料は実費で引き継がれます (4.4% + 取引ごとに 0.30 ドル)。それ以上の料金はかかりません。
:::
- GLM 4.7 Free は期間限定で OpenCode で入手できます。チームはこの時間を利用してフィードバックを収集し、モデルを改善します。
- Kim K2.5 Free は OpenCode で期間限定で利用可能です。チームはこの時間を利用してフィードバックを収集し、モデルを改善します。
- MiniMax M2.1 Free は期間限定で OpenCode で入手できます。チームはこの間を利用してフィードバックを収集し、モデルを改善します。
- Big Pickle は、期間限定で OpenCode で無料で利用できるステルスモデルです。チームはこの間を利用してフィードバックを収集し、モデルを改善します。
無料のモデル:
- MiniMax M2.5 Free は期間限定で OpenCode で利用可能です。チームはこの間を利用してフィードバックを収集し、モデルを改善します。
- Big Pickle は、期間限定で OpenCode で無料で利用できるステルスモデルです。チームはこの間を利用してフィードバックを収集し、モデルを改善します。
ご質問がございましたら、<a href={email}>お問い合わせ</a>ください。
@@ -170,12 +173,9 @@ https://opencode.ai/zen/v1/models
### 月ごとの制限
ワークスペース全体およびワークスペースごとに月ごとの使用制限を設定することもできます。
あなたのチームのメンバー。
ワークスペース全体およびチームの各メンバーの月ごとの使用制限を設定することもできます。
たとえば、毎月の使用制限を 20 ドルに設定したとします。Zen は使用しません
月に20ドル以上。ただし、自動リロードを有効にしている場合、Zen が終了する可能性があります。
残高が 5 ドルを下回ると、20 ドル以上の請求が行われます。
たとえば、毎月の使用制限を 20 ドルに設定したとします。Zen は月に 20 ドル以上を使用しません。ただし、自動リロードを有効にしている場合、残高が 5 ドルを下回ると、Zen が 20 ドル以上の請求を行う可能性があります
---
@@ -183,24 +183,22 @@ https://opencode.ai/zen/v1/models
すべてのモデルは米国でホストされています。当社のプロバイダーはゼロ保持ポリシーに従い、次の例外を除いて、モデルのトレーニングにデータを使用しません。
- Big Pickle: 無料期間中、収集されたデータはモデルの改善に使用される場合があります。
- GLM 4.7 無料: 無料期間中、収集されたデータはモデル改善するために使用される場合があります。
- Kimi K2.5 Free: 無料期間中、収集されたデータはモデルの改善に使用される場合があります。
- MiniMax M2.1 無料: 無料期間中、収集されたデータはモデルを改善するために使用される場合があります。
- OpenAI API: リクエストは [OpenAI のデータポリシー](https://platform.openai.com/docs/guides/your-data)に従います。
- Anthropic API: リクエストは、[Anthropic のデータポリシー](https://docs.anthropic.com/en/docs/claude-code/data-usage)に従います。
- Big Pickle: 無料期間中、収集されたデータはモデルの改善に使用される場合があります。
- MiniMax M2.5 Free: 無料期間中、収集されたデータはモデル改善に使用される場合があります。
- OpenAI API: リクエストは [OpenAI のデータポリシー](https://platform.openai.com/docs/guides/your-data) に従い、30 日間保持されます。
- Anthropic API: リクエストは [Anthropic のデータポリシー](https://docs.anthropic.com/en/docs/claude-code/data-usage) に従い、30 日間保持されます。
---
## チーム向け
Zen はチームにも効果的です。チームメイトを招待し、役割を割り当て、キュレートすることができます
チームが使用するモデルなど。
Zen はチームにも効果的です。チームメイトを招待し、役割を割り当て、チームが使用するモデルをキュレートすることなどができます
:::note
ワークスペースは現在、ベータ版の一部としてチームに無料で提供されています。
:::
価格の詳細については近日中にお知らせします。
ワークスペースの管理は現在、ベータ版の一部としてチームに無料で提供されています。価格の詳細については近日中にお知らせします。
---