Nanocode:小型で依存関係ゼロの Python AI アシスタント
Nanocode – 小型で依存関係ゼロの Python AI アシスタント
AI ツーリングが大きなパッケージや複雑なセットアップを前提にしている世界で、Nanocode は洗練されたミニマルな対抗手段として際立ちます。 1 ファイルの Python スクリプト(約 250 行)で Claude Code スタイルのエージェントループを再現し、堅牢なファイルとシェルユーティリティを少数提供し、典型的な Python ランタイム以外の外部依存関係は一切要しません。
なぜ Nanocode なのか? - それが解決する問題
- 高速なイテレーション:新しいツールを追加したり、動作を微調整したりするのに数ミリ秒。ライブラリの再インストールは不要。
- ポータビリティ:ファイルを任意の場所に置けば、Python 3.8+ を搭載した任意のマシンで実行可能。
- 透明性:黒箱ソリューションとは違い、コードベース全体が公開されているため、学習やデバッグには最適。
- 外部ライブラリ不要:重いパッケージを pip でインストールする必要がなく、CI 環境やメモリ制限のあるデバイスに最適。
主な機能一覧
| 機能 | 説明 |
|---|---|
| エージェントループ | ツール呼び出し機能付きの継続的プロンプト・レスポンスサイクル |
| 組み込みツール | read、write、edit、glob、grep、bash – エージェントが呼び出せる純粋なネイティブアクション |
| カラフルな出力 | プロンプト、レスポンス、ツール結果をリッチにターミナルに可視化 |
| モデルの柔軟性 | Anthropic の Claude をベースに動作。OpenRouter のどんなモデルも環境変数で簡単に切り替え可能 |
| コマンドショートカット | /c で履歴をクリア、/q や exit で終了 |
クイックスタート
# リポジトリをクローンするか、単一の `nanocode.py` ファイルをダウンロード
git clone https://github.com/1rgs/nanocode.git
cd nanocode
# Anthropic の API キーを設定
export ANTHROPIC_API_KEY="your-key"
# あるいは、より多くのモデルが利用できる OpenRouter のキーを設定
export OPENROUTER_API_KEY="your-key"
# 任意のモデルを選択(デフォルトは Claude 3.5 Sonnet)
export MODEL="openai/gpt-5.2"
# 実行
python nanocode.py
REPL 内に入ったら、AI にファイルを読みさせたり、編集させたり、あるいはシェルコマンドを実行させたりできます。例:
> what files are here?
─────────────────────────────────
❯ glob(**/*.py)
ツールが応答し、glob 関数を呼び出し、スクリプトは一致するファイル名を表示します。これでエージェントが直接ユーティリティを呼び出す仕組みが示されます。
Nanocode を拡張する
新しいカスタムツールを追加する手順は簡単です。
1. 実行したいアクションを行う関数を定義します。例: compress ツール。
2. tool_registry 辞書に登録します。
3. 以後、エージェントは compress を名前で呼び出せます。
# 例: 簡易圧縮ツール
from zipfile import ZipFile
def compress(src, dst):
with ZipFile(dst, 'w') as z:
for root, _, files in os.walk(src):
for f in files:
z.write(os.path.join(root, f), arcname=f)
# 登録
tool_registry['compress'] = compress
その後、エージェントに
> create a zip of the src folder
と尋ねると、compress ツールが自動的に実行されます。
コミュニティと貢献
プロジェクトは非常にシンプルなコードベースを維持しており、コントリビュータにとって優れた実験場です。ぜひ以下のようにご活用ください。 - バグ報告や機能リクエストの issue を作成。 - 新しいツールやパフォーマンス向上を Pull Request で提出。 - ドキュメントの追加や README の更新を自分の例で行う。
15 死星以上のスター数と、ミニマル AI ユーティリティに対する関心の高まりを背景に、Nanocode は軽量 AI アシスタントの次世代の土台として確固とした基盤を提供します。
最後に
Nanocode は、強力な AI インタラクションが巨大フレームワークを必要としないことを示しています。 カスタムデータパイプラインを prototyping したいとき、埋め込み型 AI アシスタントを試したいとき、あるいは Claude スタイルのループの仕組みを知りたいとき、この小さなスクリプトは雑音を切り裂きます。ぜひ取得して実行し、想像力とターミナルが残りを担うようにしてみてください。