chris-os
A personal AI operating system that runs my work, my knowledge, and my decisions across desktop and cloud.
Problem
Most knowledge workers are drowning in fragmented systems — Notion for some notes, email for some communication, Slack for some decisions. None of them talk to each other. None are AI-native. The valuable knowledge is locked inside vendors, and “personal productivity” remains a category that’s been promised since 1995 and never delivered.
Solution
chris-os is what happens when you treat your own work as a production system. One repository contains everything: notes, decisions, project plans, AI capabilities, automation routines, and the logic that ties them together. A Slack assistant captures thoughts on the go. Cloud-scheduled routines run a morning brief and triage email. Every piece of knowledge stays in plain markdown.
Impact
Built over four months. Runs my morning brief, triages incoming opportunities, captures and indexes ~200 thoughts per month, and produces structured handoffs for any work session I close. The system has become the reference architecture I’m now adapting for client work — the patterns transfer directly.
How it works
The three-substrate model.chris-os runs across three execution environments based on a clean rule: if it needs my laptop’s filesystem, it runs locally. If it’s scheduled or async, it runs in the cloud. If it needs human approval, it routes through Slack.
Local (Claude Code)
Interactive work, skill authoring, anything that touches code or wiki directories. The development environment.
Cloud (Scheduled Routines)
Recurring agentic work. Morning brief at 6:30 AM. Email triage three times daily. Opportunity scoring weekly. Each has its own model and cost cap.
Slack (Orchestrator Bot)
Always-on assistant for /run dispatches, DM thought capture, and approval buttons for sensitive actions.
Knowledge as plain text, databases as a search layer
The single most important architectural choice in chris-os is also the simplest: every captured thought, every note, every decision is written to a markdown file in ~/wiki/ first. A database (Supabase) is dual-written for semantic search, but it is never the source of truth.
If every piece of cloud infrastructure I use vanished tomorrow, my notes are still readable. The database is a search index, not a vault.
Slack DM → orchestrator bot → write markdown to ~/wiki/inbox/
→ save to Supabase with embedding (search index)
If Supabase fails, the notes are still in git.
If the bot fails, I write directly to the inbox.Skills as the primitive
Every capability in chris-os is a “skill” — a small folder containing one markdown file that defines what it does, plus optional reference material loaded only when needed. There are no frameworks. No orchestration libraries. No runtime lock-in.
A skill written for chris-os today can be copied into any other Claude Code project tomorrow and work immediately. This is the Anthropic “skills-centric” philosophy taken seriously.
skills/business/opp-score/
├── SKILL.md # The capability definition (~150 lines)
├── metadata.json # Registry: name, description, triggers
└── references/ # Loaded on-demand
├── scoring-rubric.md
├── citation-templates.md
└── examples.mdLessons
One: I built the knowledge wiki before the Slack bot. Wrong order. The bot is the value-delivery surface; the wiki is the storage layer. Build the user-facing piece first, then back-fill persistence.
Two:I let myself accumulate three substrates before validating two. If I were starting over: prove the local workflow, then add Slack, then add scheduled routines only when there’s a specific recurring task that breaks if you forget to run it manually.
Three: I underestimated how much value lives in rules (loaded into every conversation) versus skills (loaded on demand). A 30-line rule about how to handle ambiguous task boundaries has saved me more time than several 200-line skills combined.
chris-os-public-skills.zip
12 sample skills, redacted. Install into your own Claude Code setup.
Includes: opp-score, journal-compose, adr-extract, reflect, session-auto-capture, note-to-tasks, claudeception, and 5 more
Other projects