bacio - BAH-choh
"kiss" in Italian; more importantly its a chocolate-hazelnut gelato flavour.
Bacio is a totally free local first kanban board for anyone. Claude/Codex does the work, you orchestrate it.
You talk to Claude Code or Codex; it does the typing — files issues, updates state, breaks features into tasks, answers questions about your board. You mostly read — on the CLI (bacio issue list) , in the TUI (bacio tui) or in your favourite editor (Vscode/Zed/Vim).
Homebrew (macOS and Linux, prebuilt binaries):
brew tap mrgeoffrich/bacio
brew install bacioScoop (Windows, prebuilt binaries):
scoop bucket add bacio https://github.com/mrgeoffrich/scoop-bacio
scoop install baciocd ~/your-project
bacio init # creates a 4 letter prefix for this project
bacio install-skill # teaches Claude Code how to drive bacioNow open Claude Code / Codex and say:
File an issue: the login page 500s on Safari when the password contains a
&.
The AI does the rest — picks a title, picks tags, files the ticket, hands you back the key.
For the full walk-through — first session, sample skills, multi-machine sync — see docs/getting-started.md.
cd ~/your-project
bacio tuiA full-screen kanban with six tabs — Board (above), Features, Documents, Agents, History, Settings — all keyboard driven. ? shows the bindings for the focused tab, q (or esc) exits. Open any card for the full description and comments, or jump to the other tabs:
How do I work on different machines with a local database? Can I view issues in my favourite editor?
You might want to view all the issues, documents and features using your favourite editor instead of via the TUI. And you might work across a number of devices. You can enable sync to a git repository for all contents to keep a central working copy of everything.
bacio sync mirrors the DB to a folder of YAML + markdown in a separate git repo — handy for browsing the board in your editor, diffing changes over time, or sharing a board across machines.
- Create an empty git repo for the sync data. On GitHub:
gh repo create your-project-bacio-sync --privateAny empty git remote works (GitLab, Gitea, a bare repo on a server you control); the contents are human readable plain text.
- From inside your project, set it up:
bacio sync init ~/your-project --remote https://github.com/you/your-project-bacio-sync.gitThis creates ~/sync/your-project with one file per issue, feature, and document, commits, and pushes. It also writes .bacio/config.yaml inside your project (check it in) so future bacio sync calls — and other machines via bacio sync clone — know which remote to use.
- Keep it in sync as you work:
bacio sync # pull → import → export → commit → pushRun it whenever — pushes your writes, pulls anyone else's. Multi-machine setup, conflict semantics, and the inspect/verify tools live in docs/getting-started.md.
- Built for LLMs. The CLI reads return JSON. CLI updates/writes take JSON. Every payload schema is reachable at runtime via
bacio schema. The bundled skill (bacio install-skill) is the single source of truth for agents. - Local-first. Your board starts life as a single SQLite DB file. Nothing leaves the laptop until you run
bacio sync. - Auditable. Every mutation records who, when, and what changed. (Agent-driven calls attribute to the agent's identity automatically via
.bacio/agents.json— no flag needed.) - Optional sync. Want the same board on a laptop and a desktop?
bacio sync init, plain git underneath. - Optional REST API.
bacio apiputs the CLI behind HTTP — handy for IDE plugins, long-running agents, andBACIO_REMOTErigs. For humans who want the bundled kanban in a browser,bacio webserves the same API plus the embedded React bundle at/ui/and pops the OS default browser.
Solo-maintained, used in anger by its author. Contributions welcome — see CLAUDE.md for development conventions, and docs/tui-cookbook.md for the bubbletea/lipgloss patterns the TUI relies on.
MIT — see LICENSE.




