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

Homebrew (macOS / Linux)

brew tap UltimaPhoenix/tap && brew install devcoach

Pre-built native binaries — no Python required.

uvx — no permanent install needed

uvx devcoach mcp   # starts the MCP server directly

uv tool — permanent install

uv tool install devcoach

Then register with Claude:

devcoach install

Restart Claude Code or Claude Desktop after installing.

Requirements (uvx/uv): uv · Python 3.12+ · Claude Code or Claude Desktop


Quick start

1. Install and register

uv tool install devcoach
devcoach install          # writes MCP entry to Claude 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.12.tar.gz (3.6 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.12-py3-none-any.whl (319.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: devcoach-0.3.12.tar.gz
  • Upload date:
  • Size: 3.6 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.12.tar.gz
Algorithm Hash digest
SHA256 596e5a7f70e01aeabf5e970ad2589c97c174b5a7dfbc9d1cfc828ab34f80b72d
MD5 a81b8968a7022712bdfbe9d8657b22f2
BLAKE2b-256 620148a813efdd0743c8c1c28912a7b73249e5d6a02c663faac68648f6725fa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for devcoach-0.3.12.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.12-py3-none-any.whl.

File metadata

  • Download URL: devcoach-0.3.12-py3-none-any.whl
  • Upload date:
  • Size: 319.5 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.12-py3-none-any.whl
Algorithm Hash digest
SHA256 e615744c950649bd3fdc1fda2af1ac1d3a83d39482bf8619a7d5192f305c2807
MD5 ae5fab676af66fe1f0dd817ff0fa303f
BLAKE2b-256 871aed60a5232c47bbd96d0468bc9058341d430032dbcbdb3a7da0b62206cee4

See more details on using hashes here.

Provenance

The following attestation bundles were made for devcoach-0.3.12-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