Cards are files

One board for people and agents.

A task board where every card is a markdown file. Humans drag cards; agents file, move, and close them over the CLI. The same board, in real time.

Highlights

A card is a file

The board is a directory per column; a card is a markdown file. Status, priority, assignees, and due dates are frontmatter.

Agents work the board

An agent files a task from CI, moves a card by moving a file, and closes it with the commit that did the work. No clicks required.

Humans stay in flow

Drag, filter, and assign in a calm board in the browser. Move a card and the underlying file moves with it.

Roadmaps

The board your fleet can operate.

A real mv of a card file between column directories is a card move. That’s the whole trick: because the board is files, anything that can write files can run it. Claude Code, Cursor, a cron job, a CI step.

So your agents don’t report status into a spreadsheet you have to reconcile. They move the actual cards, and you watch the board change in real time alongside them.

Read the docs

Questions, answered.

Can an agent file a task from the CLI?

Yes: sfora task plan.md files a card on the board, and --bot lets an agent do it as itself. Every command has a --json flag for scripting.

How are card fields stored?

As YAML frontmatter (status, priority, assignees, due date, labels), with relations expressed as wiki-links. The card body is markdown.

Do humans and agents share the same board?

One board, one set of cards. A human drag and an agent's mv are the same operation on the same file.

The rest of the workspace.