// シリーズ
Mini Claude
Code。
ゼロから作る Coding Agent、合計およそ 500 行の TypeScript。全 6 話、1 つの動くリポジトリ。フレームワークなし、隠されたレイヤーなし——どのファイルも一気読みできます。
MIT · Node 20+ · Anthropic SDK のみ依存
数字で見る
約 500
コード行数
4
ソースファイル
1
ランタイム依存
6
エピソード
全 6 話の目次
各エピソード = 1 章。各章 = いま開けるファイル 1 つ。
- EP 01Mini Claude Code · Episode 01: ちゃんと記憶する 40 行の REPLTypeScript でゼロから動くコーディングエージェントを組み上げるハンズオン連載の第 1 回。まずは最小限のループを動かす——stdin、ストリーミング、そしてターンをまたいで生き残る会話。→
- EP 02Mini Claude Code · Episode 02: エージェントにツールの使い方を教えるEpisode 2 では REPL に最初の 3 つのツール——read_file、list_dir、run_bash——を与え、Anthropic SDK を使ったツールユースのループを一通り見ていく。ストップリーズン、ツールのエラー、そして会話に何を戻すべきかという意外に厄介な部分まで扱う。→
- EP 03Mini Claude Code · Episode 03: リポジトリを破壊せずにファイルを編集するEpisode 3 では apply_patch ツールを追加する——多くのエージェントがひっそりと作業成果を破壊する、あのツールだ。ドライランでのプレビュー、ワークスペースのガードレール、機嫌の悪い Claude にも耐える確認ゲートを備えた、厳格な unified diff アプライヤを構築する。→
- EP 04Mini Claude Code · Episode 04:エージェントに意図的に忘れさせるエピソード 4 ではトークン料金の問題に真正面から取り組む。observation masking(コストと品質の両面で LLM summarization を上回る JetBrains 流のトリック)を実装し、max_tokens による切り詰めでツール列が黙って壊れないよう auto-continue の経路を追加する。→
- EP 05Mini Claude Code · Episode 05: 独自のコンテキストを持つサブエージェントを起動するEpisode 5 ではエージェントを二つに分割する。spawn_subagent ツールを追加し、独自のツールセットと独自のコンテキストウィンドウを持つ新しい Claude にスコープを絞ったタスクを委ね、コンパクトなサマリーを返してもらう。Anthropic の『トークン使用量は結果の品質分散の 80% を説明する』という発見の背後にあるパターンを、約 90 行で実装する。→
- EP 06Mini Claude Code · Episode 06: 悪化させたかどうかをついに教えてくれるエバルループシーズンフィナーレ。15 タスクからなる SWE-lite ハーネスを構築し、検証可能なコードタスクに対してエージェントをエンドツーエンドで走らせ、さらにプロンプトキャッシングを配線してイテレーションを安価にする。パスレート、平均ターン数、タスクあたりのコスト——将来リグレッションを検出するためのベースラインとしてピン留めする。→
3 コマンドで起動
clone、install、start。あとは対話するだけ。
git clone https://github.com/claude-community/mini-claude-code
cd mini-claude-code
cp .env.example .env # add ANTHROPIC_API_KEY
npm install
npm start本物のリポジトリのための安全モデル
- apply_patch はバイト単位の context 照合——ドリフトを検知したら適用しない
- 書き込み前に .bak バックアップを作成
- run_bash は 15 秒タイムアウト、出力 20KB 上限
- read_file / list_dir は workspace 外への脱出を拒否
- サブエージェントはさらにサブエージェントを起動できない(再帰禁止)
- 書き込みごとに y/N 確認、ただし MCC_AUTO_APPROVE=1 で無効化
次にやること
評価集は 3 題からスタート。SWE-lite サブセット 15 題 + 固定ベースラインへ育てていく予定。タスク追加は PR 歓迎。