Draft keeps your team's AI sessions grounded. It runs in the background, capturing context from multiple sources, then injects it for everyone.
README
Draft keeps your team's AI sessions grounded, so there's no more re-explaining your product, priorities, or decisions at the start of every session. It runs in the background, capturing context from your meetings, Slack, and GitHub, then injects it automatically for everyone.
Visit draftai.us to download the app. See below to run from source.
Platform: macOS on Apple Silicon. Intel Mac and Windows support is not available yet.
Inputs (Granola, Slack, GitHub)
|
v
Background daemon — captures + synthesizes via Claude
|
v
Proposed updates land in your inbox (desktop app / CLI)
|
v (you accept)
Workspace context: ~/.draft/workspaces/<profile>/context/
|
v
Plugin hook fires at every session start
|
v
Context injected into the agent's system prompt
The daemon is registered as a macOS LaunchAgent (com.draft.daemon). It starts at login and restarts automatically. All synthesis calls go through your own Claude subscription — Draft does not proxy them. Everything stays on your machine.
draft/
├── cli/ # Draft CLI (TypeScript, compiled to a binary via bun)
├── background/ # Background daemon (TypeScript + shell scripts)
│ ├── integrations/ # Pollers: Granola, Slack, GitHub
│ ├── synthesizers/ # Per-source synthesizers (session, Granola, Slack, GitHub)
│ └── draft-background.ts
├── core/ # Shared library (workspace resolution, config, types)
├── desktop/ # macOS desktop app (Electrobun + React 19)
├── cli-agent-plugin/ # Plugin for Claude Code, Codex, Cursor (subtree), OpenClaw, Hermes
│ ├── hooks/ # inject-context.sh (session start), on-session-end.sh
│ ├── skills/ # /draft:setup, /draft:synthesize, /draft:publish, etc.
│ └── agents/