OpenCode: OpenCode Built-in Tools
最終更新:2026-08-31
--- title: OpenCode内蔵ツール description: OpenCodeの内蔵ツール体系を理解する。ファイル操作、Shell実行、検索などのコアツールを含む order: 11 lang: ja
OpenCodeの強力な能力は内蔵ツール体系に由来し、AIはツールを呼び出して具体的な操作を実行します。
1. 学習内容
- 内蔵ツールの概览
- ファイル操作ツール
- Shell実行ツール
- 検索・分析ツール
- ツール設定と権限
2. 内蔵ツール概览
| ツール | 機能 | 権限レベル |
|---|---|---|
read |
ファイル内容の読み取り | 読み取り専用 |
write |
ファイルの書き込み/作成 | 書き込み |
edit |
ファイルの編集/パッチ | 書き込み |
bash |
Shellコマンドの実行 | 実行 |
grep |
ファイル内容の検索 | 読み取り専用 |
glob |
パターンでファイル検索 | 読み取り専用 |
list |
ディレクトリ内容の一覧 | 読み取り専用 |
webfetch |
Webコンテンツの取得 | ネットワーク |
task |
サブエージェントの呼び出し | エージェント |
3. ファイル操作ツール
- read:AIはプロジェクトファイルを自動読み込みしてコンテキストを理解
- write:新規ファイルの作成や既存ファイルの上書き
- edit:検索+置換によるファイル内容の精密修正
4. Shell実行ツール
任意のShellコマンドを実行:
TEXT
📖 参照専用
npm testを実行して失敗したテストを分析して
AIは:コマンドを実行 → エラーを分析 → 問題を特定 → 修正提案 → コードを直接修正可能。
5. 検索・分析ツール
- grep:プロジェクト全体のファイル内容検索
- glob:名前パターンによるファイル検索
- list:ディレクトリ構造の一覧
6. ツール設定
グローバルのオン/オフ:
JSON
{
"tools": {
"write": true,
"edit": true,
"bash": true,
"webfetch": false
}
}
エージェントレベル:
JSON
{
"agent": {
"review": {
"tools": {
"write": false,
"edit": false
}
}
}
}
権限値:allow(自動)、ask(確認)、deny(拒否)
❓ FAQ
Q AIが危険な操作を実行するのを防ぐには?
A permission設定でbashをaskまたはdenyに設定。Globパターンできめ細かい制御も可能:
git statusを許可、rm -rfを拒否。Q AIが誤った修正を実行した場合どうすれば?
A 直ちに/undoで取り消し。opencode.jsonでeditとwriteの権限をaskに設定し、AIがファイル修正前に確認を要求するようにすることを推奨。
Q Aliceは全ツールを許可、Bobは読み取り専用ツールのみ許可していますが、どちらが安全か?
A Bobの方が安全。読み取り専用設定(write/edit/bash無効)はAIによるいかなる修正も防止し、コードレビューシーンに適している。Aliceの設定は効率的だがリスクも高い。
📖 まとめ
- 内蔵ツール:read、write、edit、bash、grep、glob、list、webfetch、task
- 権限レベル:allow、ask、deny
- グローバルとエージェントレベルでツール権限を設定可能
- bash権限はGlobパターンできめ細かく制御
- MCPでさらに多くのツールを拡張可能
📝 練習問題
-
基本問題:opencode.jsonでツール権限を設定し、editをaskにしてください。
-
応用問題:読み取り専用エージェントを作成し、すべての書き込み・実行ツールを無効にしてください。
-
チャレンジ問題:Globパターンでbash権限を設定し、git操作を許可しつつrm等の危険なコマンドを拒否してください。