NPC-Worldwide/npcsh
the composable multi-agent shell
npcsh – 構成可能なマルチエージェントシェル
概要 – npcsh は、通常のBashコマンド または 自然言語によるリクエストを入力できるコマンドラインインターフェースです。内部的には、リクエストを言語モデル駆動の「エージェント」にルーティングし、シェルコマンドの実行、ツールの呼び出し、または定義したJinjaベースのカスタム jinxes(テンプレート)の起動を行います。つまり、LLMを対話型のシェルアシスタントに変えるツールです。
主なコンセプト
- Agents –
.npcYAML、Markdown、またはファイルごとのagents/形式で定義されます。各エージェントは名前、主要な指示、およびオプションのモデル/プロバイダーの上書き設定を持ちます。 - Jinxes – プロンプト、ツール呼び出し、スクリプトをエンコードする再利用可能なJinjaテンプレートです。エージェントはこれらを「スキル」として呼び出します。
- Context layer –
npcsh.ctxファイルにはユーザー定義のキーが保持され、更新後も永続化されるため、カスタム命令フックが可能になります。 - Provider‑agnostic – LiteLLMがサポートするあらゆるモデル(Ollama、LM Studio、OpenAI、Anthropic、Gemini、DeepSeek、Minimaxなど)で動作します。
- Benchmark – 100のタスクを通じてモデルがどれだけシェルを操作できるかを評価する組み込みスイートがあり、多くの人気モデルのスコアがREADMEに記載されています。
インストール
- クイックスクリプト(推奨) –
これにより、Rustバイナリ (curl -fsSL https://enpisi.com/install-npcsh.sh | shnpcsh,npc) がインストールされ、Pythonバックエンド (npcpy) がセットアップされます。 - Cargo –
cargo install npcsh(ソースからビルドする場合)。 - Pythonバックエンド –
pip install npcpy(推論ループに必要。将来的にRustランナーに置き換え予定)。
初回実行時の設定 – 適切なデフォルト値を持つ ~/.npcshrc が作成されます。例:
export NPCSH_CHAT_MODEL=qwen3.5:2b
export NPCSH_CHAT_PROVIDER=ollama
export NPCSH_DEFAULT_MODE=agent
OpenAI、Anthropic、GeminiなどのAPIキーは、同じファイルまたは任意のシェルrcに追加できます。
典型的なワークフロー
npcsh> what process is listening on port 5337?
# LLM‑agent runs `lsof -i :5337` and returns the answer.
npcsh> @corca refactor the auth module and add tests
# The `@corca` agent (defined in your team) receives the request, generates code changes, runs them, and can open the Git TUI.
npcsh> /git
# Opens an integrated Git text‑UI for reviewing commits.
/ で始まるコマンドは組み込みのシェルショートカットです (/update, /sync, /git など)。
npcshの拡張
- スキルの追加 –
npc_team/jinxes/skills/にJinjaファイルを配置し、skillマクロでコンパイルします。 - エージェントの作成 – 新しい役割(例:データアナリスト)を記述した
.npcファイルまたはMarkdownエントリを作成し、そのスキルを参照します。 - カスタムコンテキストキー – 予約語以外のキーを使用して
~/.npcsh/npc_team/npcsh.ctxを編集すると、その値がすべてのエージェントで利用可能になります。
ドキュメントとコミュニティ
- 完全なドキュメント: https://npc-shell.readthedocs.io
- Discordチャット、寄付リンク、グッズ、コンサルティングの連絡先はREADMEに記載されています。
ライセンス – MIT。
結論 – npcsh は、LLM駆動のエージェントとターミナルから直接対話できる本格的なオープンソースのRust/Pythonプロジェクトであり、コマンドラインの自動化、コーディング支援、マルチステップワークフローのためのプログラム可能で拡張性の高い環境を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト