Skip to main content
Glama

devcoach

npm CI Quality Gate Coverage Node Docs License

AI가 일하는 동안 당신은 계속 성장하세요.

devcoach는 Claude Code, Claude Desktop, Gemini CLI (베타), Codex CLI (베타), Cursor, Windsurf 및 기타 MCP 호환 도구에 연결됩니다. 작업을 완료할 때마다 이미 알고 있는 수준에 맞춰 조정된 짧고 집중된 레슨을 제공합니다. — 일반적인 튜토리얼도, 반복되는 주제도, 따로 열어볼 것도 없습니다.

모든 것은 로컬에서 실행됩니다. 어떤 데이터도 머신을 떠나지 않습니다. ~/.devcoach/coaching.db에 있는 SQLite 파일 하나뿐입니다.

공식 Model Context Protocol TypeScript SDK, Node 내장 node:sqlite, Hono(웹 대시보드), Commander(CLI) 기반으로 구축되었습니다. Node.js ≥ 24 필요.


왜 devcoach인가?

AI 에이전트가 이제 우리 코드의 상당 부분을 작성합니다. — 더 많이 배송하면서도 덜 이해하게 만들기 쉬운 상황입니다. devcoach는 에이전트가 완료한 각 작업을 짧고 맥락에 맞는 레슨 하나로 바꿔, 계속 배워나가도록 돕습니다. 더 깊은 확신: AI가 더 강력해질수록, 부족해지는 기술은 AI가 생성한 결과물을 검증하는 능력이 됩니다. — 그리고 그 능력은 계속 연습해야만 유지됩니다.

devcoach가 존재하는 이유


Related MCP server: daruma

작동 방식

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 파일 하나뿐입니다.

프라이버시 및 보안


설치

devcoach는 로컬에서 실행됩니다. — 에이전트가 실행되는 머신의 ~/.devcoach/coaching.db에 모든 것을 저장하는 stdio MCP 서버입니다. Claude Code, Claude Desktop, Gemini CLI (베타), Codex CLI *(베타)*에서 작동하지만, claude.ai 웹에서는 작동하지 않습니다(호스팅/원격 커넥터만 지원).

Node.js ≥ 24 필요(devcoach는 Node 24부터 사용 가능한 내장 node:sqlite 모듈을 사용합니다).

작업 스타일에 따라 선택하세요 — 각 섹션은 독립적으로 구성되어 있습니다(설치 연결):

  • 터미널에 익숙한 개발자 → Homebrewbrew install 한 번으로 devcoach CLI도 함께 얻을 수 있습니다.

  • 원클릭, 터미널 없는 설정 선호 → Claude Code 플러그인 또는 .mcpb 확장.

  • 레지스트리 지원 MCP 클라이언트인가요? devcoach는 공식 MCP Registryio.github.UltimaPhoenix/devcoach로 등록되어 있습니다 — 바로 거기서 설치하세요.

  • 그 외(npx, 수동 설정, 다른 에이전트, claude.ai 웹)는 기타 설치 방법 에 있습니다.

Homebrew (개발자에게 권장)

macOS / Linux. 탭을 한 번 추가하고 신뢰한 다음 설치하고 연결하세요 — devcoach CLI도 함께 제공됩니다(따라서 devcoach uiCLInpx 접두사 없이 사용할 수 있습니다):

# 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 --tapHOMEBREW_REQUIRE_TAP_TRUST가 설정된 경우 Homebrew가 해당 포뮬러를 로드할 수 있도록 신뢰로 표시합니다. 둘 다 일회성입니다. 나중에 업데이트하려면: brew upgrade devcoach. 원라이너: brew install UltimaPhoenix/tap/devcoach (Homebrew가 탭 신뢰를 강제한다면 먼저 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 서버, 훅, 스킬은 설치 시 활성화되며 재시작이 필요 없습니다. 플러그인은 devcoach CLI를 추가하지 않으므로 대시보드나 CLI를 npx -y devcoach ui로 실행하세요(또는 Homebrew / npm i -g devcoach로 단독 devcoach를 사용).

# Straight from the devcoach repo (no separate marketplace)
/plugin marketplace add UltimaPhoenix/dev-coach
/plugin install devcoach@devcoach

# Offline — 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 Release에 하나씩 포함됩니다:

  1. 최신 릴리스에서 devcoach-<version>.mcpb 다운로드

  2. Claude Desktop → 설정 → 확장 → 확장 설치….mcpb 선택

번들은 자체 서명되어 있으므로 Claude Desktop은 이를 검증되지 않은 게시자로 설치합니다(검증된 서명에는 실제 코드 서명 인증서가 필요). 소스에서 직접 빌드하고 싶으신가요?

npm run mcpb        # → dist-mcpb/devcoach-<version>.mcpb   (npm run mcpb:sign self-signs it)

기타 설치 방법 — 베타

설치가 필요 없습니다 — npx가 주문형으로 devcoach를 실행합니다. Claude CodeClaude Desktop의 경우, 한 명령으로 MCP 서버를 등록하고 자동 레슨 전달(Stop 훅)을 설정하며 코칭 스킬~/.claude/skills/devcoach/에 설치합니다:

npx -y devcoach install

이후 에이전트를 재시작하세요. 전역 바이너리를 선호하시나요? npm install -g devcoach를 실행한 다음 devcoach install을 실행하면 됩니다(그리고 모든 곳에서 npx -y 접두사를 제거). devcoach를 업그레이드한 후에는 devcoach install을 다시 실행하여 스킬을 새로 고치세요 — devcoach stats가 오래되었을 때 알려줍니다.

옵션 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 }] }
    ]
  }
}

팁: 전역 설치는 devcoachPATH에 추가하므로 npx -y 접두사를 생략할 수 있습니다. devcoach install이 이를 자동으로 감지합니다. Claude Code 플러그인(위)을 사용 중인가요? 여기의 훅은 건너뛰세요 — 플러그인이 이미 제공합니다.

한 명령으로 MCP 서버, AfterAgent/BeforeAgent 레슨 훅, 코칭 스킬을 등록합니다:

npx -y devcoach install --gemini

또는 번들된 Gemini 확장을 대신 설치하세요: 최신 릴리스에서 devcoach-gemini-extension-<version>.zip을 다운로드하고 압축을 푼 다음 gemini extensions install <folder>를 실행합니다. 둘 중 하나만 선택하세요(둘 다 동일한 훅을 제공하며, devcoach가 확장을 감지하고 중복을 건너뜁니다). 자세한 내용: docs/install/gemini-cli.md.

한 명령으로 MCP 서버(codex mcp add), Stop/UserPromptSubmit 레슨 훅(~/.codex/hooks.json), 코칭 스킬(~/.agents/skills/)을 등록합니다:

npx -y devcoach install --codex

Codex는 다음 실행 시 새 훅을 신뢰할지 묻습니다 — 승인하지 않으면 코칭은 비활성 상태로 유지됩니다. 자세한 내용: docs/install/codex.md.

에이전트의 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 설정 → cline.mcpServers

Continue.dev

~/.continue/config.jsonmcpServers

Zed

.zed/settings.jsoncontext_servers

Stop 훅(각 작업 후 자동 레슨 전달)은 Claude Code, Gemini CLI, Codex CLI에 존재합니다. 이 표의 에이전트는 모든 MCP 도구와 리소스에 완전히 접근할 수 있습니다 — 코칭은 수동으로 또는 에이전트에 프롬프트하여 트리거할 수 있습니다.

Claude.ai는 MCP 서버를 지원하지 않습니다. 대신 코칭 지침을 스킬로 설치하세요:

  1. assets/SKILL.md의 내용을 복사합니다

  2. claude.ai → 설정 → 사용자 지정 지침(또는 요금제에 따라 Skills)으로 이동

  3. 내용을 붙여넣고 저장

이렇게 하면 MCP 도구 없이도 claude.ai에 코칭 동작이 제공됩니다(레슨 로깅 및 프로필 추적은 작동하지 않습니다).

스킬을 최신 상태로 유지하세요. Claude Code / Claude Desktop의 경우 스킬은 자동으로 제공되며(MCP 프롬프트 또는 플러그인을 통해) 항상 최신 상태입니다. claude.ai에 수동으로 복사한 경우, devcoach를 업데이트할 때마다 최신 SKILL.md를 다시 붙여넣으세요.


온보딩

에이전트가 처음 devcoach에 연결하면 프로필이 설정되지 않았음을 감지하고 인라인으로 안내합니다 — 별도의 명령이 필요 없습니다. (터미널을 선호하시나요? devcoach setup이 동일한 마법사를 실행합니다.)

전체 온보딩 안내

1단계 — 프로필 설정 방식 선택

devcoach는 사용자의 전체 로컬 Claude Code 기록(에이전트가 작업한 모든 프로젝트, 최근 활동순으로 정렬 — 파일 및 활동 메타데이터만, 프롬프트 텍스트는 절대 아님)을 스캔하고 프로필 구축을 위한 네 가지 방법을 제공합니다:

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개 이상의 프로젝트가 발견되면 devcoach는 창을 좁힐지, 가장 최근 25개로 진행할지, 특정 프로젝트를 선택할지 묻습니다. 에이전트는 사전에 명시합니다: 이 방식은 메타데이터 스캔보다 모델과 로컬 기록을 더 많이 공유합니다 — 이 머신에서 설정 단계로 한 번만 수행됩니다.

안내식

스스로 스택을 직접 설명하고 싶으신가요? devcoach가 각 기술과 자신감 수준(13 배우는 중 · 46 익숙함 · 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? ✅ know (y) · ❌ don't know (n)

y 또는 n(또는 ✅ / ❌)으로 답하면 해당 주제에 대한 자신감 수준을 조정하고 향후 레슨을 구성합니다. 또는 그냥 넘어가도 됩니다. 답이 없으면 변경 사항이 없습니다.


스크린샷

지식 맵(여기서 개인화)

레슨 기록

설정

Knowledge map

Lessons

Settings


컨텍스트 및 개인화

모든 레슨은 발생 위치(프로젝트 폴더, 리포지토리, 브랜치, 커밋 해시, 에디터)를 저장합니다. 또한 ~/.devcoach/learning-state.md학습 노트북을 작성하여 코칭을 개인화할 수 있습니다. 이 노트북은 devcoach가 어떤 주제를 우선시하고 레슨을 얼마나 깊게 다룰지 결정합니다.

코칭 노트북 · 웹 대시보드 가이드


웹 대시보드

언제든지 대시보드를 열어 진행 상황을 확인하고, 프로필을 편집하거나 설정을 관리할 수 있습니다:

npx -y devcoach ui   # → http://localhost:7860

페이지

할 수 있는 일

지식 맵

자신감 막대가 있는 모든 주제 보기; 점수 직접 조정

레슨

전체 레슨 기록 탐색 및 필터링; 다시 볼 레슨에 별표 표시

설정

속도 제한 변경, 프로필 가져오기/내보내기, 백업 수행

전체 참고 자료: docs/usage/web-ui.md


CLI 참고 자료

CLI는 코칭 데이터를 조회하고 관리하기 위한 보조 인터페이스입니다. 모든 기능은 웹 대시보드에서도 사용할 수 있습니다. 전체 사용법은 devcoach --help 또는 devcoach <command> --help를 실행하세요.

명령어

설명

devcoach install

Claude Code(MCP + hooks + skill) / Claude Desktop에 등록

devcoach profile

자신감 막대가 있는 지식 맵 표시

devcoach stats

개요: 레슨 수, 가장 약한/강한 주제

devcoach lessons

필터가 있는 레슨 기록 탐색

devcoach lesson <id>

단일 레슨 전체 보기

devcoach star <id>

레슨을 별표로 표시

devcoach feedback <id> <know|dont_know|clear>

이해도 기록

devcoach set max_per_day <n>

일일 최대 레슨 수(기본값 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


구성

기본값: 하루 최대 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에서 확인할 수 있습니다.


기대 효과

하루 12개의 작업을 수행하는 일반적인 업무 주간 동안 **스택과 자신감 수준에 맞춘 24개의 레슨**을 받게 됩니다. 각 레슨은 읽는 데 30초가 걸립니다. 한 달간 일반적인 AI 지원 개발을 수행하면, 자신의 격차에 특화된 코칭 노트북이 만들어집니다. 즉, 어려움을 겪는 정확한 패턴, 놓치기 쉬운 엣지 케이스, 무의식적으로 사용하는 도구 뒤에 숨은 이유가 담깁니다.

너무 강도가 높은가요? 빈도를 낮추세요: 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 사용 시).

"MCP 서버가 연결되지 않음"

devcoach install을 실행하여 Claude Code 또는 Claude Desktop에 서버를 다시 등록한 후 에이전트를 재시작하세요. 문제가 지속되면 ~/.claude.json(Claude Code)을 확인하고 devcoach 항목이 존재하며 명령어가 올바른지 확인하세요.

"코칭이 실행되지 않음 / 레슨이 표시되지 않음"

devcoach doctor 를 실행하세요. 전체 연결 상태(Node 버전, ~/.claude/settings.json의 hook 항목 — plus ~/.gemini/settings.json~/.codex/hooks.json(있는 경우) — skill, MCP 등록, 데이터베이스, 페이싱 카운터, 속도 제한)를 점검하고, 다음 중지 지점에서 레슨이 큐에 들어갈지 여부를 정확히 설명하는 판정으로 끝납니다. 페이싱은 의도적으로 조용하다는 점을 기억하세요. 기본 설정에서는 세션 내 nudge_every 상호작용 후 속도 제한 범위 내에서만 레슨이 큐에 들어갑니다. 이는 버그가 아니라 설계입니다. 실시간 추적을 보려면 DEVCOACH_HOOK_DEBUG=1을 설정하고 ~/.devcoach/hook.log를 확인하세요. 모든 hook 실행은 결정 사항(paced (3/10), rate limited: …, cue)과 함께 한 줄을 추가합니다. Hook은 Claude Code, Gemini CLI (베타), Codex CLI *(베타)*에 존재합니다. 다른 에이전트(Cursor, Windsurf, Cline)는 hook을 지원하지 않으므로, MCP 도구 또는 수동 프롬프트를 통해 온디맨드로 코칭을 받을 수 있습니다.

레슨 옆에 "Stop hook 오류 발생"

이 알림은 어떤 Stop hook이든 차단될 때 Claude Code가 현재 표시하는 라벨입니다. 여기에는 devcoach의 레슨 큐도 포함됩니다(함께 표시되는 "🎓 devcoach…" 줄이 코칭임을 알려주며, 실패가 아닙니다). 무해하며, 설계상 드물게 발생합니다. UserPromptSubmit 프라이밍 hook이 대부분의 레슨을 해당 턴 내에 전달하므로, 차단 폴백은 그렇게 되지 않았을 때만 실행됩니다.

"SQLite 권한 오류"

devcoach는 ~/.devcoach/coaching.db에 씁니다. 권한 오류가 발생하면 디렉토리가 존재하고 쓰기 권한이 있는지 확인하세요: ls -ld ~/.devcoach. 없는 경우 devcoach install 또는 devcoach setup을 실행하여 초기화하세요.


알려진 제한 사항

  • claude.ai 웹: MCP 서버를 지원하지 않습니다. skill 복사본을 사용할 수 있습니다(코칭 동작만 지원, 데이터 저장 없음).

  • 임시 샌드박스: 에이전트가 재시작할 때마다 새 샌드박스에서 실행되는 경우(GitHub Codespaces 등), devcoach는 세션 간 데이터를 유지할 수 없습니다. 현재 세션에서는 정상 작동하지만 레슨이 이어지지 않습니다.

  • Windows: devcoach는 macOS와 Linux에서 테스트되었습니다. Windows 지원은 Node.js ≥ 24 및 node:sqlite 사용 가능 여부에 따라 달라집니다(일반적으로 안정적이지만, 문제를 보고해 주세요).

  • 다중 사용자 머신: devcoach는 ~/.devcoach/에 쓰므로 각 사용자는 자신만의 코칭 데이터베이스를 갖게 됩니다. 프로필은 공유되지 않습니다.


제거

npm uninstall -g devcoach          # if installed globally (npx: nothing to remove)
brew uninstall devcoach            # if installed via Homebrew (brew untap UltimaPhoenix/tap to drop the tap)
claude mcp remove --scope user devcoach   # remove from Claude Code (install uses user scope)
rm -rf ~/.devcoach                 # delete all coaching data (back up first: devcoach backup)

Claude Desktop의 경우 플랫폼 구성 파일에서 devcoach 키를 삭제하세요(경로는 위의 수동 설정 참조). 또한 ~/.claude/settings.json에서 두 개의 hook 항목을 제거하세요. 하나는 hooks.Stop 아래(devcoach stop-hook), 다른 하나는 hooks.UserPromptSubmit 아래(devcoach prompt-hook)입니다.


더 알아보기

전체 문서: README는 빠른 시작 가이드입니다. 자세한 가이드는 공식 문서 를 참조하세요:


커뮤니티

  • 리포지토리에 별표 표시 — 다른 사람들이 발견하도록 도와주세요

  • GitHub Issues — 기능 요청, 피드백 및 질문: 이슈 열기


기여

기여는 언제나 환영합니다! 시작하려면 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/sdk · node:sqlite · Hono · Commander · Zod · Biome · Vitest · tsup

릴리스 게시

v*로 커밋에 태그를 지정하세요:

git tag v1.2.3 && git push origin v1.2.3

CI가 린트, 타입 검사, 테스트(Node 24 & 26), 빌드, OIDC 출처 증명(npm publish --provenance)을 통해 npm에 게시합니다. 최초 설정: 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를 포함하거나 독점 파생물을 배포하는 경우) 이슈를 열어 사례를 설명하면 건별로 검토합니다.

라이선스 FAQ

devcoach는 100% 무료입니다. 다운로드, 설치, 사용 모두 — 모든 사람에게, 영원히, 직장과 상업 프로젝트에서도 포함입니다. AGPL은 가격표가 아닙니다. AGPL을 준수하지 않고 devcoach 자체의 독점/클로즈드 파생물을 출시하려는 경우에만 비용이 발생합니다.

devcoach를 사용한다고 해서 코드가 AGPL 라이선스 아래에 놓이지는 않습니다. devcoach는 stdio/MCP (npx -y devcoach mcp)를 통해 별도의 프로세스로 실행됩니다. 일정한 거리를 두고 상호작용하는 것은 파생 저작물이 아닙니다 — AGPL 라이선스가 적용된 데이터베이스를 조회하는 것과 정확히 같습니다. 자신의 프로젝트는 선택한 라이선스가 무엇이든 그대로 유지됩니다.

  • "저는 클로즈드 소스 스타트업 앱을 만들면서 Claude Code 안에서 devcoach를 사용합니다." — 무료. 앱은 계속 사유 상태로 유지되며, 의무가 전혀 없습니다.

  • "저희 팀 전체가 내부/상용 저장소에 대해 코칭을 받기 위해 devcoach를 설치합니다." — 무료. 회사에서 수정하지 않은 도구를 사용하는 것은 괜찮습니다.

  • ⚠️ "devcoach를 포크해서 기능을 추가하고, 패키지를 게시하거나 대시보드를 공개 서비스로 호스팅합니다."수정한 devcoach의 소스 코드를 AGPL로 공개해야 합니다.

  • 💼 "유료 제품에 devcoach를 포함시키고 변경 사항을 비공개로 유지하고 싶습니다." — AGPL은 이를 허용하지 않습니다; 상용 라이선스는 현재 제공되지 않습니다 — 먼저 이슈를 통해 문의하세요.

devcoach를 (가져온 라이브러리가 아닌) 도구/실행 파일로 계속 사용한다면 AGPL이 여러분의 코드에 절대 영향을 미치지 않습니다.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Local, cross-agent memory for AI coding agents using a single SQLite file, enabling persistent sessions and durable facts shared across multiple MCP-compatible tools.
    14
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A lightweight, local-first MCP server and CLI that helps developers and AI coding agents store and retrieve lessons learned during development, using SQLite and context-aware filtering.
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/UltimaPhoenix/dev-coach'

If you have feedback or need assistance with the MCP directory API, please join our Discord server