Skip to main content

Stay sharp while your AI does the work.

You're shipping more than ever and understanding less. devcoach fixes that with one lesson at a time, delivered right after your agent completes a task.


What happens

You work on a task with your AI agent as usual. When it finishes, devcoach appends a lesson:

🎓 devcoach · TypeScript · Level: Mid

<strong>Promise.allSettled vs Promise.all — don't let one failure sink the batch</strong>

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.

Did that land? ✅ know · ❌ don't know · ⏭ skip

Context & personalization

Every lesson is tied to where it happened: your project folder, repository, branch, commit hash, and which editor you're using (VS Code, etc.). devcoach stores all of this locally, so lessons are tied to their context.

You can also personalize your coaching with a learning notebook at ~/.devcoach/learning-state.md. This file is yours to edit and annotate:

  • Note what you understand — mark concepts that have sunk in after a lesson.
  • Flag areas for deeper work — if something didn't click, write it down.
  • Track patterns you see — if you notice recurring mistakes or gaps, devcoach learns from your notes.

The notebook affects your coaching directly:

  • Lessons prioritise topics you've flagged as needing work
  • Depth is calibrated based on your written notes, not just your emoji feedback
  • devcoach avoids re-teaching angles you've marked as understood
  • It surfaces related concepts when it detects gaps in your notes

Everything stays private and local. The notebook is optional — devcoach works without it — but it transforms coaching from generic to genuinely personal to your learning journey.


How to get started

  1. Install — choose your method (Homebrew, Claude Code plugin, npx, or Claude Desktop)
  2. Run onboarding — build your knowledge profile
  3. Start working — coaching happens automatically

Everything's local. No data leaves your machine. One SQLite file.


The three install methods

See all install methods for other options.


Why devcoach exists

AI agents now write much of our code. Velocity is up. So is a quieter cost: when the machine does the thinking, it's easy to accept the result and learn nothing from it.

Competence is built slowly. You can't cram it on demand. The moment you need it most — a correctness bug the model missed, a 2 a.m. outage, an architectural call the AI got wrong — the depth either exists or it doesn't.

devcoach's bet is simple: a few minutes of genuine learning, delivered in context and spaced across the work you already do, compounds. It's learning on the job, automated.

Read the full story →


Privacy by design

Everything stays on your machine. No telemetry, no accounts, no calls home. Just one SQLite file.

Privacy & security →


Screenshots

Knowledge map

Knowledge mapKnowledge map

Lesson history

LessonsLessons

Roadmap & community


All guides