Tableau is a developer-centric, local-first Project Management tool that lives inside your git repository. It follows the Unix philosophy: it is a simple tool that does one thing well, stores data as text (Markdown), and is composable.
- Git-Native: Tasks are stored as Markdown files in a
.tableaudirectory. Your project history matches your code history. - Local-First: No API calls, no loading spinners. Instant interaction.
- CLI & TUI:
- CLI for scripting and quick capture.
- TUI (Terminal User Interface) for visual planning (Kanban board).
- Git Integration: Automatically create and checkout feature branches linked to tasks.
- Configurable: Customize columns, colors, and workflow rules via
config.toml.
Ensure you have Go installed (version 1.22 or later).
git clone https://github.com/bafbi/tableau.git
cd tableau
go install ./cmd/tableauStart by initializing Tableau in your project root:
tableau initThis creates a .tableau directory to store your tasks and configuration.
Create a new task:
tableau new "Refactor authentication middleware"List tasks:
tableau list
# Filter tasks
tableau list "status:todo priority:high"Edit a task (opens in your $EDITOR):
tableau edit 1Launch the interactive board:
tableau board- Navigation: Use
h,j,k,l(Vim style) or arrow keys. - Move Tasks: Use
H(left) andL(right) to move tasks between columns. - Details: Press
Enterto view task details and comments. - Quit: Press
qorEsc.
Start working on a task (creates a branch feat/1-refactor... and moves task to "Doing"):
tableau start 1Block a task:
tableau block 1Add a comment:
tableau comment 1 "I'm looking into the JWT library now."You can customize Tableau by creating a .tableau/config.toml file:
[project]
name = "My Project"
[columns]
todo = "Backlog"
doing = "In Progress"
review = "Code Review"
done = "Shipped"
[style]
border_color = "#7D56F4"
selected_color = "#ff00ff"
[git]
branch_prefix = "feat/"We use mise for development workflow management.
- Install
mise. - Clone the repository.
- Run setup:
mise install
- Build:
mise run build - Test:
mise run test - Lint:
mise run lint - Dev Environment:
mise run dev -- board(Runs the app in a sandboxed.tableau_devdirectory)
MIT