本文へスキップ
Claude Media
Claude Code v0.2系の歩み — アルファ期からv1.0 GAまでの記録

Claude Code v0.2系の歩み — アルファ期からv1.0 GAまでの記録

Claude Code v0.2.21 から v0.2.125 まで、アルファ期37バージョンの主要変更を1本にまとめ、現行v2系の設計思想にどう連なるかを読み解きます。

読了目安 約7

このリリースで何ができるようになるか

公式に公開されている最古のClaude Codeはv0.2系で、本記事はv0.2.21からv0.2.125までの37バージョンを1本にまとめた総括です。アルファ期に入った機能の多くは、現行v2系の中核としてそのまま生き残っています。本まとめを読むことで、次の3つが見えてきます。

  • v2系の中核機能(スラッシュコマンド / MCP / Memory / Todo / thinking)が、アルファ期にすでに出揃っていたことが分かる: 「これはv2の新機能か、それともアルファからあるのか」を判別できる
  • MCPの3スコープ(local / user / project)がv0.2.49〜v0.2.50で固まった経緯が見える: 現在も同じスコープモデルが使われているため、設計の歴史的背景が分かる
  • v1.0 GA直前にBreaking changeが意図的に投入された流れが分かる: v0.2.117 / v0.2.125のJSON出力・ログ仕様変更は、v1で長く維持できる形に正すための整地作業だった

あなたの開発フローはどう変わるか

v2系のchangelogを追うときの解像度が上がる

v2系のリリースノートを読むときに「この機能はアルファ期からあるのか、GA以降に追加されたのか」という視点が持てます。例えばauto-accept(v0.2.47)thinking mode(v0.2.44)#記法のメモリ追加(v0.2.54)はすべてアルファ期からの機能で、v2系の新規ではありません。changelog翻訳に流されない読み方ができます。

MCP設定のスコープ理解が立体的になる

現在のClaude Codeでも生きている「local / user / project」の3スコープは、v0.2.49〜v0.2.50の2版で確立しました。.mcp.jsonをリポジトリにcommitして共有できる仕組みも同時期に固まっています。MCP設定で詰まったときに、なぜ3スコープなのかという背景が分かれば、設定方法の選択がしやすくなります。

Claude Codeのリリース戦略パターンが読める

アルファ期は「実験的に出してから整える」運用が随所に見えます。MCPウィザードとコマンドの二系統併存(v0.2.108でwizard側をdeprecate)、DEBUG=trueのような一般的すぎる環境変数名(v0.2.125でANTHROPIC_LOG=debugに差し替え)など、当初から完璧を目指さず段階的に正していく形です。v1.0 GAはこの「実験的に出した部分」を破壊的変更も恐れずに整地した到達点だった、と位置付けるのが自然でしょう。同じパターンはv2系でも繰り返されており、リリースの呼吸が読めます。

Claude Codeの始まり

公式に公開されている最古のバージョンはv0.2.21で、変更点は「/commandsのファジーマッチ対応」の1行だけです。つまりこの時点で既にスラッシュコマンドは存在しており、v0.2.21より前に非公開のアルファ内部リリースが積み重なっていたと推測できます。公開バージョンが0.2.xから始まっていることから、0.1.x以前の試行錯誤は社内配布や限定プレビューで行われ、公開窓口が開いたタイミングで0.2.xの連番に乗せられた、という流れが自然です。

最初の公開版で「スラッシュコマンドが既に存在する前提で、使い勝手を上げるファジーマッチを足す」という成熟した粒度の変更が入っている点は注目に値します。Claude Codeが世に出た瞬間の姿は、既にある程度の完成度を備えたCLIツールだったと読めそうです。

主な変更点(テーマ別)

37バージョンの変更点を機能領域で切ると、おおむね5つのテーマに集約できます。

対話体験の基礎が整う

v0.2.26でword-level diff、v0.2.30でANSIカラーテーマが入り、ターミナルでの視認性は初期から意識されていました。v0.2.34のVimバインディング、v0.2.47のTab補完・Shift+Tabでauto-accept切替・会話の自動圧縮(auto-compact)、v0.2.54のMemoryへの#即追加とCtrl+rでツール結果の全文展開、v0.2.61のj/kナビゲーションまでで、アルファ期の段階で「ターミナル上のAIエージェントとしてのUX」はほぼ完成していたと言えます。

スラッシュコマンドとカスタマイズ

v0.2.31で.claude/commands/配下のMarkdownファイルをカスタムスラッシュコマンドとして認識する仕組みが導入されました。これは現在のプロジェクト配下.claude/commands/方式と同じ設計です。v0.2.26では/approved-toolsでツール権限を管理する仕組みが入り、v0.2.37では/release-notesコマンドが追加されます。v0.2.67で.claude/settings.jsonに権限ルールを保存・共有できるようになり、プロジェクト単位の設定共有の原型がここで固まりました。

MCP統合の立ち上げ

MCP(Model Context Protocol)関連の変更はアルファ期の中盤から一気に増えます。v0.2.31の--mcp-debug、v0.2.32の対話型MCPセットアップウィザード(claude mcp add)、v0.2.36のclaude mcp add-from-claude-desktop / add-json、v0.2.41のMCP_TIMEOUT環境変数、v0.2.54のSSE transport、v0.2.75のclaude --mcp-config <path>による一度きり起動、v0.2.106のSSEカスタムヘッダ、と段階的に厚みを増していきました。

注目すべきはv0.2.49〜v0.2.50のスコープ再設計です。この2版で「local(手元のみ)/ user(全プロジェクト横断)/ project(.mcp.jsonをリポジトリにcommit可能)」という3層が確立しました。現在のClaude Codeでも同じ3スコープが使われており、アルファ期に決まったモデルがそのまま残っています。

思考・検索・メモリ機能の追加

v0.2.44でthinking modeが追加されました。「think」「think harder」「ultrathink」と頼むだけで内部の思考予算を切り替えるインターフェースは、いま見ても独特です。v0.2.53のweb fetch、v0.2.70のcurlなどのネットワークコマンドと並列web検索、v0.2.105のネイティブweb検索へと、外部情報へのアクセス経路が段階的に整っていきます。

メモリ・状態管理では、v0.2.54の#記法、v0.2.93のclaude --continue / claude --resumeによる会話再開Todo listの導入が大きな転機です。「セッションをまたいで仕事を続ける」現在の感覚はv0.2.93で確立しました。v0.2.107ではCLAUDE.mdからの@path/to/file.md importも追加され、メモリの構造化の下地が整います。

ツール実行と非対話モードの成熟

v0.2.74でTaskツールがwriteとBash実行に対応、v0.2.82で--disallowedToolsフラグとツール名の整理(LSTool→LS、View→Read等)が入ります。非対話モード(-p)はv0.2.66で--output-format=stream-jsonのストリーミング対応が入りました。v0.2.75ではEnterキューによるメッセージ先行送信画像のドラッグ&ドロップ / 貼り付け@ファイルメンションという、いま見ても体験の核となる操作が同時に入っています。

v1.0 GAへの布石

アルファ期の終盤(v0.2.96以降)からは、研究開発から製品化へ舵を切る兆しが見えます。

  • v0.2.96: Claude Maxサブスクリプションで利用可能に(APIキーだけでなく月額プランから使える)
  • v0.2.108: リアルタイムステアリング(作業中のClaudeにメッセージで方向転換)、BASH_DEFAULT_TIMEOUT_MS / BASH_MAX_TIMEOUT_MS、MCP wizard UIのdeprecate
  • v0.2.117: --print JSON出力のnested message objects化(破壊的変更)、--debug
  • v0.2.125: Bedrock ARNのエスケープ撤去(破壊的変更)、DEBUG=trueANTHROPIC_LOG=debugに置き換え

v0.2.117とv0.2.125は明示的にBreaking changeとラベルが付いた最初期の変更で、JSON出力・ログ仕様・Bedrock連携の引数形式を、v1.0系で長く維持できる形に正したと読めます。v0.2.96のClaude Maxサブスクリプション対応も、アルファの「APIキー前提の開発者ツール」から一般開発者向け製品への転換点です。細かなバグ修正を潰しつつ、GAに必要な安定性が整えられていきました。

主要版の早見表

バージョン何がここで入ったか
v0.2.21公開changelog最古。/commandsファジーマッチ
v0.2.31カスタムスラッシュコマンド(.claude/commands/)
v0.2.44thinking mode(think / think harder / ultrathink)
v0.2.47Tab補完、Shift+Tabでauto-accept、会話auto-compact
v0.2.49-50MCPスコープ再設計(local / user / project)
v0.2.75Enterキュー、画像貼り付け、@ファイルメンション
v0.2.93--continue / --resume、Todo list
v0.2.96Claude Maxサブスクリプションで利用可能に
v0.2.105ネイティブweb検索、/status
v0.2.107CLAUDE.mdでの@path/to/file.md import
v0.2.108リアルタイムステアリング、bash timeout環境変数
v0.2.125Bedrock ARNエスケープ撤去、ANTHROPIC_LOG=debug

黎明期を振り返って見えるClaude Codeの出発点

37バージョンを俯瞰すると、Claude Codeがアルファ期に選び取った3つの方向性が浮かび上がります。

第一に、「ターミナル + CLI」というインターフェースに賭けたことです。v0.2.30のANSIカラー、v0.2.34のVimバインディング、v0.2.47のTab補完とauto-acceptで、ターミナル文化を前提にした操作系を早期に固めました。「開発者は結局ターミナルに帰ってくる」という判断と読めます。

第二に、MCPを早期から第一級市民として扱ったことです。v0.2.31で--mcp-debugが入った時点で、MCPは外付けプラグインではなく内蔵の拡張プロトコルとして位置付けられていました。v0.2.49〜v0.2.50のスコープ再設計が現在まで生き残っているのは、早い段階で「プロジェクト共有可能なMCP設定」というユースケースを当てにいったためと言えそうです。

第三に、設定・メモリ・セッションをファイルシステムに寄せたことです。.claude/commands/.claude/settings.jsonCLAUDE.mdとimport、.mcp.jsonといった仕組みはいずれもv0.2系で導入され、「プロジェクトディレクトリを開けば設定が追える」状態を初期から志向していました。現在のClaude Codeのプロジェクト単位のポータビリティの源流です。

逆に、アルファ期には研究開発色が色濃く残っていたことも見て取れます。MCPウィザードとコマンドの二系統併存(v0.2.108でwizard側をdeprecate)、DEBUG=trueのような一般的すぎる環境変数名(v0.2.125でANTHROPIC_LOG=debugに差し替え)など、実験的に出してから整える運用が随所に見えます。v1.0 GAはこの「実験的に出した部分」を破壊的変更も恐れずに整地した到達点だった、と位置付けるのが自然でしょう。

v1.0 GA以降の動きはv1系初期のリリースまとめで辿れますが、読み比べると「アルファ期で作った素材の磨き直し」がGA以降の主旋律であることが見えてきます。v2系のネイティブバイナリ化・サンドボックス・Agent Teamsも、v0.2系で決まった骨格の上に新しい層を積んでいるのであって、ゼロから設計し直したわけではありません。

まとめ

  • アルファ期の37版に、現行v2系の中核機能の多くが出揃っていた: スラッシュコマンド / MCP / Memory / Todo / thinking / auto-compact / リアルタイムステアリング
  • MCPの3スコープはv0.2.49〜v0.2.50で固まり、現在もそのまま生きている: Claude Codeの設計判断の中で最も寿命が長い決定の1つ
  • v1.0 GAは「実験的に出した部分の整地」だった: v0.2.117 / v0.2.125のBreaking changeはGAに向けた地ならし
  • v0.2系を読むと、v2系の設計判断の歴史的文脈が立体的に見える: changelog翻訳に流されない読み方ができる

アルファ期から触っているユーザは少数派ですが、現行v2系の理解を深める素材として、本記事は「機能の出所」を俯瞰する地図として活用できます。

この記事を共有:XLinkedIn