Skip to main content

A local MCP server that acts as a progressive technical coach for Claude Code and Claude Desktop

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

devcoach

PyPI Python CI Quality Gate Coverage Docs License

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.


How it works

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.


Screenshots

Knowledge map Lesson history Settings
Knowledge map Lessons Settings

Installation

Step 1 — Install devcoach

Choose the method that fits your setup:

Homebrew (macOS / Linux — recommended)

brew tap UltimaPhoenix/tap && brew install devcoach

Pre-built native binary — no Python required.

uvx (no permanent install)

uvx devcoach mcp   # run the MCP server directly without installing

Requires uv · Python 3.12+

uv tool (permanent install)

uv tool install devcoach

Requires uv · Python 3.12+


Step 2 — Register with Claude

Run once after installing to add devcoach to your Claude config:

devcoach install

devcoach install auto-detects how it was installed and writes the correct MCP server entry. Use --mode to override if needed:

devcoach install --mode binary    # Homebrew / self-contained binary
devcoach install --mode uv-tool   # uv tool install
devcoach install --mode uvx       # uvx (no permanent install)

Restart Claude Code or Claude Desktop after running.


Quick start

1. Install and register

# Pick one:
brew tap UltimaPhoenix/tap && brew install devcoach   # Homebrew
uv tool install devcoach                               # uv tool

devcoach install          # auto-detects install method, writes MCP config
# Restart Claude Code / Claude Desktop

2. Onboarding (first session)

Open 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.

3. Work normally

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...

4. Give feedback

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

CLI reference

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


Web dashboard

devcoach ui

Opens 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


MCP server (for Claude integration)

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


Documentation

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

Configuration

devcoach set max_per_day 3        # up to 3 lessons per day
devcoach set min_gap_minutes 120  # at least 2 hours between lessons

Settings are stored in ~/.devcoach/coaching.db. See docs/configuration.md for all options.


Publishing a new release

Tag a commit with v* to trigger the CI/CD pipeline:

git tag v1.2.3
git push origin v1.2.3

The 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.


License

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 NOTICE file in any derivative distribution
  • You may not use the devcoach name or branding to endorse derived products without permission

See NOTICE for third-party attributions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devcoach-0.3.18.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devcoach-0.3.18-py3-none-any.whl (324.9 kB view details)

Uploaded Python 3

File details

Details for the file devcoach-0.3.18.tar.gz.

File metadata

  • Download URL: devcoach-0.3.18.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for devcoach-0.3.18.tar.gz
Algorithm Hash digest
SHA256 10cd6845741a74da9e5eda071a9144141a4801fb669a3676a1330855860c9f0b
MD5 407d0e72d438bc9ecb2e6f45f9344333
BLAKE2b-256 6ad65295f4dea5813f9f9a0e66ca0ff2c103e70527345d4a70238c984e21beb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for devcoach-0.3.18.tar.gz:

Publisher: ci.yml on UltimaPhoenix/dev-coach

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devcoach-0.3.18-py3-none-any.whl.

File metadata

  • Download URL: devcoach-0.3.18-py3-none-any.whl
  • Upload date:
  • Size: 324.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for devcoach-0.3.18-py3-none-any.whl
Algorithm Hash digest
SHA256 82223a6c590f2d63bdab5eb42196d88ae57d45a6a075b2e4cb139fd2fc9571ae
MD5 86f7ce5485cebae0c21212b492dce916
BLAKE2b-256 3acdc930a57a8741664517fd5d64c7be996910b3a0bc4710e61c5685cab146a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for devcoach-0.3.18-py3-none-any.whl:

Publisher: ci.yml on UltimaPhoenix/dev-coach

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page