AgentLab is releasing ProgramOS, an open spec for turning a NanoClaw deployment into a multi-channel AI academic program coordinator. The pattern was extracted from a production deployment that has been quietly running for months: an AI coordinator handling questions and capturing decisions from faculty, advisors, admissions, and staff across email, Telegram, Microsoft Teams, web chat, and Microsoft Copilot Studio—all from a single process, with a Markdown-only audit trail that lives in the program’s curriculum repository.
Why a Spec, Not a Template
The temptation with a working system is to template it. Fork it, scrub it, push it. We tried that mentally and walked it back. Two reasons.
First, NanoClaw moves. Upstream improves the framework on its own cadence—a fork-once template would freeze adopters at a point in time, with the rebase debt growing month over month. A spec stays useful: an adopter’s coding agent reads the current NanoClaw and the current spec together, producing an adaptation that matches both.
Second, programs differ. Channels, sender allowlists, decision-authority rules, audit conventions, curriculum structure—every program has its own shape. A template would force adopters into someone else’s shape. The spec describes contracts: this is what each channel handler must do, this is what the curriculum repo must contain, this is what the audit log must record. The implementation belongs to the adopter.
What the Spec Covers
- Six channels — email (HMAC webhook), Telegram, Teams (Bot Framework), Teams Outgoing Webhook, web chat, Microsoft Copilot Studio. Each with its own auth pattern, reply format, and JID convention.
- Two operating modes — question (read-only sandbox, cite and reply) and status-update (workspace-write, extract decisions/actions/questions and commit). The mode is chosen at dispatch by the channel handler, not by the agent mid-run.
- Curriculum repository contract — a separate, adopter-owned repo with a defined structure:
CURRICULUM.md,EMAIL_ALLOWLIST.md,DECISIONS.md,ACTION_ITEMS.md,OPEN_QUESTIONS.md, and per-channel audit-log directories. - Audit log format — one Markdown file per inbound, one per outbound, with a YAML frontmatter capturing channel, sender, mode, files modified, and commit SHAs. Reviewable by anyone with
git logandcat. - Customization checklist — a flat list of what to rename, what to leave generic, and what privacy decisions to make before going live.
How an Adopter Uses It
Roughly four steps:
- Fork NanoClaw upstream (
gh repo fork qwibitai/nanoclaw). - Create a private curriculum repository following the skeleton in
examples/curriculum-repo/SKELETON.md. - Hand
SPEC.mdto a coding agent (Claude Code, Cursor, Codex) along with the NanoClaw fork. The agent reads both and produces a working adaptation, asking clarifying questions as needed. - Iterate on the per-channel
groups/<channel>/CLAUDE.mdagent prompts and the audit-log pipeline using the docs in the spec repo as reference.
The reference deployment fits in roughly 1,000–1,500 lines of code on top of NanoClaw, plus the curriculum repo content. Most of the program-specific behavior lives in agent prompts and channel handlers—not in framework changes.
Spec repository: github.com/vishalsachdev/programos (public, MIT). Six markdown docs, four agent prompt templates, and a curriculum-repo skeleton. Zero lines of code—the engine is NanoClaw.
What’s Public, What’s Not
The spec is public; the production deployment that informed it is not. The reference instance contains stakeholder PII, real allowlists, internal program strategy, and accreditation drafts—none of that generalizes, none of that should leak. The spec captures only the part that other programs can pick up and adapt.
That privacy posture is itself part of the spec: ProgramOS assumes the curriculum repo is private, the audit log is private, and the bot fork is the adopter’s choice. The spec includes a scrub-script recommendation for adopters who want to make their fork public.
Where It Fits
ProgramOS sits alongside the other claws in the AgentLab portfolio—IlliniClaw for student-facing course support, Canvas MCP for LMS integration—but it’s the first to be released as a pattern rather than a service. If you run an academic program and you want a single AI coordinator that fields stakeholder questions and captures decisions across every channel your stakeholders actually use, ProgramOS is what we’d hand you.
Visit the ProgramOS project page for the high-level summary, or jump straight to the spec on GitHub.