Skip to content

VJSP コマンドラインツール(CLI)

ターミナル上でエージェントをスケジューリングし、コマンドラインのキーボード操作のみのナビゲーション方式で、計画、デバッグ、コーディング作業を高効率で実施できます。

VJSP コマンドラインツールは、IDE拡張プラグインと同じ基盤技術を採用しており、一貫したワークフローを継続的に利用して、エージェント駆動型のコーディングタスクを処理できます。

インストール

bash
npm install -g @vjsp/cli

対象の作業ディレクトリに移動し、vjspコマンドを実行します。

bash
# インタラクティブな対話セッションを起動
vjsp

# 指定したモードで起動
vjsp --mode architect

# 指定したワークスペースを読み込んで起動
vjsp --workspace /path/to/project

# 現在のワークスペースの前回の対話を復元
vjsp --continue

コマンドラインツールを起動後、対応するモデルと関連モードを選択し、新しいタスクを開始できます。

アップグレード

次のコマンドを実行して、VJSP コマンドラインツールパッケージをアップグレードします。

bash
npm update -g @vjsp/cli

VJSP コマンドラインツールのコア機能

  • ターミナルから離れることなく、コードの変更計画と実行を実現:統合開発環境(IDE)を開かずに、コマンドラインから直接プロジェクトコードを編集できます。
  • ワークフロータスクに最適な実行モードをマッチング:アーキテクチャ設計、インテリジェントQ&A、デバッグ・トラブルシューティング、インテリジェントオーケストレーションなどの公式モードに対応するほか、カスタムエージェント実行モードもサポートします。
  • タスクの自動化処理を実現:AI の補助を借りて Shell スクリプトを作成し、フォルダ内のファイルの一括リネーム、画像サイズの一括変換など、様々なタスクを実施できます。
  • スキルによる機能境界の拡張エージェントスキル(Agent Skills)に基づき、ツールに業種別の専門機能を備え、再利用可能なワークフローを蓄積します。

コマンドラインツールリファレンスマニュアル

キーボードショートカット

ショートカット機能説明
Ctrl+Cツールを終了(確定のために2回連続で押す)
Ctrl+X現在実行中のタスクをキャンセル
Escストリーミングレスポンス時に現在のタスクをキャンセル、または入力ボックスの内容をクリア
Ctrl+Y高速実行モードを切り替え(すべての操作命令を自動承認)
Ctrl+Rタスクを復元(タスクが復元可能な状態の場合のみ有効)
!Shellモードに入る(入力ボックスが空の場合のみ有効)
↑/↓コマンド履歴を閲覧(入力ボックスが空の場合のみ有効)

組み込みコマンド

コマンド機能説明
vjspインタラクティブセッションを起動
/mode実行モードを切り替え(Architect、Code、Ask、Debug、Orchestrator)/mode orchestrator
/model利用可能なモデルリストを表示し、モデルを切り替え
/model listすべての利用可能な大規模言語モデルをリストアップ
/model infoモデル名に基づき、該当モデルの詳細な説明情報を出力/model info Qwen3-VJSP
/model select新しい大規模言語モデルを選択して切り替え
/checkpoint listすべての利用可能なチェックポイントをリストアップ
/checkpoint restore指定したチェックポイントに復元(この操作は破壊的)/checkpoint restore 41db173a
/tasksタスク履歴を表示
/tasks searchクエリキーワードに基づきタスクを検索/tasks search bug fix
/tasks select指定したタスクに切り替え/tasks select abc123
/tasks pageタスク履歴の指定ページにジャンプ/tasks page 2
/tasks nextタスク履歴の次のページに移動
/tasks prevタスク履歴の前のページに移動
/tasks sortタスク履歴のソート方式を調整/tasks sort most-expensive
/tasks filterタスク履歴をフィルタリング/tasks filter favorites
/config設定エディタを開く(vjsp configコマンドと機能は同じ)
/new履歴状態をクリアし、新しいエージェントタスクを起動
/helpすべての利用可能なコマンドと使用方法をリストアップ
/exitコマンドラインツールを終了

スキル(Skills)

本コマンドラインツールはエージェントスキル機能をサポートしており、軽量フォーマットで実装され、AI に専門分野の知識と標準化されたワークフローを備え、機能の拡張を実現します。

スキルファイルの読み込みパスは以下の2種類に分かれます。

  • グローバルスキル~/.vjsp/skills/(すべてのプロジェクトから呼び出し可能)
  • プロジェクト専用スキル.vjsp/skills/(現在のプロジェクトからのみ呼び出し可能)

スキルの有効範囲は以下の2種類に分かれます。

  • 汎用型 - すべての実行モードで有効
  • モード専用型 - 指定した実行モードでのみ読み込まれる(コード開発モード、アーキテクチャ設計モードなど)

スキルファイルのディレクトリ構造例

your-project/
└── .vjsp/
    ├── skills/               # 現在のプロジェクトの汎用スキルディレクトリ
    │   └── project-conventions/
    │       └── SKILL.md
    └── skills-code/          # 現在のプロジェクトのコード開発モード専用スキルディレクトリ
        └── linting-rules/
            └── SKILL.md

スキルの追加

  1. スキル保存ディレクトリを作成します。
    bash
    mkdir -p ~/.vjsp/skills/api-design
  2. このディレクトリ配下にSKILL.mdファイルを作成し、ファイル先頭にYAML設定情報を追加します。
    markdown
    ---
    name: api-design
    description: REST API デザインのベストプラクティスと仕様
    ---
    
    # API デザイン仕様
    REST APIをデザインする際は、以下の仕様に従う必要があります...
    注意:設定内のnameフィールドは、スキルディレクトリ名と完全に一致している必要があります。
  3. コマンドラインツールのセッションを再起動すると、新しく追加したスキルが読み込まれて有効になります。

カスタムコマンド

カスタムコマンドにより、再利用可能なスラッシュコマンドを作成し、パラメータ置換を含む事前定義されたプロンプトを実行でき、繰り返しタスクを簡便に簡略化し、ワークフローの標準化を実現します。

カスタムコマンドの読み込みパスは以下の2種類に分かれます。

  • グローバルコマンド~/.vjsp/commands/(すべてのプロジェクトから呼び出し可能)
  • プロジェクト専用コマンド.vjsp/commands/(現在のプロジェクトからのみ呼び出し可能)

カスタムコマンドは簡易的なMarkdownファイルで、ファイル先頭のYAML設定情報によりコマンド属性を定義します。

カスタムコマンドの作成

  1. コマンド保存ディレクトリを作成します。
    bash
    mkdir -p ~/.vjsp/commands # Windowsシステムの場合:mkdir %USERPROFILE%\.vjsp\commands
  2. このディレクトリ配下にMarkdownファイルを作成します(例:component.md)。
    markdown
    ---
    description: 新しいReactコンポーネントを作成
    arguments:
        - ComponentName
    ---
    
    $1という名前のReactコンポーネントを作成し、以下の内容を含むものとします。
    - 規格に準拠したTypeScriptの型定義
    - 基本的なコンポーネント構造
    - コンポーネントのエクスポート文
    - 必要に応じて簡易的なプロップスインターフェース(props interface)を定義
    
    プロジェクトのディレクトリ構造に基づき、コンポーネントファイルを対応するディレクトリに配置してください。
  3. コマンドラインツールのセッションでこのカスタムコマンドを呼び出します。
    bash
    /component Button

YAML設定項目の説明

カスタムコマンドは以下のYAMLヘッダー設定項目をサポートします。

  • description(オプション):コマンドの説明で、/helpコマンドに表示されます
  • arguments(オプション):ドキュメント説明の生成に使用されるコマンドパラメータリスト
  • mode(オプション):このコマンドの実行時、ツールの実行モードを指定したものに自動的に切り替え
  • model(オプション):このコマンドの実行時、大規模言語モデルを指定したものに自動的に切り替え

パラメータ置換ルール

カスタムコマンドは柔軟なパラメータ置換機能をサポートし、そのルールは以下の通りです。

  • $ARGUMENTS:渡されたすべてのパラメータをスペースで連結したもので置換
  • $1, $2, $3 など:位置に基づき単一の渡されたパラメータに一致し、順番に置換

パラメータ置換の例

markdown
---
description: 指定した内容のファイルを作成
arguments:
    - filename
    - content
---

$1という名前の新しいファイルを作成し、そのファイル内容は以下の通りとします。
$2

呼び出し方式:/createfile app.ts "console.log('Hello')"

モードとモデルの自動切り替え

カスタムコマンドは、実行時にツールのモードと大規模言語モデルを自動的に切り替えるように設定でき、以下に例を示します。

markdown
---
description: カバレッジ統計付きのテストを実行
mode: code
model: anthropic/claude-3-5-sonnet-20241022
---

完全なテストスイートを実行し、カバレッジレポートを生成し、すべてのテスト失敗ケースを表示してください。
失敗ケースに焦点を当て、具体的な修正提案を提示してください。

/testコマンドを呼び出すと、ツールは自動的にコード開発モードに切り替え、設定で指定された大規模言語モデルを使用します。

カスタムコマンドの例

プロジェクトドキュメントの初期化

markdown
---
description: コードベースを分析し、AGENTS.mdドキュメントを生成
mode: code
---

現在のコードベースを分析し、AGENTS.mdドキュメントを生成してください。ドキュメントには以下の内容を含むものとします。
1. ビルド、コードチェック、テストに関するコマンド——特に単体テストの実行コマンドを重点的に記載
2. コードスタイルの仕様、インポートルール、フォーマットの要求、型定義、命名規則を含む

プロジェクトファイルの読み取りによって発見された、プロジェクト特有の特殊な仕様と汎用的でない情報に焦点を当ててください。

コードのリファクタリング

markdown
---
description: コード品質を向上させるためのコードリファクタリング
arguments:
    - filepath
---

ファイル$1に対してリファクタリングを実施し、以下の側面を重点的に最適化してください。
- コードの可読性
- 実行性能
- 保守性
- 型の安全性

実施した変更内容と、変更がコード品質にもたらす向上効果を詳しく説明してください。

コマンドの優先順位ルール

プロジェクト専用コマンドは同一名のグローバルコマンドを上書きし、単一プロジェクトのコマンド動作をカスタマイズしつつ、グローバルレベルのデフォルト汎用設定を保持できます。

チェックポイント管理

VJSP は作業中にチェックポイントを自動的に作成し、プロジェクトを任意の履歴状態に復元することをサポートします。

チェックポイントの表示

/checkpoint listコマンドを実行し、すべての利用可能なチェックポイントをリストアップします。

bash
/checkpoint list

このコマンドは以下の情報を表示します。

  • 40桁の完全なGitコミットハッシュ値
  • 相対タイムスタンプ(例:5分前、2時間前)
  • 自動保存されたチェックポイントには[auto-saved]とマークされる

チェックポイントへの復元

完全なGitハッシュ値を使用し、プロジェクトを指定したチェックポイントに復元します。

bash
/checkpoint restore 00d185d5020969752bc9ae40823b9d6a723696e2

⚠️ 警告

チェックポイントの復元は破壊的な操作であり、実行後に以下の影響が生じます。

  • Gitのハードリセットを実行し、コミットされていないすべての変更が失われる
  • 該当チェックポイント以降のすべての対話履歴が削除される
  • 操作の実行後は元に戻せない

復元前に、保持する必要のあるすべての作業内容をコミットまたはバックアップしてください。

コマンド別名/checkpointのショートハンドとして/cpを使用できます。

タスク履歴管理

コマンドラインツール内で直接タスク履歴を表示、検索、閲覧できます。

タスク履歴の表示

/tasksコマンドを実行し、タスク履歴を表示します。

bash
/tasks

このコマンドは以下の情報を表示します。

  • タスク番号とタスクの説明
  • タスクの切り替えに使用されるタスクID
  • 相対タイムスタンプ
  • Tokenの使用量
  • お気に入りのタスクマーク(⭐)
  • ページネーション識別子(1ページに10件のタスクを表示)

タスクの検索

キーワードに基づき指定したタスクを検索します。

bash
/tasks search bug fix
/tasks search implement feature

検索結果は自動的に関連度に基づいてソートされます。

タスクの切り替え

タスクIDを使用し、指定したタスクに切り替えます。

bash
/tasks select abc123

このコマンドは該当タスクの完全な対話履歴を読み込み、タスクのコンテキストを復元します。

ページネーションによる閲覧

タスク履歴の異なるページを閲覧します。

bash
/tasks page 2      # 2ページにジャンプ
/tasks next        # 次のページに移動
/tasks prev        # 前のページに移動

タスクのソート

異なる次元に基づきタスク履歴をソートします。

bash
/tasks sort newest          # 作成時間が新しい順(デフォルトルール)
/tasks sort oldest          # 作成時間が古い順
/tasks sort most-tokens     # Tokenの使用量が多い順
/tasks sort most-relevant   # 関連度順(検索時のみ有効)

タスクのフィルタリング

ワークスペースまたはお気に入りの状態に基づきタスクをフィルタリングします。

bash
/tasks filter current    # 現在のワークスペースのタスクのみを表示
/tasks filter all        # すべてのワークスペースのタスクを表示
/tasks filter favorites  # お気に入りのタスクのみを表示
/tasks filter all-tasks  # すべてのタスクを表示(フィルタ条件をクリア)

コマンド別名/tasksのショートハンドとして/tおよび/historyを使用できます。

モデルプロバイダの設定リファレンス

VJSP は大規模言語モデルプロバイダとAIゲートウェイに対して独自のキーを設定することをサポートし、プロバイダによって設定項目は異なります。

設定ファイルを手動で編集する場合は、次のコマンドを実行します。

bash
vjsp config

コマンドラインのインタラクティブなプロセスを通じて設定を完了します。

💡 ヒント

インタラクティブセッション内で/configスラッシュコマンドを実行することもでき、vjsp configコマンドと機能は同じです。

パラレルモード

パラレルモードは、同じディレクトリで複数のVJSPインスタンスを起動することをサポートし、競合なしにタスクを並列処理でき、必要に応じて任意の数のインスタンスを起動できます!タスクの完了後、すべての変更は独立したGitブランチに同期されます。

bash
# 前提条件:現在のディレクトリは有効なGitリポジトリである必要がある

# インタラクティブモードの場合、終了時にブランチの変更が自動的にコミットされる
# ターミナル1
vjsp --parallel "improve xyz"
# ターミナル2
vjsp --parallel "improve abc"

# オートモードと組み合わせて使用すると、効率がさらに向上 🚀
# ターミナル1
vjsp --parallel --auto "improve xyz"
# ターミナル2
vjsp --parallel --auto "improve abc"

オート承認設定

オート承認機能を有効にすると、VJSPコマンドラインツールはユーザーの手動確認なしに操作を実行します。この設定はインタラクティブモードで段階的に設定することも、vjsp configコマンドまたは設定ファイル~/.vjsp/config.jsonの直接編集によって完了することもできます。

デフォルトのオート承認設定

json
{
	"autoApproval": {
		"enabled": true,
		"read": {
			"enabled": true,
			"outside": false
		},
		"write": {
			"enabled": true,
			"outside": false,
			"protected": false
		},
		"execute": {
			"enabled": true,
			"allowed": ["npm", "git", "pnpm"],
			"denied": ["rm -rf", "sudo"]
		},
		"browser": {
			"enabled": false
		},
		"mcp": {
			"enabled": true
		},
		"mode": {
			"enabled": true
		},
		"subtasks": {
			"enabled": true
		},
		"question": {
			"enabled": false,
			"timeout": 60
		},
		"retry": {
			"enabled": true,
			"delay": 10
		},
		"todo": {
			"enabled": true
		}
	}
}

設定項目の説明

  • read:ファイル読み取り操作のオート承認設定
    • outside:ワークスペース外のファイルの読み取りを許可するかどうか
  • write:ファイル書き込み操作のオート承認設定
    • outside:ワークスペース外にファイルを書き込むことを許可するかどうか
    • protected:保護されたファイル(package.jsonなど)の変更を許可するかどうか
  • execute:コマンド実行操作のオート承認設定
    • allowed:実行を許可するコマンドのマッチングルールリスト(例:["npm", "git"])
    • denied:実行を禁止するコマンドのマッチングルールリスト(許可ルールより優先度が高い)
  • browser:ブラウザ操作のオート承認設定
  • mcp:MCPツール呼び出しのオート承認設定
  • mode:ツールモード切り替えのオート承認設定
  • subtasks:サブタスク作成のオート承認設定
  • question:後続の質問への応答のオート承認設定
  • retry:APIリクエストのリトライのオート承認設定
  • todo:ToDoリストの更新のオート承認設定

コマンド承認のマッチングルール

execute.allowedおよびexecute.deniedリストは階層的なコマンドマッチングルールをサポートし、そのルールは以下の通りです。

  • 基本コマンド"git" はすべてのgitサブコマンドに一致します(例:git statusgit commitgit push
  • コマンド+サブコマンド"git status" はすべてのgit status関連コマンドに一致します(例:git status --shortgit status -v
  • 完全なコマンド"git status --short" はこの正確なコマンドのみに一致します

マッチングルールの例

json
{
	"execute": {
		"enabled": true,
		"allowed": [
			"npm", // すべてのnpmコマンドを許可
			"git status", // すべてのgit status関連コマンドを許可
			"ls -la" // 「ls -la」コマンドの正確な実行のみを許可
		],
		"denied": [
			"git push --force" // gitコマンドが許可されていても、この正確なコマンドを禁止
		]
	}
}

インタラクティブモード

--autoパラメータを付けずにVJSPを実行すると、デフォルトでインタラクティブモードに入り、このモードはユーザーとツールのコンソールによるインタラクティブな連携のために特別に設計されています。

インタラクティブモードでは、ツールがオート承認設定のない操作を実行する場合、ユーザーに承認リクエストを送信します。ユーザーは操作内容をレビューしてから実行を確定するか、該当操作をオート承認リストに追加することができます。

インタラクティブなコマンド承認

インタラクティブモードでは、コマンド承認リクエストは階層的な操作オプションを表示し、以下に例を示します。

[!] 操作の実行には手動での確認が必要です:
> ✓ コマンドを実行 (y)
  ✓ すべてのgitコマンドの実行を常に許可 (1)
  ✓ git status関連コマンドの実行を常に許可 (2)
  ✓ git status --short --branchコマンドの正確な実行を常に許可 (3)
  ✗ 実行を拒否 (n)

任意の「常に許可」オプションを選択すると、以下の操作が実行されます。

  1. 現在のコマンドを承認して実行
  2. 該当コマンドのマッチングルールを設定ファイルのexecute.allowedリストに追加
  3. 以降、このルールに一致するコマンドは自動的に承認されて実行される

この方式により、設定ファイルを手動で編集することなく、段階的にオート承認ルールを充実させることができます。

オートノミスモード(非インタラクティブ)

オートノミスモードは、CI/CDパイプラインなどの自動化環境でVJSPを実行することをサポートし、人間の操作なしに実行できます。

bash
# オートノミスモードで実行し、タスクプロンプトを渡す
vjsp --auto "Implement feature X"

# オートノミスモードで実行し、パイプを介してタスクプロンプトを渡す
echo "Fix the bug in app.ts" | vjsp --auto

# オートノミスモードで実行し、タイムアウト時間を設定(単位:秒)
vjsp --auto "Run tests" --timeout 300

# オートノミスモードで実行し、JSON形式の結果を出力(構造化解析に便利)
vjsp --auto --json "Implement feature X"

オートノミスモードの実行特性

--autoパラメータを追加してオートノミスモードに入ると、ツールは以下の特性を示します。

  1. 人間の操作なし:すべての操作承認リクエストは設定に基づいて自動的に処理される
  2. 自動的な承認/拒否:オート承認設定に基づき、操作の実行可否を自動的に判定する
  3. 後続の質問への自動応答:ツールはAIに対し、後続の質問への応答に関する意思決定を自主的に行うように指令を自動的に送信する
  4. タスク完了後の自動終了:タスクの完了またはタイムアウト後、コマンドラインツールは自動的に終了する

JSON出力モード

--jsonパラメータと--autoパラメータを組み合わせて使用すると、ツールはデフォルトのターミナルインタラクティブインターフェースに代えて、構造化されたJSON形式の結果を出力し、ツールのプログラムによる統合と結果解析に適しています。

bash
# 標準的なオートノミスモード、ターミナルインタラクティブインターフェースを表示
vjsp --auto "Fix the bug"

# オートノミスモード、JSON形式の結果を出力
vjsp --auto --json "Fix the bug"

# パイプ入力と組み合わせ、JSON形式の結果を出力
echo "Implement feature X" | vjsp --auto --json

使用上の要求

  • --jsonパラメータは--autoパラメータと組み合わせて使用する必要がある
  • 結果は標準出力ストリーム(stdout)に出力され、解析が容易な構造化されたJSON形式となる
  • CI/CDパイプラインや様々な自動化ワークフローに適している

オートノミスモードのオート承認ルール

オートノミスモードはオート承認設定を厳格に遵守し、オート承認設定のない操作は実行が禁止されます。

オートノミスモードにおける後続の質問の処理

オートノミスモードでは、AIが後続の質問を行う場合、ツールは以下の応答指令を自動的に送信します。

「現在のプロセスは非インタラクティブなオートノミスモードで実行中であり、ユーザーは意思決定に参加できません。自主的に意思決定を行い、実行を継続してください。」

この指令により、AIは人間の入力なしにタスクを自主的に推進するように導かれます。

終了コードの説明

  • 0:実行成功(タスク完了)
  • 124:実行タイムアウト(タスクが設定された時間制限を超えた)
  • 1:実行失敗(ツールの初期化またはタスクの実行中にエラーが発生した)

CI/CD統合の例

yaml
# GitHub Actions 統合の例
- name: VJSPの実行
  run: |
      echo "Implement the new feature" | vjsp --auto --timeout 600

セッションの復元

--continue(またはショートハンド-c)パラメータを使用し、現在のワークスペースの前回の対話セッションを復元します。

bash
# 現在のワークスペースの直近のタスクを復元
vjsp --continue
vjsp -c

機能特性

  • 現在のワークスペースの直近のタスクを自動的に識別
  • 該当タスクの完全な対話履歴を読み込む
  • タスクの中断箇所から実行を継続することをサポート
  • --autoモードまたはタスクプロンプトパラメータと同時に使用することはできない
  • 現在のワークスペースに履歴タスクがない場合、エラーをスローして終了する

ワークフローの例

bash
# 新しいタスクを起動
vjsp
# > タスクプロンプトを入力:"Create a REST API"
# ... タスク操作の実施 ...
# /exitコマンドを実行してツールを終了

# 後でこのタスクの作業を継続する場合
vjsp --continue
# ツールは対話履歴を復元し、直接タスクの実行を継続できる

使用上の制限

  • --autoモードと組み合わせて使用することはできない
  • タスクプロンプトパラメータと同時に使用することはできない
  • 現在のワークスペースに履歴タスクが存在する場合にのみ有効