Open source · Local course tracker

Make learning progress visible, local, and agent-guided.

PatchQuest is a small standalone local course tracker with a browser UI, SQLite progress, and MCP. Fork it, seed a course for any subject, connect a coding agent when you want one, and keep answers in the UI.

How it works

Learn by building, explaining, and returning.

A course can use retrieval before rereading, small worked exercises, source-linked feedback, and related recall on a later session. That combination helps expose gaps, turns correction into a concrete next action, and makes the architecture something you can use rather than merely recognise.

Fork and seed

The runner loads simple JSON course manifests. A fork can add a new course with one seed command, then define its own paths, sections, sources, and questions.

Local by design

A dependency-light Bun server renders the course UI. The selected workspace, answers, feedback, and section progress stay in a local SQLite database—nothing is hosted or collected by PatchQuest.

Your first session

One clear step at a time

  1. You

    Open the local runner

    Run one small Bun app and open PatchQuest in your browser. The first screen makes the next steps visible: connect an agent, choose a course, then begin.

  2. You + app

    Connect your agent

    PatchQuest detects Claude Code or Cursor when it can, then adds only its own local MCP entry after an explicit Connect click. You can continue without an agent too.

  3. You

    Choose a course and path

    Pick a seeded course, then its path and workspace or learning context. Progress is local and stays separated by that course and path.

  4. You + agent

    Build, answer, return

    Each section gives one bounded action and a question. You submit in the UI; the browser refreshes with source-linked MCP feedback and progress when the agent evaluates it.

The UI is the shared learning record. An MCP-connected agent can read the next activity, record evidence, and evaluate submitted answers; you keep control of installs, server launches, and every code change.

The course

The included DDD seed: eight steps from model to runbook

  1. 00

    Start a path

    Choose language, workspace, local progress, and a visible development loop.

  2. 01

    Model the domain

    Name rules and invariants before routes or tables.

  3. 02

    Draw the hexagon

    Keep domain, application, ports, and adapters distinct.

  4. 03

    Make an API useful

    Create a thin HTTP boundary and a clear status surface.

  5. 04

    Persist through a port

    Replace in-memory storage without leaking it into the model.

  6. 05

    Prove behaviour

    Protect rules with focused domain, use-case, and boundary tests.

  7. 06

    Handle failure deliberately

    Separate rejection, transient failure, duplicates, and safe retries.

  8. 07

    Observe and ship

    Add useful signals, a health check, and a small runbook.

Start here

Open the course. Then make progress visible.

1 · Open it locally

Clone the tracker, install its two small local dependencies, and start the Bun app. The browser first offers a safe agent connection, then lets you choose a course, select a path, and submit answers.

git clone https://github.com/kevinmamaqi/patchquest
cd patchquest
bun install
bun run dev
# Open http://127.0.0.1:3030

2 · Keep the work yours

The standalone UI can detect Claude Code or Cursor and configure its own local MCP entry after you approve it. The agent then lists seeded courses, guides one action, and evaluates answers in the browser.

Read the course README

Source

A lightweight tracker, not another learning platform.

The repository includes the Bun app, MCP bridge, safe agent connection flow, generic course format, seed command, and a DDD example. Your course still owns its sources and the work a learner produces.

kevinmamaqi/patchquest