Claude Code 1.x系の変遷 — 何が生まれ何が消えたか
Claude Code 1.xは82バージョンでHooksとSub-agentsという2つの中核機能を生みました。GA直後の姿から何が増え、何が消えたかをchangelog全バージョンから再構成します。
Claude Codeのv1.0.0からv1.0.126までは82バージョンあります。この区間で入ったのはHooks(v1.0.38)とカスタムSub-agents(v1.0.60)という、いまのClaude Codeの土台になっている2つの仕組みです。一方で/allowed-toolsコマンドやclaude configのようにこの区間で退場した機能もあります。公式changelogの82バージョンを1件ずつ読み、生まれたものと消えたものを両方並べ直しました。
GA直後の姿 — 1.0.0で確定していたもの、まだ無かったもの
v1.0.0のchangelogは2行だけです。「Claude Codeが一般提供(GA)になった」ことと、「Sonnet 4とOpus 4を導入した」こと。これがスタート地点でした。
この時点で無かったものを挙げるほうが、いまの感覚とのギャップが分かります。Hooksは無く、カスタムSub-agentsも無く、Output stylesも無い。Plugin SystemもSkillsも、まだ存在しません(どちらも次のメジャーバージョンである2.0系で入ります)。MCP自体はすでに存在していました。1.0.0より前の0.2系でMCPサーバーの追加・OAuth・SSE対応が進んでいたことがchangelogから確認できます。1.xで新設されたのはMCPそのものではなく、MCPを取り巻く周辺機能でした。
直後のv1.0.1ではDISABLE_INTERLEAVED_THINKING環境変数が加わり、interleaved thinkingを任意でオフにできるようになっています。GA初日からモデル出力の細部を調整する余地が用意されていた点は、後にHooksやサブエージェントで拡張されていく設計思想の萌芽と見ることもできます。
生まれた機能 — 1.xで新設された5本の柱
82バージョンの中から、いまも現役で使われている機能の初出だけを抜き出すと次のようになります。
| 機能 | 初出バージョン | 何ができるようになったか |
|---|---|---|
| Hooks | 初出バージョンv1.0.38 | 何ができるようになったかツール実行の前後に任意コマンドを差し込む仕組みが公開 |
| カスタムSub-agents | 初出バージョンv1.0.60 | 何ができるようになったか/agentsで専用コンテキストのサブエージェントを定義 |
| Background commands | 初出バージョンv1.0.71 | 何ができるようになったかCtrl-bでBashコマンドをバックグラウンド実行 |
| Output styles | 初出バージョンv1.0.81 | 何ができるようになったかシステムプロンプトの人格を差し替える仕組みが公開 |
| SlashCommand tool | 初出バージョンv1.0.123 | 何ができるようになったかClaude自身がスラッシュコマンドを呼び出せるように |
Hooksは単発では終わりませんでした。v1.0.41でStopとSubagentStopに分離し、v1.0.48でPreCompact、v1.0.54でUserPromptSubmitが続きます。v1.0.41からv1.0.85のSessionEndまでの間に、5つのフックイベントが追加されました。1つの機能が入って終わりではなく、そこから枝分かれしていく型がここで確立されました。カスタムSub-agentsも同様で、v1.0.62でSub-agentへの@メンション、v1.0.64でモデル指定が続き、単体の機能というより拡張の起点として扱われています。詳しい設定方法はClaude Code Hooks完全ガイドとClaude Code Sub-agents完全ガイドにまとめています。
消えた・置き換わった機能 — 1.xで退場したもの
新設よりも見落とされがちなのが、この区間で終わったものです。本稿が扱うのは1.x区間(v1.0.0〜v1.0.126)に限った退場の記録で、Claude Code全体の廃止・削除機能を版横断で網羅した一覧はClaude Code廃止機能の一覧にまとめています。
| 変更内容 | バージョン | 中身 |
|---|---|---|
/allowed-toolsの廃止 | バージョンv1.0.7 | 中身コマンド名を/permissionsに改名。設定の保存先も.claude.jsonからsettings.jsonへ移行 |
claude configコマンドの非推奨化 | バージョンv1.0.7 | 中身settings.jsonの直接編集を推奨する方針に転換 |
| パイプ入力の非推奨化 | バージョンv1.0.113 | 中身対話モードでのパイプ渡しを非推奨に |
| Proxy-Authorizationヘッダー設定の削除 | バージョンv1.0.37 | 中身ANTHROPIC_AUTH_TOKENやapiKeyHelper経由での上書きを禁止(セキュリティ対応) |
| 拒否時のツール一覧非開示 | バージョンv1.0.124 | 中身権限が拒否されたとき、許可済みツールの一覧をClaudeに伝えなくなった |
/allowed-toolsから/permissionsへの改名は単なる呼び方の変更ではありません。設定の保存先を.claude.jsonからsettings.jsonへ移す、いまのallow・ask・denyルールの原型を固める節目でもありました。この設定モデルがその後どう変わっていったかはClaude Code権限モデルの変遷で扱っています。
周辺機能はどう育っていたか — MCP・SDK・Windows対応
中核機能の陰で、既存の周辺機能も1.xを通じて着実に強化されています。
MCPはv1.0.27でStreamable HTTPサーバーとリモートMCP(SSE/HTTP)のOAuth対応が入りました。続くv1.0.35ではOAuth Authorization Server discoveryに対応しています。v1.0.73で複数設定ファイルの同時指定、v1.0.119ではサーバーごとに動的ヘッダーを渡せるようになりました。プロトコルの骨格は0.2系のうちに固まり、1.xで進んだのは主に接続方式と認証の幅を広げる作業です。
SDKも並行して育っています。v1.0.23でTypeScript版・Python版のSDKが正式リリースされました。v1.0.59とv1.0.68でcanUseToolコールバックによるツール確認が入り、v1.0.77でセッション管理と権限拒否の追跡、v1.0.109で部分メッセージのストリーミングが加わっています。SDK単体の完全な歴史ではなく、CLI本体と同じペースで機能が積み上がっていたことが分かります。
Windows対応はv1.0.51のネイティブ対応(Git for Windows前提)から始まりました。以降もv1.0.56のShift+Tab対応、v1.0.65のシェル環境修正、v1.0.68の権限チェック改善と、細かい修正が続きます。v1.0.93のクリップボード画像貼り付け、v1.0.106のパス権限マッチング統一まで、v1.0.51からv1.0.106までの間に少なくとも5件のWindows専用修正がchangelogに記録されています。クロスプラットフォーム対応は一度で完成せず、地道な積み重ねだったことがこの件数から見て取れます。
地味だが便利になった機能たち
中核機能ほど目立ちませんが、日々の作業を軽くする追加も1.xの中で積み重なっています。v1.0.58でPDFファイルの読み取りに対応し、v1.0.71ではターミナルのプロンプトを自作できる/statuslineが入りました。v1.0.77では「Opus Plan Mode」設定が加わり、計画立案だけOpus・実行はSonnetという使い分けができるようになっています。v1.0.94では/memoryコマンドで読み込んだメモリファイルを直接編集できるようになり、同時に/todosでタスク一覧を確認できるようになりました。
これらは単体では小さな変更ですが、後から振り返ると方向性が見えてきます。Opus Plan Modeの「計画と実行でモデルを分ける」という発想は、v2.0.28のPlanサブエージェントへとつながっていきました。1つの機能がそのまま大きくなるのではなく、小さな設定項目として1.xで先に試され、2.x系で専用の仕組みへ格上げされるパターンがここでも繰り返されています。
HooksとSub-agentsが後から組み合わさっていく理由
1.xで新設された機能を並べて気づくのは、Hooks(v1.0.38)とカスタムSub-agents(v1.0.60)がどちらも1.xの真ん中あたり、22バージョン差で連続して入っている点です。この2つがのちにPlugin Systemの材料になりました。2.0系で公開されたPlugin System(v2.0.12)は「custom commands, agents, hooks, and MCP servers」を配布する仕組みとしてアナウンスされました。Pluginsは新しい実行モデルを作ったわけではありません。1.xで先に生まれていたHooksとSub-agentsを、配布可能な単位にまとめ直した機能です。1.xの後半に生まれた2つの機能が、2.x系の主力機能の材料になっています。
Output stylesの扱いはもっと不安定でした。v2.0.30で一度非推奨になり、コミュニティの反応を受けてv2.0.32で撤回されています。さらに単体の/output-styleコマンドはv2.1.73で非推奨、v2.1.91で削除されました。機能そのものはoutputStyle設定として残っていますが、呼び出し方は1.xの頃と別物です。切り替え方の現行手順はClaude Code output styleの切り替えは/configで行うにまとめています。
主要バージョン早見表
| バージョン | 出来事 |
|---|---|
v1.0.0 | 出来事GA、Sonnet 4 / Opus 4 |
v1.0.7 | 出来事/allowed-tools→/permissions、claude config非推奨 |
v1.0.38 | 出来事Hooks公開 |
v1.0.51 | 出来事ネイティブWindows対応(Git for Windows前提) |
v1.0.60 | 出来事カスタムSub-agents公開 |
v1.0.81 | 出来事Output styles公開 |
v1.0.123 | 出来事SlashCommand tool追加 |
v1.0.126 | 出来事1.x系の最終バージョン |
よくある質問
1.x時代のMCPは今と何が違いますか
大きくは変わっていません。Streamable HTTP対応(v1.0.27)やOAuth Authorization Server discovery(v1.0.35)など、1.xでMCPに加わったのは接続方式の拡張が中心です。プロトコル自体の土台は0.2系で既に固まっていました。
なぜHooksとSub-agentsだけ別記事になっていますか
1本の記事に収めると設定項目・イベント一覧・実例が薄くなるためです。導入時期の解説は本稿が、設定項目やイベント一覧の詳細は上記の完全ガイド2本がそれぞれ担当します。
1.x時代のSDKは今のAgent SDKと同じものですか
名前も実体も別物です。1.x時代のSDKはv2.0.0で「Claude Agent SDK」に改称され、v2.0.25ではレガシーエントリポイント自体が削除されています。1.x当時のコードをそのまま使うことはできません。
各バージョンの全項目を見たい場合はどこを読めばいいですか
本稿は機能の生まれ・消えに絞った横断視点です。1バージョンずつの全変更点はv1.0前半総まとめ・v1.0後半総まとめ・v0.2系の歩みの3本に分けて記録しています。
まとめ
1.xの82バージョンは、Hooks(v1.0.38)とカスタムSub-agents(v1.0.60)という2つの拡張ポイントを作った期間でした。同時に/allowed-toolsやclaude configのような初期の操作系は姿を消し、settings.json中心の設定モデルに統一されています。2.0系のPlugin Systemは「commands, agents, hooks, MCP servers」を配布する仕組みとして登場しました。これも、1.xで先にHooksとSub-agentsが独立した機能として固まっていたからこそ成立しています。いま使っている機能がどのバージョンで生まれたかを追うと、2.x以降の設計判断の多くが1.x後半にすでに種を持っていたことが見えてきます。1.xから2.0系へ上げる際に何が壊れるかはClaude Code 2.0で何が変わったかにまとめました。