Nanocode-CLI:軽量なターミナルベースのAIコーディングアシスタント
Nanocode-CLI は Python で書かれた軽量なターミナルベースのAIコーディングアシスタントです。ライブターン制御、ファイル状態追跡、編集保護、プロジェクト認識ナビゲーション、回復可能なコンテキスト、キャッシュ対応コンテキスト、集中型ワーキングメモリなどの機能を備えています。
Nanocode-CLI は、Python で完全に記述された軽量なターミナルベースのAIコーディングアシスタントです。開発者に効率的で直感的なプログラミング支援を提供することを目的としており、hit9 氏によって GitHub でメンテナンスされています。現在は 1.0 リリース前の開発段階にあり、コマンド、設定、ツールの動作は変更される可能性があります。
主な特徴
Nanocode-CLI は多くの革新的な機能を提供します。ライブターン制御により、ワークフロー中に追加入力を行っても現在のツールフローが中断されません。ファイル状態ブレイン機能は、読み取りおよび編集操作を通じて行番号付きの最新ファイルビューを構築し、ファイルの状態を明確に把握できます。古い編集の保護メカニズムは、行とハッシュアンカーを使用して、対象コードが変更された編集を拒否します。
プロジェクト認識ナビゲーションはシンボルインデックスを活用し、アウトライン、参照、変更ファイル間を素早く移動できます。回復可能なコンテキストはツール出力をプロンプト内に制限しつつ、生の結果を保持します。キャッシュ対応コンテキストは安定したセクションを先に、ノイズの多い作業状態を後に配置することで、プロンプトキャッシュの再利用を最適化します。集中型ワーキングメモリは、目標、計画、既知の事実を実行ログから分離して管理します。
インストールと使用方法
Nanocode-CLI のインストールは簡単で、uv tool install nanocode-cli を実行するだけです。アップグレードは uv tool upgrade nanocode-cli で行います。ローカル開発の場合は、uv sync --extra dev と uv run nanocode で起動します。
起動後、CLI はインタラクティブなインターフェースを提供します。便利な引数として、--config でTOML設定ファイルを指定、--init-config でデフォルト設定を作成、--yolo でツール確認をスキップ、-v でバージョン表示が可能です。操作中は +> プロンプトで追加入力を受け付けます。
コマンドとツール
組み込みコマンドには、ヘルプ表示、ステータス確認、設定表示、API設定、デバッグ切り替え、コンテキスト圧縮、シンボルインデックス再構築、プロバイダー/モデル選択などがあります。ツールセットはファイル読み書き、行数カウント、検索、コードインデックス検査、編集、シェル実行、Git操作、結果再呼び出し、メモ管理をカバーしています。編集ツールは行ハッシュアンカーを使用して編集の有効性を保証します。
設定とプロバイダー
初回実行時に nanocode --init-config を実行すると、デフォルト設定が ~/.nanocode/config.toml に生成されます。設定では、プロバイダー(DeepSeek、OpenCode、Alibaba Cloud Tongyi Qianwen、ローカル llama.cpp など)、APIキー、モデル、推論パラメータを指定できます。api パラメータを auto に設定すると、プロバイダーに応じて適切なAPI形式が自動選択されます。
コンテキスト設計
各モデルリクエストは明示的なメッセージから構築され、安定したコンテキストを先頭に、会話をメッセージとして保持し、作業メモリを続け、最新のファイル状態を末尾に追加します。この設計により、プロンプト長を制御し、キャッシュ利用を最適化します。
セキュリティ注意
Nanocode-CLI はファイル編集やシェルコマンド実行が可能で、サンドボックス保護は提供しません。システムの安全性を確保するため、隔離環境(コンテナ、仮想マシンなど)で実行することを推奨します。
総じて、Nanocode-CLI はターミナル愛好家向けの軽量かつ強力なAIコーディングアシスタントであり、特にコマンドラインワークフローを好む開発者に適しています。