mcpField
D
devcoach

devcoach

ローカル
ultimaphoenix.github.io開発ツール53 週間前に更新

devcoach について

devcoachは、AIコーディングエージェントを使う開発者向けのローカル学習支援MCPサーバーです。習得済みの知識を記録し、技術タスクの完了後に関連する短いレッスンを提示します。データはローカルのSQLiteファイルに保存されます。

主な機能

  1. 01完了した技術タスクに基づくレッスン
  2. 02知識プロフィールによる重複回避
  3. 03テレメトリーなしのローカルSQLite保存
  4. 04コマンドラインとウェブダッシュボード
  5. 05一部エージェント向けの自動配信フック

活用シーン

  1. 01エージェントが書いたコードの概念を学ぶ
  2. 02タスク後に不慣れな技術内容を復習する
  3. 03セッションをまたいでレッスンをローカル管理する

MCP 対応

devcoachはローカルのstdio MCPサーバーとして動作し、MCP対応エージェントに学習支援機能を提供します。一部エージェントでは、フックとスキルによるレッスンの自動配信にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ultimaphoenix-devcoach": {
"command": "npx",
"args": [
"-y",
"devcoach"
]
}
}
}
起動コマンドnpx -y devcoach

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmdevcoach2.7.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

devcoach

devcoach — progressive technical coaching, right inside your AI agent

npm CI Quality Gate Coverage Node Docs License

AI が作業している間も、鋭い感覚を保ちましょう。

devcoach は Claude Code、Claude Desktop、Gemini CLI (ベータ版)、Codex CLI (ベータ版)、Cursor、Windsurf、その他の MCP 対応ツールに接続します。エージェントがタスクを終えると、devcoach はそのタスクから まだ知らないこと を 1 つ教えます。すでに知っていることを正確に把握してスキップし、あなたのレベルに合わせてレッスンを提示するため、一般的なチュートリアルも、繰り返されるトピックも、開く必要のあるものもありません。

すべて ローカル で動作します。データがマシンの外に出ることはありません。~/.devcoach/coaching.db にある SQLite ファイル 1 つだけです。

公式の Model Context Protocol TypeScript SDK、Node の組み込み node:sqlite、Hono(ウェブダッシュボード)、Commander(CLI)を基盤に構築されています。Node.js ≥ 24 が必要です。


devcoach を選ぶ理由

AI エージェントは今やコードの大部分を記述しています。その結果、理解が浅くても、より多くのものを簡単にリリースできるようになりました。devcoach は、エージェントが完了したタスクを、まだ知らないことを学ぶための短いコンテキストに沿ったレッスンに変え、作業を進めながら学び続けられるようにします。さらに重要なのは、AI の能力が高まるにつれて、成果物を 検証する スキルが希少になるという点です。そして、その能力を保つには、実践し続けるしかありません。

→ devcoach が生まれた理由


仕組み

flowchart TD
    A([Task completed]) --> B{"stop-hook:<br/>paced + rate limit ok?"}
    B -->|not yet| Z(["Silent — counter +1"])
    B -->|due| C["Cue: activate the devcoach skill"]

    subgraph skill["devcoach skill"]
        C --> D{"Technical work?"}
        D -->|no| S[skip_lesson]
        D -->|yes| E[Select topic & depth]
        E --> G[log_lesson]
        G --> F[Print lesson card]
    end

    S --> Y(["Silent — pacing re-armed"])
    F --> H(["Done — counter reset"])
    F -.->|prompts| U(["You: ✅ / 💡 / ❌"])

→ 判断の流れ全体:セッション開始 · レッスン選択 · 深さの調整


プライバシーを設計の中心に

すべてがマシン上にとどまります。テレメトリーも、アカウントも、外部への通信もありません。SQLite ファイルが 1 つあるだけです。

→ プライバシーとセキュリティ


インストール

devcoach はローカルで動作します。エージェントの実行環境となるマシン上の ~/.devcoach/coaching.db にすべてを保存する、stdio MCP サーバーです。Claude Code、Claude Desktop、Gemini CLI(ベータ版)、Codex CLI(ベータ版)で動作しますが、claude.ai のウェブ版では動作しません(ホスト型/リモートコネクターのみをサポートしています)。

Node.js ≥ 24 が必要です(devcoach は組み込みの node:sqlite モジュールを使用しており、このモジュールは Node 24 以降でのみ利用できます)。

作業スタイルに合わせて選んでください。各セクションだけでインストールと接続が完結します。

  • ターミナルに慣れている開発者 → Homebrew — brew install を 1 回実行するだけで、devcoach CLI も利用できます。
  • ワンクリックで、ターミナルを使わずにセットアップしたい方 → Claude Code プラグインまたは.mcpb 拡張機能。
  • レジストリ対応の MCP クライアントをお使いですか? devcoach は公式の MCP Registry に io.github.UltimaPhoenix/devcoach として登録されています。そこから直接インストールできます。
  • その他(npx、手動設定、ほかのエージェント、claude.ai のウェブ版)については、**その他のインストール方法**をご覧ください。
Homebrew(開発者におすすめ)

macOS/Linux 向けです。tap を一度追加して信頼済みに設定し、インストールしてから接続します。devcoach CLI も利用できるため、devcoach ui と CLI を npx 接頭辞なしで実行できます。

# 1. Add the tap — registers github.com/UltimaPhoenix/homebrew-tap with Homebrew
brew tap UltimaPhoenix/tap

# 2. Trust the whole tap — required when Homebrew enforces HOMEBREW_REQUIRE_TAP_TRUST
brew trust --tap UltimaPhoenix/tap

# 3. Install
brew install devcoach

# 4. Connect (Homebrew puts `devcoach` on your PATH — no `npx -y` prefix needed)
devcoach install

brew tap はサードパーティーのリポジトリを登録します。brew trust --tap はそのリポジトリを信頼済みとして設定し、HOMEBREW_REQUIRE_TAP_TRUST が設定されている場合に Homebrew がそのフォーミュラを読み込めるようにします。どちらも一度だけ実行します。後で更新するには、brew upgrade devcoach を実行してから、もう一度 devcoach install を実行してください。Homebrew が更新するのはバイナリだけです。エージェントに組み込まれたフックとスキルは、2 回目のコマンドで更新されます(Claude Code プラグインなら自動で更新されます。そのため、Claude Code ユーザーにはプラグイン+Homebrewの組み合わせが最適です。プラグインがコーチング機能の組み込みを担い、Homebrew が CLI を追加するので、devcoach install は不要です)。1 行で実行する場合は、brew install UltimaPhoenix/tap/devcoach です(Homebrew で tap の信頼設定が必須の場合は、先に brew trust --tap UltimaPhoenix/tap を実行してください)。このフォーミュラには depends_on "node" が宣言されているため、Homebrew が最近の Node を自動的にインストールします。

Claude Code プラグイン(Claude Code におすすめ)

Claude Code に devcoach を追加する最も簡単な方法です。ワンクリックで、設定は不要です。すべて(MCP サーバー+自動コーチング用 Stop フック+スキル)が含まれているため、devcoach install も実行しないでください(実行すると Stop フックが二重に登録されます)。

# Add the marketplace once, then install (you can install any UltimaPhoenix plugin from it later)
/plugin marketplace add UltimaPhoenix/claude-plugins-marketplace
/plugin install devcoach@ultimaphoenix

MCP サーバー、フック、スキルはインストール時に有効になります。再起動は不要です。Claude Code から /devcoach:ui を実行するか、open_ui ツールを使うよう依頼すれば、ウェブダッシュボードを開けます。/devcoach:share と /devcoach:import でレッスンを共有できます。/devcoach:course を使うと、内容についていけなかったレッスンを、手順を追ったコースにできます。後で更新するには、/plugin marketplace update ultimaphoenix を実行してください。今後の機能をいち早く試したい場合は、ベータチャンネルを使うと、最新のカナリア版が devcoach@ultimaphoenix-beta としてインストールされます。

このプラグインでは devcoach CLI は追加されませんが、Claude を介さずにダッシュボードやデータを使いたい場合には、CLI が便利な補助ツールになります。devcoach ui、stats、lessons、share/import、backup は npx -y devcoach … で実行できます。また、Homebrew または npm i -g devcoach でインストールすれば、devcoach だけで実行できます。ただし、プラグインと併用して devcoach install を実行しないでください。フックはプラグインが管理します。

オフラインインストール(マーケットプレイスにアクセスできない場合)
# Download devcoach-plugin-<version>.zip from a GitHub Release, unzip, then:
/plugin marketplace add /path/to/unzipped-folder
/plugin install devcoach@devcoach

仕組みについては、Claude Code プラグインをご覧ください。

Claude Desktop 拡張機能(.mcpb)(Claude Desktop に推奨)— ベータ

Claude Desktop の組み込みランタイムで動作する単一のバンドルです。Node やターミナルは必要ありません。すべての GitHub リリースに含まれています:

  1. 最新リリースから devcoach-<version>.mcpb をダウンロードします
  2. Claude Desktop → Settings → Extensions → Install Extension… → .mcpb を選択します

バンドルは自己署名されているため、Claude Desktop では未検証の発行元としてインストールされます(検証済みの署名には、実際のコード署名証明書が必要です)。ソースからビルドしますか?

npm run mcpb        # → dist-mcpb/devcoach-<version>.mcpb   (npm run mcpb:sign self-signs it)
その他のインストール方法 — ベータ
npx / npm CLI(任意の MCP エージェント — インストール不要)

インストールは不要です。npx が必要に応じて devcoach を実行します。Claude Code と Claude Desktop では、1 つのコマンドで MCP サーバーを登録し、レッスンの自動配信(Stop フック)を設定して、コーチングスキルを ~/.claude/skills/devcoach/ にインストールします:

npx -y devcoach install

実行後、エージェントを再起動してください。グローバルバイナリを使いますか? npm install -g devcoach を実行してから、devcoach install を実行します(すべての箇所で npx -y のプレフィックスを省略できます)。devcoach のアップグレード後は、devcoach install を再実行してスキルを更新してください。古いバージョンの場合は devcoach stats が通知します。

カナリアビルド: develop ブランチにマージされた変更はすべて、next タグで npm に公開されます。npx -y devcoach@next(または npm install -g devcoach@next)を実行すると、未リリースバージョンを利用できます。ドキュメントはultimaphoenix.github.io/dev-coach/nextにあります。latest は引き続き最後のリリースを指します。

Claude Code 用の MCP 手動設定(devcoach install を利用できない場合)

オプション A — claude mcp CLI を使用(推奨):

claude mcp add devcoach npx -- -y devcoach mcp

# all projects (user scope)
claude mcp add --scope user devcoach npx -- -y devcoach mcp

オプション B — ~/.claude.json を直接編集:

{ "mcpServers": { "devcoach": { "type": "stdio", "command": "npx", "args": ["-y", "devcoach", "mcp"] } } }

レッスンを自動配信するには、~/.claude/settings.json にフックを追加します。stop-hook は各ターンの後にレッスンが必要かどうかを判断し、必要な場合は prompt-hook が事前にモデルに準備を促します:

{
  "hooks": {
    "Stop": [
      { "hooks": [{ "type": "command", "command": "npx -y devcoach stop-hook", "timeout": 60 }] }
    ],
    "UserPromptSubmit": [
      { "hooks": [{ "type": "command", "command": "npx -y devcoach prompt-hook", "timeout": 30 }] }
    ]
  }
}

ヒント:グローバルインストールを行うと devcoach が PATH に追加されるため、npx -y のプレフィックスを省略できます。devcoach install はこれを自動検出します。 Claude Code プラグイン(上記)を使用していますか? プラグインがフックを提供するため、ここでフックを追加する必要はありません。

Gemini CLI — コーチングの完全なループ(フック+スキル)— ベータ

1 つのコマンドで MCP サーバー、AfterAgent/BeforeAgent レッスンフック、コーチングスキルを登録します:

npx -y devcoach install --gemini

または、同梱のGemini 拡張機能をインストールします。最新リリースから devcoach-gemini-extension-<version>.zip をダウンロードして解凍し、gemini extensions install <folder> を実行します。2 つの方法からどちらか一方を選んでください(どちらも同じフックを提供します。devcoach は拡張機能を検出すると、重複をスキップします)。詳細:docs/install/gemini-cli.md。

Codex CLI — コーチングの完全なループ(フック+スキル)— ベータ

1 つのコマンドで MCP サーバー(codex mcp add)、レッスンフック(~/.codex/hooks.json の Stop/UserPromptSubmit)、コーチングスキル(~/.agents/skills/)を登録します:

npx -y devcoach install --codex

次回の実行時に、Codex は新しいフックを信頼するよう一度求めます。承認しないと、コーチングは機能しません。詳細:docs/install/codex.md。

その他の MCP エージェント(Cursor、Windsurf、Cline、Continue、Zed など)

エージェントの MCP 設定ファイルに次の内容を追加します(または、クライアントが MCP Registry を参照できる場合は、そこから io.github.UltimaPhoenix/devcoach をインストールします):

{
  "mcpServers": {
    "devcoach": {
      "command": "npx",
      "args": ["-y", "devcoach", "mcp"]
    }
  }
}
| エージェント | 設定ファイル | |-------|-------------| | **Cursor** | `~/.cursor/mcp.json` | | **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | | **Cline**(VS Code) | VS Code Settings → `cline.mcpServers` | | **Continue.dev** | `~/.continue/config.json` → `mcpServers` | | **Zed** | `.zed/settings.json` → `context_servers` |

Stop hooks(各タスク完了後の自動レッスン配信)は、Claude Code、Gemini CLI、Codex CLI で利用できます。この表にあるエージェントは、すべての MCP ツールとリソースに完全にアクセスできます。コーチングは手動で開始するか、エージェントにプロンプトを与えて開始できます。

claude.ai web(スキルのコピー — MCP なし)

Claude.ai は MCP サーバーに対応していません。代わりに、コーチングの指示をスキルとしてインストールしてください。

  1. assets/SKILL.md の内容をコピーします
  2. claude.ai → Settings → Custom instructions(またはプランに応じて Skills)に移動します
  3. 内容を貼り付けて保存します

これにより、MCP ツールなしで claude.ai にコーチングの振る舞いを設定できます(レッスンの記録とプロフィールの追跡は機能しません)。

スキルを最新の状態に保ってください。 Claude Code / Claude Desktop では、スキルは MCP プロンプトまたはプラグイン経由で自動的に提供され、常に最新です。手動で claude.ai にコピーした場合は、devcoach の更新ごとに最新の SKILL.md を再度貼り付けてください。


オンボーディング

エージェントが初めて devcoach に接続すると、プロフィールがまだ設定されていないことを検出し、別のコマンドを実行しなくても、その場で設定手順を案内します。(ターミナルを使いたい場合は、devcoach setup で同じウィザードを実行できます。)

→ オンボーディングの詳しい手順

フェーズ 1 — プロフィールの設定方法を選ぶ

devcoach は、ローカルにある Claude Code の全履歴(エージェントが作業したすべてのプロジェクトを、最近のアクティビティ順に並べたもの。使用するのはファイルとアクティビティのメタデータのみで、プロンプトのテキストは使用しません)をスキャンし、プロフィールを作成する 4 つの方法を提示します。

devcoach: Your knowledge profile isn't set up yet. I scanned 9 of your Claude Code
projects and found TypeScript (dev-coach), Java (discordbot), Swift (blueprince).

  1. Automatic (strongly recommended) — build the profile from that, no questions asked
  2. Automatic (Deep)   — also read my local session transcripts for a sharper profile
  3. Guided             — a step-by-step conversation about my stack
  4. Import backup      — restore a devcoach backup zip
フェーズ 2 — プロフィールを作成する
自動(強く推奨)

履歴から検出されたスタックをもとに、トピック、自信度スコア、グループ、コーチングノートブックを含むプロフィール全体を一度の処理で作成します。質問はありません。作成後に、チャット、CLI、ダッシュボードで結果を確認し、調整できます。

自動(詳細)

オプトイン方式です。「自動」で行うすべての処理に加えて、別のサブエージェントがローカルの Claude Code セッションのトランスクリプト(~/.claude/projects/)から実際の会話テキストを読み取り、可能な限り正確なプロフィールとノートブックを作成します。まず、直近 3 か月分を対象にメタデータのみの事前チェックを行います。プロジェクトが 8 件を超える場合、期間を狭めるか、最近の 25 件を対象にするか、特定のプロジェクトを選ぶかを devcoach が尋ねます。エージェントは事前に説明します。この方法では、メタデータのスキャンよりも多くのローカル履歴をモデルと共有します。共有は、このマシン上で、セットアップ時に一度だけ行われます。

ガイド付き

自分でスタックを説明したい場合、devcoach が各テクノロジーと自信度(1~3 は学習中、4~6 は一通り扱える、7~9 は得意、10 は専門家)について尋ねます。次に、トピックのグループ分けを一緒に決めて、プロフィールを保存します。

バックアップをインポート

新しいマシンを使う場合や、再インストールする場合はこちらを選びます。バックアップ zip のパスを指定すると、ナレッジマップ、レッスン、設定、ノートブックを含むプロフィール全体がすぐに復元されます。

フェーズ 3 — プロフィールの保存後、コーチングを開始

保存後、エージェントは、ナレッジマップの構成に沿ってグループ分けされた設定内容を表示します。「自動」モードでは、これが初めてプロフィールを確認する機会となるため、この時点で変更を依頼できます。

✓ Profile saved — 24 topics across 6 groups.

### Languages
- **typescript** — 7/10
- **java** — 5/10

### DevOps
- **docker** — 7/10
- **github_actions** — 6/10

### Other
- **regex** — 4/10

Change any of this later in chat ("set my Java confidence to 7"), with the
`devcoach` CLI, or in `devcoach ui`.

これで完了です。作業に戻りましょう。コーチングはバックグラウンドで静かに行われます。


最初のレッスン

いつもどおりタスクに取り組みます。エージェントの応答後、devcoach がレッスンを追加します。

You: Refactor this endpoint to handle concurrent requests properly.

Agent: [refactors the code, explains the changes]

### ──────── 🎓 devcoach ────────
**Promise.allSettled vs Promise.all — don't let one failure sink the batch** · TypeScript · Mid

Promise.all rejects the moment any promise rejects, and you lose the results of
the ones that already succeeded. For independent work (fan-out fetches, batch
writes) that's usually the wrong default.

Promise.allSettled always resolves, giving you a status for every promise:

    const results = await Promise.allSettled(ids.map(fetchUser));
    const ok = results.filter(r => r.status === "fulfilled").map(r => r.value);

Use Promise.all when the tasks are genuinely all-or-nothing; reach for
allSettled when partial success is meaningful and you want to report failures.

💡 *Senior tip:* for coordinated work that *should* cancel siblings on failure,
an AbortController shared across the requests gives you all-or-nothing with
prompt cancellation — the structured-concurrency middle ground.
### ──────── typescript · mid ────────

Did that land? ✅ knew it (y) · 💡 understood (u) · ❌ couldn't follow (n)

y(すでに知っていた — 自信度が上がります)、u(初めて知り、分かりやすかった)、n(情報量が多すぎる — 段階的なコース用の種として保存)と返信すると、今後のレッスンに反映されます。返信せずにそのまま進めてもかまいません。返信がなければ変更はありません。


スクリーンショット

知識マップ(ここでカスタマイズ)レッスン履歴設定
知識マップレッスン設定
一度に一つずつ進めるコース
コースページ

コンテキストとパーソナライズ

各レッスンには、どこで起きたかが記録されます。プロジェクトフォルダー、リポジトリ、ブランチ、コミットハッシュ、エディターなどです。~/.devcoach/learning-state.md にある学習ノートでコーチングをカスタマイズすることもできます。これにより、devcoach が優先するトピックやレッスンの深さが調整されます。

→ コーチングノート · ウェブダッシュボードガイド


ウェブダッシュボード

ダッシュボードをいつでも開いて、進捗を確認したり、プロフィールを編集したり、設定を管理したりできます。

npx -y devcoach ui          # → http://localhost:7860 (printed as a clickable link; Ctrl+C stops it)
npx -y devcoach ui --open   # …and open it in your browser
npx -y devcoach ui --stop   # stop a running dashboard, e.g. one your agent started

Claude Code プラグインを使用していますか?Claude Code で /devcoach:ui と入力してください。インストールは不要です(/devcoach:ui stop で閉じます)。

ページできること
知識マップすべてのトピックと信頼度バーを確認し、スコアを直接調整できます
レッスンレッスン履歴全体を閲覧、絞り込みできます。レッスンにスターを付けて後で見直したり、チームメイトと共有したり、チームメイトのレッスンをインポートしたりできます
設定レート制限の変更、プロフィールのインポート/エクスポート、バックアップの作成ができます

詳しいリファレンス:docs/usage/web-ui.md


レッスンの共有

自分に響いたレッスンは、コピー可能なテキスト(カードと devcoach:lesson:1:… の行)、サーバー不要のリンク、または .devcoach.md ファイルとして、ワンアクションでチームメイトに共有できます。受け取った人が自分の devcoach に貼り付ける、リンクをクリックする、またはファイルをドロップすると、レッスンはログにあなたから共有されたものとして追加され、1日の上限には影響しません。発生場所を含めない限り、共有されるのはレッスンだけです。ローカルパスが共有されることはありません。

devcoach share --last            # or --link / --file, --with-context, --by "Ada" / --anonymous
devcoach import                  # reads the clipboard; or pass a code, link, URL, file, or - for stdin

ダッシュボードからは、レッスンの ↗ Share と、Lessons ページの + Import(.devcoach.md をどこにでもドロップできます)を使います。エージェントには「最後のレッスンを共有して」「この devcoach レッスンをインポートして:…」と指示します。プラグインでは /devcoach:share と /devcoach:import を使います。詳しいガイド:docs/usage/sharing.md


CLI リファレンス

CLI は、コーチングデータの照会と管理に使う補助的なインターフェースです。すべての機能はウェブダッシュボードからも利用できます。詳しい使い方は devcoach --help または devcoach <command> --help を実行してください。

コマンド説明
devcoach installClaude Code(MCP + フック + スキル)/Claude Desktop に登録します
devcoach profile信頼度バー付きの知識マップを表示します
devcoach stats概要:レッスン数、最も苦手/得意なトピック
devcoach lessons絞り込み機能付きでレッスン履歴を閲覧します
devcoach lesson <id>1件のレッスン全体を表示します
devcoach star <id>レッスンにスターを付けます
devcoach feedback <id> <know|understood|dont_know|clear>レッスンに対する回答を記録します
devcoach share [id] [--last] [--link] [--file]レッスンをチームメイトに共有します(コピー可能なテキスト、リンク、または .devcoach.md)
devcoach import [source]共有されたレッスンを追加します。コード、リンク、URL、ファイルを指定できます。引数を省略するとクリップボードを読み取ります
devcoach set max_per_day <n>1日の最大レッスン数(既定値は 2)
devcoach set min_gap_minutes <n>レッスン間の分数(既定値は 240)
devcoach backup [file.zip]知識、レッスン、設定、ノートをエクスポートします
devcoach restore <file.zip>バックアップから復元します
devcoach setupターミナルでオンボーディングウィザードを実行します
devcoach uiウェブダッシュボードを開きます

(グローバルにインストールしていない場合は、先頭に npx -y を付けてください。)詳しいリファレンス:docs/usage/cli.md


設定

デフォルトでは、1 日あたり最大 2 レッスン、間隔は少なくとも 4 時間です。 コーチングをもっと受けたいですか? それとも減らしたいですか? 変更できます。

devcoach set max_per_day 5           # more lessons per day
devcoach set min_gap_minutes 60      # lessons closer together

または、ウェブダッシュボードの設定ページを使用してください。すべてのオプションについては、docs/reference/configuration.mdをご覧ください。


期待される成果

一般的な作業週に 1 日 1~2 件のタスクをこなすと、技術スタックと自信のレベルに合ったレッスンを 2~4 件受け取れます。 各レッスンは 30 秒で読めます。AI の支援を受けた通常の開発を 1 か月続けると、自分の課題に特化したコーチングノートができあがります。苦手な具体的なパターン、見落としがちなエッジケース、直感的に使っているツールを選ぶ理由などが記録されます。

負荷が高すぎますか? 頻度を下げましょう:devcoach set max_per_day 1。もっとコーチングを受けたいですか? 頻度を上げましょう:devcoach set max_per_day 5。すべて調整できます。

相乗効果:ツールが強化されるなかでも学び続ける開発者は、成果を自分でコントロールし続けられます。


トラブルシューティング

「Node のバージョンエラー」

devcoach には Node.js ≥ 24 が必要です。バージョンを確認します:node --version。24 未満の場合は、アップグレードします:brew upgrade node(Homebrew)または nvm install 24(nvm を使用している場合)。

「プラグイン devcoach@ultimaphoenix のインストールに失敗しました:… マニフェストが無効です … repository: expected string」

1.0.1 までのプラグインリリースには、現在の Claude Code が拒否するマニフェストが含まれていたため、コピーが始まる前にインストールが停止していました。マーケットプレイスを更新して最新リリースを参照するようにしてから、もう一度インストールします:

/plugin marketplace update ultimaphoenix
/plugin install devcoach@ultimaphoenix

「MCP サーバーに接続できない」

Claude Code プラグインを使用している場合(plugin:devcoach:devcoach failed to connect):/devcoach:setup を実行します。最初のステップで原因(Node が 24 より古い、npm が PATH にない、初回実行時にネットワークに接続できない)と修正方法が表示されます。その後、/mcp から再接続します。プラグインに対して devcoach install を実行してはいけません。詳細:プラグインのトラブルシューティング。

プラグインを使用していない場合(npm/Homebrew、Claude Desktop):devcoach doctor を実行します。各エージェントが起動するコマンド(Claude Desktop の場合は claude_desktop_config.json、Claude Code の場合は ~/.claude.json から取得)について、そのエージェントが使用する PATH 上に存在するか、指定された Node が存在し ≥ 24 か、実行される devcoach のバージョンを確認します。次に devcoach install --force を実行すると、絶対パスのコマンドで再登録されます。その後、エージェントを再起動します。Claude Desktop のログ(~/Library/Logs/Claude/mcp-server-devcoach.log)に Failed to spawn process: No such file or directory とある場合、devcoach は起動していません。コマンド、またはその背後で使われる Node が見つからない状態です。devcoach が起動しない場合を参照してください。devcoach は起動するたびに、そのバージョン、Node、インストール場所をこのログに 1 行記録します。

「コーチングが作動しない/レッスンが表示されない」

devcoach doctor を実行します。設定全体(Node のバージョン、~/.claude/settings.json 内のフック設定(存在する場合は ~/.gemini/settings.json と ~/.codex/hooks.json も)、スキル、MCP 登録、データベース、ペーシングカウンター、レート制限)を確認し、次にレッスンが表示されるかどうかを正確に説明する判定を最後に出します。ペーシングは意図的に控えめな設定です。デフォルトでは、セッション内で nudge_every 回のやり取りがあり、レート制限内である場合にのみレッスンが表示されます。これは仕様であり、バグではありません。実行状況をリアルタイムで確認するには、DEVCOACH_HOOK_DEBUG=1 を設定し、~/.devcoach/hook.log を監視します。フックが実行されるたびに、判定(paced (3/10)、rate limited: …、cue)が 1 行追記されます。フックは Claude Code、Gemini CLI (ベータ)、Codex CLI (ベータ) に対応しています。他のエージェント(Cursor、Windsurf、Cline)はフックに対応していません。コーチングは MCP ツールまたは手動のプロンプトで必要に応じて利用できます。

レッスンの横に「Stop hook error occurred」と表示される

この通知は、ブロックする Stop フックすべてに対する Claude Code の現在の表示です。devcoach のレッスン表示も対象になります(併記される「🎓 devcoach…」という行は、失敗ではなくコーチングであることを示しています)。これは無害であり、仕様上、表示されることもまれです。UserPromptSubmit のプライミングフックがほとんどのレッスンをターン内に表示するため、ブロックするフォールバックが作動するのは、それが行われなかった場合のみです。

「SQLite の権限エラー」

devcoach は ~/.devcoach/coaching.db に書き込みます。権限エラーが発生した場合は、ディレクトリが存在し、書き込み権限があることを確認します:ls -ld ~/.devcoach。ディレクトリがない場合は、devcoach install または devcoach setup を実行して初期化します。


既知の制限事項

  • claude.ai web: MCP サーバーはサポートされていません。スキルのコピーを使用できます(コーチング動作のみで、データは保存されません)。
  • 一時的なサンドボックス: エージェントが再起動のたびに新しいサンドボックスで実行される場合(GitHub Codespaces など)、devcoach はセッションをまたいでデータを保持できません。現在のセッションでは問題なく動作しますが、レッスンは引き継がれません。
  • Windows: devcoach は macOS と Linux でテストされています。Windows のサポートは Node.js ≥ 24 と node:sqlite の利用可否に依存します(通常は安定していますが、問題があれば報告してください)。
  • マルチユーザーマシン: devcoach は ~/.devcoach/ に書き込むため、ユーザーごとに独自のコーチングデータベースが作成されます。プロファイルは共有されません。

アンインストール

1つのコマンドで、Claude Code と Claude Desktop に対して設定されたすべて(MCP 登録、フックのエントリ、スキル)を取り消せます(ベータ版エージェントの場合は --gemini、--codex、または --all を追加してください)。削除を指定しない限り、コーチングデータは残ります:

devcoach uninstall                 # remove MCP server + hooks + skill (Claude Code + Claude Desktop)
devcoach uninstall --all --data    # every agent, and delete ~/.devcoach (asks first; devcoach backup before)
npm uninstall -g devcoach          # then remove the program (npx: nothing to remove)
brew uninstall devcoach            # or, via Homebrew (brew untap UltimaPhoenix/tap to drop the tap)

brew uninstall/npm uninstall の前に devcoach uninstall を実行してください。Homebrew のフォーミュラにはアンインストールフックがなく、バイナリを削除してしまうと、~/.claude/settings.json に残ったフックが毎ターンエラーを発生させます。代わりに Claude Code プラグインを使用していますか?/plugin uninstall devcoach を実行すると、フック、スキル、サーバーをまとめて削除できます。


詳しくはこちら

ドキュメント全文: README はクイックスタートです。詳しいガイドについては、**公式ドキュメント**をご覧ください。


コミュニティ

  • リポジトリにスターを付ける — 他の人に見つけてもらうためにご協力ください
  • GitHub Issues — 機能リクエスト、フィードバック、質問はこちらから:issue を作成してください

コントリビューション

ご協力を歓迎します!始めるには、CONTRIBUTING.mdをご覧ください。


開発

git clone https://github.com/UltimaPhoenix/dev-coach && cd dev-coach
npm install
npm run dev -- mcp        # run the MCP server from source
npm run dev -- ui         # run the web dashboard from source
npm run lint && npm run typecheck && npm test
npm run build             # tsup → dist/bin.js
npm run mcpb              # build the Claude Desktop .mcpb (npm run mcpb:sign to self-sign)
  • MCP Inspector: npx @modelcontextprotocol/inspector node dist/bin.js mcp
  • スタック: @modelcontextprotocol/server(MCP SDK v2) · node:sqlite · Hono · Commander · Zod · Biome · Vitest · tsup
ブランチとリリース
  • develop は統合ブランチです。すべての PR はここを対象とし、マージのたびにカナリア版が公開されます (npx -y devcoach@next、ドキュメントは /next/)。
  • main に反映されるのはリリースのみで、常に最後に公開されたバージョンが置かれます(Claude Code の セルフマーケットプレイスはここからインストールします)。
  • リリースはワンクリックで行えます。develop でCIワークフロー(Run workflow → patch / minor / major)を実行します。CI は develop のバージョンを更新してタグを付け、main を早送りした後、 OIDC provenanceを通じて npm に公開し、.mcpb とプラグインの zip を GitHub Release に添付して、Homebrew tap、プラグインマーケットプレイス、MCP Registry を更新します。初回セットアップ:npmjs.com で devcoach パッケージの Trusted Publisher を設定してください(GitHub Actions、リポジトリ UltimaPhoenix/dev-coach、ワークフロー ci.yml)。

ライセンス

Copyright (C) 2026 UltimaPhoenix

devcoach は GNU Affero General Public License v3.0(AGPL-3.0-only)のもとでライセンスされています。 利用、変更、再配布が可能です。ただし、配布する改変版、またはネットワークサービスとして実行する改変版は、AGPL のもとでオープンソースとして公開する必要があります。現在、商用ライセンスの提供はありません。クローズドソース製品に devcoach を組み込む必要がある場合は、issue を作成してご相談ください。

ライセンスに関する FAQ

devcoach はダウンロード、インストール、使用のすべてにおいて、今後もずっと100%無料です。仕事や商用プロジェクトでも利用できます。AGPL は料金を意味するものではありません。AGPL に準拠せず、devcoach 自体の独自仕様/クローズドな派生版を公開したい場合にのみ、費用が発生します。

devcoach を使用しても、あなたのコードが AGPL のもとに置かれることはありません。 devcoach は stdio/MCP(npx -y devcoach mcp)を介して独立したプロセスとして動作します。AGPL ライセンスのデータベースに問い合わせるのと同様、独立した形で devcoach を利用することは派生物にはあたりません。あなた自身のプロジェクトには、選択したライセンスを引き続き適用できます。

  • ✅ 「クローズドソースのスタートアップアプリを開発する際、Claude Code 内で devcoach を使っています。」 — 無料です。アプリは独自仕様のままで、義務は一切ありません。
  • ✅ 「社内/商用リポジトリのコーチングを受けるため、チーム全員が devcoach をインストールしています。」 — 無料です。改変していないツールを会社で使うことに問題はありません。
  • ⚠️ 「devcoach をフォークして機能を追加し、パッケージを公開するか、ダッシュボードを公開サービスとしてホストします。」 — 改変した devcoach のソースを AGPL のもとで公開する必要があります。
  • 💼 「有料製品に devcoach を組み込み、変更を非公開にしたいです。」 — AGPL の対象外です。まず issue を作成してご相談ください。

devcoach をインポートするライブラリではなく、ツール/実行ファイルとして使い続ける限り、AGPL があなた自身のコードに及ぶことはありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。