Featured project

The AI PM OS

A control plane for product work, built around durable policy, file-backed workstreams, resumable cmux sessions, and a planner that decides what deserves attention before the day gets noisy.

View repo โ†— Read the control-plane post See how it works
Policy owner
Repo-owned behavior
Continuity
File-backed CONTEXT.md
Adaptation layer
Thin local adapters
Lifecycle
start โ†’ sync โ†’ close

What it is

Not a chatbot and not just a pile of prompts. More like a lightweight operating model for AI-assisted PM work.

The repo owns the real behavior

The durable rules live with the system, not in scattered local prompt files. That makes the operating model versioned, reviewable, and easier to debug when the setup drifts.

Home-directory files stay thin

Local runtime config still matters, but it acts like an adapter layer. Machine-specific setup stays local without quietly redefining the shared system.

A planner, not just a responder

The first workspace is a Chief of Staff agent that reviews notes, routines, and open workstreams, then writes a launch plan for the day. It decides what should be open before execution begins.

Durable context per thread

Each workstream lives in its own folder with a living CONTEXT.md and, when needed, live source snapshots. The important state is stored on disk, so an interrupted session can resume cleanly without depending on chat history.

Keep the hot path small

The broader system uses a slim active runtime and promotes specialists when they are needed. That keeps routing fast without losing the depth of a bigger skill library.

A real closeout, not tab sprawl

The loop includes explicit sync and closeout steps, so the system can recover after the day gets messy and tomorrow starts from a handoff instead of guesswork.


How the control plane is split

The important shift was not just adding more skills. It was making ownership obvious.

Layer 1

Repo policy

The repo owns the durable behavior: what the system should do, what it should not do, and which workflows belong where.

  • AGENTS.md defines the stable rules
  • Shared scripts and state rebuilders live with the repo
  • Changes here are versioned, reviewable, and portable
Layer 2

Local adapters

Machine-specific setup stays local. This layer connects your laptop, shell, and installed tools to the shared operating model without redefining it.

  • Home-directory config stays thin on purpose
  • Local skills and startup hooks act like adapters
  • The job is wiring, not alternate policy
Layer 3

Runtime state

The current day lives in files, not terminal history. That is what makes the system resumable after interruptions, crashes, and long gaps.

  • today-plan.json and system/state/ show the current recommendation
  • workstreams/*/CONTEXT.md preserves thread-level continuity
  • Live source snapshots keep long-running work grounded in fresh docs
In practice: repo policy decides the rules, local adapters connect the machine, and runtime state captures what is true right now. That split is what makes the setup feel calm instead of fragile.

Install it in 5 steps

Install the two tools first. After that, you can ask Amp to do the repo setup, create your first workstream, and launch start-day for you.

1

Install cmux

Install cmux, open it once, then turn on Automation access so the launcher can create and control workspaces.

  • Open Settings โ†’ Automation
  • Set Socket Control Mode to Full open access
2

Install Amp

Install Amp CLI and make sure the amp command works in your shell. The AI PM OS uses Amp to run the Chief of Staff and each workspace session.

3

Ask Amp to set up the repo

Open Amp in the folder where you want the repo to live, then use one prompt to clone the project and install the lightweight local dependencies.

Typed into Amp
Clone https://github.com/abhiroopb/ai-pm-os into this directory.
Install any missing local dependencies: jq and pyyaml.
When that's done, tell me the repo is ready.
4

Ask Amp to create your first workstream

Start with one project. The point is to get a single durable thread running before you add more routines or automation.

Typed into Amp
Create workstreams/my-first-workstream from the templates.
Copy the starter CONTEXT.md and config.yaml into that folder.
Leave them ready for me to edit.
5

Ask Amp to launch the AI PM OS

Once Amp is inside the repo, have it do one dry run first. Then launch it for real. The planner will open, write the day plan, and spin up the recommended workspaces.

Typed into Amp
Run start-day --dry-run.
If the dry run looks good, run start-day.
Then tell me what opened and what needs attention first.
+

Then stop there

You do not need calendar daemons, Slack automation, or a perfect setup on day one. Get one workstream running first, then tune the Chief of Staff prompt and add more routines later.

The public version is intentionally simple. Start with the local file workflow, then add more automation only after the core loop feels useful.


How a day runs

The whole system starts from one command, then fans out into a planner, a ranked queue, and live workspaces.

Workflow view

From one command to a full operating surface

The launcher is just the beginning. The important part is how planning, ranking, and execution stay separated while sharing the same file-backed context.

Start the day

step 01

start-day validates the environment and boots or reuses the CMUX workspace.

cmux Amp CLI

Plan in command-center

step 02

The Chief of Staff workspace reads notes, routines, and workstreams, then decides what deserves focus now.

chief-of-staff notes/

Write the plan

step 03

The planner emits today-plan.json, then the public repo derives queue.json and now.json for a quick current-state view.

today-plan.json system/state/

Open focused sessions

step 04

Workstreams like meeting prep, comms triage, or a product thread open in parallel instead of piling into one chat.

parallel tabs routines

Resume from files

step 05

Each session reads and refreshes its own CONTEXT.md, so the thread survives crashes, interruptions, and long gaps.

CONTEXT.md durable state
CMUX mockup

What it looks like when it is running

An illustrative layout of the AI PM OS in CMUX: a left rail of active workstreams, a command-center surface, and a ranked queue of what should happen next.

cmux โ€ข ai-pm-os Sun 09:14
workspace: command-center source: today-plan.json โ†’ state
Live terminal
$ start-day
validating prerequisites...
cmux ready โ€ข amp ready โ€ข chief-of-staff prompt sent

Chief of Staff: Reviewing 5 workstreams and 3 routines
Chief of Staff: Writing system/today-plan.json
State: Derived queue.json and now.json

Launching: checkout-ux
Launching: comms-triage
Launching: meetings

Resume: Read workstreams/checkout-ux/CONTEXT.md
Ready for focused work
Current state
Now
checkout-ux

Refine the next UX decision and prep the prompt for the design review thread.

priority: high driver: agent
Queue
meetings โ†’ comms-triage โ†’ product-strategy

Three follow-on threads are queued, each with its own startup prompt and durable context file.

Continuity
File-backed resume

Every workspace can crash and reopen without losing the narrative state because the thread lives in files, not terminal history.

start-day
  -> boots or reuses cmux
  -> opens Chief of Staff workspace
  -> Chief of Staff writes system/today-plan.json
  -> build-state-from-plan.py derives queue.json + now.json
  -> launcher opens recommended workstreams
  -> each workstream resumes from its own CONTEXT.md

Read the full series

If you want the philosophy, mechanics, and control-plane framing, start here.

Open the repo โ†— Browse all thoughts โ†’