Your backlog,
on an assembly line.
Code Factory is a native Mac kanban board for plain-markdown work cards, staffed by Claude Code agents. Drop in ideas, and they come out as shipped code.
The line
Everything a factory floor needs
Built natively for the Mac, around files you already own.
A board that watches the disk
Six stations from Proposed to Done. Drag a card and the file moves. Edit it in Obsidian, vim or an agent, and the board updates instantly via FSEvents.
Create Work from one line
Type an idea. A headless Claude Code agent researches the repo and writes a real card, while a hazard-striped placeholder holds its spot.
Agents in real terminals
Run Work and Triage start interactive Claude Code sessions in tmux. Watch them live in full colour, type straight into them, or attach from your own shell.
Questions become buttons
When an agent asks a multiple-choice question, Code Factory turns the TUI prompt into native buttons. ⌘1–⌘9 and you're done.
It taps you on the shoulder
Notifications and a menu bar light tell you when an agent finishes or needs input, so you can walk away from the board.
Your cards stay plain text
One markdown file per card, one folder per status. No database or lock-in, and it works with git, grep and whatever comes next.
Agents ask, you click
Terminal prompts, native buttons.
Code Factory reads Claude's multiple-choice prompt straight off the tmux pane and gives you real controls. Go on, answer it.
● Triage: 2 proposed cards, 1 waiting.
Reading proposed/add-a-dark-mode-toggle.md…
● “Add a dark-mode toggle to the settings page”
Small, well-scoped. No blockers found.
What should happen to this card?
❯ 1. Move to To-Do
2. Keep in Proposed
3. Won't do
Click an option. Code Factory steers the TUI cursor and presses Enter for you.
How it works
Three stations. Zero ceremony.
Point it at a vault
Any folder of markdown cards, an Obsidian vault included. Or click Try the Demo Factory.
Feed the line
Create Work turns ideas into cards. Triage walks the backlog with you, one question at a time.
Run the line
Run Work hands the next card to an agent in the project's repo. You review, answer, ship.
vault/
└─ Work/
└─ my-project/
├─ proposed/
├─ todo/
├─ picked-up/ ← agents move cards
├─ waiting/ as they go
├─ done/
└─ wont-do/
repos/
└─ my-project/ ← agents work here--- title: Crash when the config is empty status: todo kind: bug --- ## Acceptance criteria - [x] Add a failing test - [ ] Fix the parser
Hard hats on
Safe by default. Paranoid by design.
It launches AI agents in your repositories, so the guard rails come built in.
Agents start in Accept file edits mode. Bypassing permissions is opt-in, with a red warning.
Every command runs without a shell. Prompts and typed text can never become shell syntax.
Text sent to tmux is typed literally, and named keys come from a fixed allow-list.
Card and project names are validated, so nothing can escape your vault.
Deleting a card moves it to the Trash, and a move never overwrites another card.
No telemetry or network calls of its own. MIT licensed: read every line.
Clock in
Build it in one command
Free and open source. Requires macOS 15+, Claude Code, and tmux. Looks best on macOS 26+ with Liquid Glass.
# tools $ brew install xcodegen tmux # build & launch $ make run
Example /work-create, /work and /work-triage skills ship with the source.