メインコンテンツへスキップ

TUI モード

任意のプロジェクトのルートで qodercli を実行すると、既定の TUI(インタラクティブ)モードに入ります。CLI とはテキストでやり取りでき、スラッシュコマンドで専用の機能を実行できます。

入力モード

TUI では複数の入力モードを利用できます:
CommandDescription
>ダイアログモード(デフォルト)。任意のテキストを入力して CLI と対話します。
!Bash モード。ダイアログモードで ! を入力するとシェルコマンドを直接実行できます。
/スラッシュモード。ダイアログモードで / を入力して組み込みコマンドを開き、実行します。
#メモリモード。ダイアログモードで # を入力して、AGENTS.md のメモリファイルに内容を追記します。
\ Enter で複数行入力を開始します。

組み込みツール

Qoder CLI には、ファイルやディレクトリの操作やシェルコマンドの実行に使える Grep、Read、Write、Bash などのツールが標準搭載されています。

スラッシュコマンド

これらの組み込みスラッシュコマンドで、機能や設定にすばやくアクセスできます。
CommandDescription
/loginQoder アカウントにログインする
/helpTUI のヘルプを表示する
/initプロジェクト内の AGENTS.md メモリファイルを初期化または更新する
/memoryAGENTS.md メモリファイルを編集する
/quest仕様駆動の委任タスクを実行する
/reviewローカルの変更をコードレビューする
/resumeセッションを一覧表示して再開する
/clear現在のセッションの context 履歴をクリアする
/compact現在のセッションの context 履歴を要約する
/usage現在のクレジット使用状況を表示する
/statusCLI のステータスを表示: バージョン、モデル、アカウント、API 接続状況、ツールのステータスなど
/configQoder CLI のシステム設定を表示する
/agentsサブエージェント用コマンド: 一覧、作成、管理
/bashes実行中のバックグラウンド Bash ジョブ(Bash ツールで開始)を一覧表示する
/release-notesQoder CLI のリリースノートを表示する
/vim入力を編集するため外部エディタを開く
/feedbackQoder CLI に関するフィードバックを送信する
/quitTUI を終了する
/logoutQoder アカウントからログアウトする

高度な起動オプション

CLI を起動する際は、以下のオプションで動作を制御できます:
CommandDescriptionExample
-wワークスペースのディレクトリを指定qodercli -w /Users/demo/projects/nacos
-c直前のセッションを続行qodercli -c
-r指定したセッションを再開qodercli -r *******-c09a-40a9-82a7-a565413fa39
--allowed-tools指定したツールのみ許可qodercli --allowed-tools=READ,WRITE
--disallowed-tools指定したツールを禁止qodercli --disallowed-tools=READ,WRITE
--max-turns最大ターン数qodercli --max-turns=10
--yolo権限確認をスキップqodercli --yolo
印刷モードは非対話型です。qodercli --print を実行して起動します。出力は --output-format に従って表示されます。

フラグ

グローバルオプションは任意のコマンドで使用できます:
OptionDescriptionExample
-pAgent を非対話モードで実行するqodercli -q -p hi
--output-format出力形式:text、json、stream-jsonqodercli --output-format=json
-wワークスペースディレクトリを指定するqodercli -w /Users/qoder_user/projects/qoder_demo
-c直近のセッションを再開するqodercli -c
-r指定したセッションを再開するqodercli -r ********-c09a-40a9-82a7-a565413fa393
--allowed-tools指定したツールのみを許可するqodercli --allowed-tools=READ,WRITE
--disallowed-tools指定したツールを禁止するqodercli --disallowed-tools=READ,WRITE
--max-turns最大ターン数qodercli --max-turns=10
--yoloパーミッションチェックをスキップするqodercli --yolo

MCP サーバー

Qoder CLI は、標準的な MCP ツールと連携できます。始めるには、ツールの MCP サーバーを追加するだけです。たとえば、Playwright でブラウザー操作を有効にするには、次のコマンドを実行します:
qodercli mcp add playwright -- npx -y @playwright/mcp@latest

MCP サーバーの管理

  • -t で MCP サーバーのタイプを指定します: stdio、sse、streamable-http。stdio サーバーは TUI とともに自動起動します。
  • -s でスコープを指定します: ユーザーレベルまたはプロジェクトレベル。必要に応じてプロジェクトごとに MCP サーバーを設定できます。
  • 追加した MCP サーバーは次のコマンドで管理します:
# サーバーを一覧表示
qodercli mcp list

# サーバーを削除
qodercli mcp remove playwright

MCP サーバーのファイル

追加した MCP サーバーは、プロジェクト内の次のファイルに保存されます。
# 現在のユーザーまたは特定のプロジェクト用に追加され、コミットされません。
~/.qoder.json   

# 現在のプロジェクト用に追加され、通常はコミットされます。
${project}/.mcp.json
  • qodercli mcp add context7 -- npx -y @upstash/context7-mcp@latest
  • qodercli mcp add deepwiki -- npx -y mcp-deepwiki@latest
  • qodercli mcp add chrome-devtools -- npx chrome-devtools-mcp@latest

権限

Qoder CLI はツールの実行権限を厳密に制御します。次のファイルで設定します(後に挙げるものほど優先度が高い):
~/.qoder/settings.json
${project}/.qoder/settings.json
${project}/.qoder/settings.local.json(通常は .gitignore に追加されます)

設定

Qoder CLI は、Allow、Deny、Ask の3つの基本戦略による権限管理を提供します。これらはツール固有のルールと組み合わせることで、プロジェクトやユーザー単位でのきめ細かなアクセス管理が可能です。デフォルトでは、CLI は選択したプロジェクトディレクトリ外のファイルアクセスに対して安全な「Ask」ポリシーで動作し、起動時にそのディレクトリ内に標準的な読み取り/書き込みルールを自動作成します。すべてのポリシーは、ワークフローに合わせて完全にカスタマイズ可能です。
{
  "permissions": {
    "ask": [
      "Read(!/Users/qoder_user/Documents/codes/go-micro/**)",
      "Edit(!/Users/qoder_user/Documents/codes/go-micro/**)"
    ],
    "allow": [
      "Read(/Users/qoder_user/Documents/codes/go-micro/**)",
      "Edit(/Users/qoder_user/Documents/codes/go-micro/**)"
    ],
    "deny": []
  }
}

種類

  1. Read & Edit 読み取りルールは、Grep、Glob、LS などのすべてのファイル読み取りツールに適用されます。パターンは gitignore 形式のマッチングに従います。サポートされるパターン形式は次のとおりです:
PatternDescriptionExampleMatches
/pathシステムルートからの絶対パスRead(/Users/qoder_user/demo/**))/Users/qoder_user/demo/xx
~/pathホームディレクトリからのパスRead(~/Documents/xx.png)/Users/qoder_user/Documents/xx.png
path or ./pathカレントディレクトリからの相対パスRead(xx.java)./xx.java
  1. WebFetch ネットワーク取得ツールのフェッチ先ドメインを制限します。
  • WebFetch(domain:example.com) はフェッチ先を example.com に制限します
  1. Bash シェル実行ツールで許可するコマンドを制限します。
  • Bash(npm run build) はコマンド npm run build と完全一致でマッチします
  • Bash(npm run test:*) は npm run test で始まるコマンドにマッチします
  • Bash(curl http://site.com/:*) は curl http://site.com/ で始まる curl コマンドにマッチします

Worktree

Worktree ジョブは、--worktree で開始する並行実行ジョブです。1 つのリポジトリに対して複数の Git worktree を作成し、ジョブを並列で実行することで、プロセス間の読み取り/書き込み競合を回避できます。
要件: ローカルに Git がインストールされ、使用可能であることを確認してください。
CommandsDescription
qodercli --worktree "job description新しい worktree ジョブを作成して開始
qodercli jobs --worktree既存の worktree ジョブを一覧表示
qodercli rmジョブを削除(worktree を削除)

ジョブを作成する

リポジトリのルートで実行: qodercli --worktree "Your job description"
  • コンテナ内で非対話モードで実行し、完了後にコンテナを停止するには -p を追加します。
  • ジョブのコードブランチを指定するには --branch を追加します。
  • そのほかの Agent オプション(例: --max-turns)は、コンテナ内の CLI にそのまま渡されます。ジョブ作成後はデフォルトで TUI モードに入ります。別々のターミナルで複数のジョブを起動できます。worktree によりジョブ同士が分離されます。

ジョブを表示

コマンド $ qodercli jobs --worktree を使用して、現在のコードリポジトリで並行実行中のジョブを表示します。
$ qodercli jobs --worktree
ワークスペースのQoderジョブ: /Users/linus/qoder/qodercli

ワークツリージョブ:
ID              初期プロンプト    パス                                ステータス      作成日時             
11758283139787  [I] hello        ~/.qoder/worktrees/11758283139787   実行中     5分前       
11758283382928  [N] hello        ~/.qoder/worktrees/11758283382928   終了      1分前        
11758283399820  [N] hello        ~/.qoder/worktrees/11758283399820   終了      1分前

合計: 3個のワークツリージョブ
フィールドの説明:
  • ID: 一意のジョブID(コンテナIDではありません)
  • INIT PROMPT: 初期のジョブ記述(将来的にAI生成のタイトルになります)
  • PATH: Git の worktree ディレクトリ
  • STATUS: コンテナのステータスと同一
  • CREATED: ジョブの作成時刻

ジョブの削除

rm でジョブを削除します(worktree も削除されます):
qodercli rm <jobId>
注意: 削除は取り消せません。慎重に進めてください。

メモリ

Qoder CLI はメモリファイルとして AGENTS.md を使用し、その内容は開発を支援する context として CLI に自動的に読み込まれます。代表的な内容:
  • 開発基準や注意事項
  • システム全体のアーキテクチャ
ローカルファイルのパス:
# ユーザーレベル、すべてのプロジェクトに適用
~/.qoder/AGENTS.md
# プロジェクトレベル、現在のプロジェクトに適用
${project}/AGENTS.md 

自動生成

対象プロジェクトで TUI を起動し、/init を入力してプロジェクトディレクトリに AGENTS.md を生成します。

手動で管理

  • プロジェクト内に AGENTS.md を作成し、内容を編集します。
  • TUIで # を入力してメモリ編集モードに入り、プロジェクトのメモリファイルを Vim 風の操作で編集します。
  • TUIで /memory を入力して、ユーザーまたはプロジェクトレベルのメモリファイルを選択して編集します。

サブエージェント

サブエージェントは、特定のタスクに特化した AI エージェントです。各サブエージェントは独自の context ウィンドウとツール権限を持ち、カスタムのシステムプロンプトで指示できます。適切に活用すれば、複雑なタスクの処理精度が向上します。

手動で作成

まず、次の場所に Markdown ファイルを作成します:
  • ~/.qoder/agents/<agentName>.md : ユーザーレベル。すべてのプロジェクトに適用
  • ${project}/agents/<agentName>.md : プロジェクトレベル。現在のプロジェクトに適用
次に、サブエージェントを定義します。サブエージェントの Markdown ファイルには、name、description、tools の各フィールドを定義するフロントマターと、メインのシステムプロンプトを含める必要があります。例:
---
name: code-review
description: 品質とセキュリティチェックのためのコードレビューエキスパート
tools: Read, Grep, Glob, Bash
---

あなたはコード品質の確保を担当するシニアコードレビュアーです。

チェックリスト:
1. 可読性
2. 命名規則
3. エラーハンドリング
4. セキュリティチェック
5. テストカバレッジ
...

自動作成

TUIで /agents を入力します。Tab を押して User または Project を選択し、Create new agent を選び、自動生成したいサブエージェントの要件を入力します。

サブエージェントを使う

TUI モードでは、コマンド /agent でサブエージェントを一覧表示できます。タスクを実行するために、サブエージェントは明示的にも暗黙的にも呼び出せます。例えば:
- code-reviewサブエージェントを使用してコードの問題をチェックする(明示的な呼び出し)
- このコードの潜在的なパフォーマンス問題を分析する(暗黙的)
- このAPIの実装をレビューする(暗黙的)
- 最初にdesignサブエージェントでシステム設計を行い、次にcode-reviewサブエージェントでコードレビューを行う(連鎖)

コマンド

コマンドは .md ファイルでスラッシュ機能を拡張します。よく使うプロンプトをコマンドとして定義し、TUI でタスクを実行できます。

コマンドを作成する

コマンド定義は次の場所に保存します:
  • ~/.qoder/commands/.md:ユーザーレベル。すべてのプロジェクトに適用
  • ${project}/commands/.md:プロジェクトレベル。現在のプロジェクトに適用

次のようにコマンドを定義し、~/.qoder/commands/quest.md に保存します。
---
description: "特化されたサブエージェントを使用して、ユーザーを機能開発プロセスに導くインテリジェントなワークフローオーケストレーター"
--
まずシステム設計にはdesignサブエージェントを使用し、次にコードレビューを完了するためにcode-reviewサブエージェントを使用してください。

コマンドを使う

TUI で /quest を入力してコマンドを実行します。プロンプトごとに 2 つのサブAgentを順に呼び出します。

フック

Qoder CLI は、実行の各主要段階でフックを提供し、外部システム(通知、ツールなど)との連携を可能にします。

設定

フックは次の場所に定義します:
  • ~/.qoder/settings.json:ユーザーレベル。すべてのプロジェクトに適用
  • ${project}/.qoder/settings.json:プロジェクトレベル。現在のプロジェクトに適用
  • ${project}/.qoder/settings.local.json:プロジェクトレベル。最優先(通常は .gitignore に追加)
.qoder/settings.json にフックを追加します:
{
  "hooks": {
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "~/notification.sh"
          }
        ]
      }
    ]
  }
}
~/notification.sh を作成し、CLI で設定を書き込めるように次の内容を追加します。
#!/bin/bash

input=$(cat)

sessionId=$(echo $input | jq -r '.session_id')
messageInfo=$(echo $input | jq -r '.message')
workspacePath=$(echo $input | jq -r '.cwd')

if [[ "$messageInfo" =~ ^Agent ]]; then
  osascript -e 'display notification "✅ タスクが完了しました。" with title "QoderCLI"'
else
  osascript -e 'display notification "⌛️ タスクには承認が必要です。" with title "QoderCLI"'
fi

exit 0
現在、Qoder CLI がサポートしているのは Notification フックのみです。各フックのステージは Agent のメイン実行フローに介入でき、CLI とは疎結合のまま動作します。より幅広い統合シナリオに対応するため、今後はツール呼び出しやセッション介入など、さらなるフックタイプの追加を予定しています。
I