Back to projects

pc-ctx

In Development

A context repo your AI agent actually reads and writes

Markdown files became a CLI, then an MCP server, then three packages. All because AI agents need to share plans.

Tech Stack

Bun 1.3 TypeScript citty (CLI framework) js-yaml MCP (Model Context Protocol) Git

Implemented

  • Plans with tasks, acceptance criteria, and cross-references
  • Roadmaps that reference plans, so agents know the big picture
  • Research files indexed from linked repos, browsable from the CLI
  • Dependency graph: agents trace why a task matters
  • Validation: the CLI rejects malformed plans before agents read them
  • `ctx setup` scaffolds the whole thing in one command
  • MCP server: any agent calls plan_list / plan_task_status directly, no file parsing
  • Git-backed. Agents commit their own progress.
  • Agent auto-logging: MCP tools update plan status when work is done
  • 8 plans, all valid, all the time

Planned

  • GitHub sync, push/pull context repos across machines
  • npm packages for core, CLI, and MCP
  • Web UI to browse plans on GitHub Pages
  • Weekly and daily log management

Technical Highlights

Scope Creep, but Make It Useful

It started as markdown files and a note saying 'agents should read these'. Then there was a CLI so they would not parse YAML themselves. Then an MCP server so they would not parse CLI output either. Two dependencies became a library, a CLI, and an MCP package.

Built for Agents, Not Dashboards

No UI, no database, no auth. Just markdown files with structured frontmatter in a git repo. The CLI and MCP server exist so agents can manipulate them deterministically.

MCP Means Any Agent Works

OpenCode, Claude Code, Cursor, Windsurf. If it speaks MCP, it reads and writes plans. No adapter per agent. No CLAUDE.md hacks.

One Command to Start

`npx pc-ctx setup` creates the whole directory tree, writes templates, runs bun install, git init, and initial commit. From zero to context in 5 seconds.

Format Is the Product

Tasks have IDs and statuses, acceptance criteria are checkboxes, everything has a schema. Agents can't drift, the CLI validates before every read.