Progressive technical coaching, directly in Claude. After every task you complete with Claude Code or Claude Desktop, devcoach delivers a short, targeted lesson based on what you already know — no generic tutorials, no repeated topics.
flowchart TD
A([Task completed]) --> B[Check rate limit]
B -->|denied| Z([Silent])
B -->|allowed| D
subgraph loop["coaching loop"]
D[Select topic & depth]
E[Compose & deliver]
G[log_lesson]
end
D -->|nothing| Z
D -->|found| E
E --> G
G --> F([Done])
G -.->|prompts| U(["You: ✅ ❌ ⏭"])
→ Full decision flow: session startup · lesson selection · depth calibration
Everything runs locally. No data leaves your machine. One SQLite file at ~/.devcoach/coaching.db.
| Knowledge map | Lesson history | Settings |
|---|---|---|
![]() |
![]() |
![]() |
uvx devcoach mcp # starts the MCP server directlyuv tool install devcoachThen register with Claude:
devcoach installRestart Claude Code or Claude Desktop after installing.
Requirements: uv · Python 3.12+ · Claude Code or Claude Desktop
uv tool install devcoach
devcoach install # writes MCP entry to Claude config
# Restart Claude Code / Claude DesktopOpen Claude and start a task. devcoach will detect that setup is needed and guide you through:
- Import — restore from an existing backup zip, or
- Auto-detect — Claude scans your project files and proposes your tech stack, or
- Manual — you describe what you work with in plain conversation
Claude then proposes logical groups (Languages, Backend, DevOps, etc.) for your topics, and saves your knowledge map.
You: Refactor this function to use async/await.
Claude: [does the work]
---
🎓 devcoach · Python · Level: Mid
**Structured concurrency with asyncio.TaskGroup**
TaskGroup (Python 3.12+) is the modern replacement for bare gather() calls.
Unlike gather(), it cancels sibling tasks automatically when one raises...
Use the web dashboard or CLI to record whether you understood the lesson:
devcoach feedback lesson-python-taskgroup-001 know # understood — +1 confidence
devcoach feedback lesson-python-taskgroup-001 dont_know # need to revisit — −1 confidence| Command | Description |
|---|---|
devcoach |
Show all available commands |
devcoach mcp |
Start the MCP server (stdio) for Claude Code / Claude Desktop |
devcoach setup |
Run the onboarding wizard in the terminal |
devcoach install |
Register with Claude Code / Claude Desktop |
devcoach profile |
Show your knowledge map with confidence bars |
devcoach stats |
Overview: lesson counts, weakest/strongest topics |
devcoach lessons |
Browse lesson history with filters |
devcoach lesson <id> |
Show a single lesson in full |
devcoach star <id> |
Mark a lesson as starred (favourite) |
devcoach unstar <id> |
Remove the starred mark from a lesson |
devcoach feedback <id> <know|dont_know|clear> |
Record comprehension |
devcoach set max_per_day <n> |
Max lessons in a 24-hour window (default 2) |
devcoach set min_gap_minutes <n> |
Minimum minutes between lessons (default 240) |
devcoach ui |
Open the web dashboard at http://localhost:7860 |
devcoach backup [output.zip] |
Export knowledge + lessons + settings |
devcoach restore <backup.zip> |
Restore from a backup |
Full reference: docs/cli.md
devcoach uiOpens at http://localhost:7860. Pages:
- Knowledge map — confidence bars for all your topics, edit mode for adjustments
- Lessons — filterable, sortable table of your full lesson history
- Settings — rate limits, import/export, backup
Full reference: docs/web-ui.md
devcoach implements the MCP 2025-11-25 spec via FastMCP.
Manual Claude config (if devcoach install isn't available):
{
"mcpServers": {
"devcoach": {
"type": "stdio",
"command": "uvx",
"args": ["devcoach", "mcp"]
}
}
}Full MCP reference (tools, resources, data models): docs/mcp-server.md
| Document | Description |
|---|---|
| Getting started | Installation, onboarding, first lesson |
| CLI reference | All commands with examples |
| MCP server reference | Tools, resources, data models |
| Web UI | Dashboard pages and controls |
| Configuration | Rate limits, data location, schema, backup |
devcoach set max_per_day 3 # up to 3 lessons per day
devcoach set min_gap_minutes 120 # at least 2 hours between lessonsSettings are stored in ~/.devcoach/coaching.db. See docs/configuration.md for all options.
Tag a commit with v* to trigger the CI/CD pipeline:
git tag v1.2.3
git push origin v1.2.3The pipeline will lint, test across Python 3.12–3.13, build, publish to PyPI via OIDC Trusted Publishing, and create a GitHub Release automatically.
First-time PyPI setup: configure a Trusted Publisher on PyPI for
UltimaPhoenix/dev-coach(environment:pypi, workflow:ci.yml). No API token required after that.
Copyright 2026 UltimaPhoenix
Licensed under the Apache License, Version 2.0.
What this means for you:
- Free to use, modify, and distribute
- Commercial use and modifications must:
- Include a copy of this license
- State any changes made to the files
- Retain all copyright and attribution notices
- Include the
NOTICEfile in any derivative distribution
- You may not use the
devcoachname or branding to endorse derived products without permission
See NOTICE for third-party attributions.


