A Rust port of taskbook - tasks, boards & notes for the command-line habitat.
- Create and manage tasks and notes organized into boards
- Priority levels and progress tracking
- Timeline and archive views
- Customizable themes (including Catppuccin)
- Optional server sync with end-to-end encryption (AES-256-GCM)
Download the latest binary from releases or build from source:
cargo install --path crates/taskbook-clientPre-built images are published to GHCR on every release:
docker pull ghcr.io/taskbook-sh/taskbook-server:latestOr use Docker Compose for a full setup with PostgreSQL — see Server Setup.
{
inputs.taskbook.url = "github:taskbook-sh/taskbook";
# Add to your packages
environment.systemPackages = [ inputs.taskbook.packages.${system}.default ];
}Organize tasks and notes into boards with priority levels and progress tracking.
View all items chronologically, grouped by date.
A detailed journal of all activity with timestamps.
Access commands directly from the TUI with / or Tab.
Full keyboard shortcut reference available with ?.
Browse and restore deleted items.
tb # Display board view
tb --task "Description" # Create task
tb --task @board "Desc" # Create task in specific board
tb --task "Desc" p:2 # Create with priority (1=normal, 2=medium, 3=high)
tb --note "Description" # Create note
tb --note # Create note in external editor
tb --edit-note @<id> # Edit note in external editor
tb --check <id> [id...] # Toggle task complete
tb --begin <id> [id...] # Toggle task in-progress
tb --star <id> [id...] # Toggle starred
tb --delete <id> [id...] # Delete to archive
tb --restore <id> [id...] # Restore from archive
tb --edit @<id> "New desc" # Edit description
tb --move @<id> board # Move to board
tb --priority @<id> <1-3> # Set priority
tb --find <term> # Search items
tb --list <attributes> # Filter (pending, done, task, note, starred)
tb --timeline # Chronological view
tb --archive # View archived items
tb --clear # Delete all completed tasks
tb --copy <id> [id...] # Copy descriptions to clipboardOptionally sync your tasks across devices with encrypted server storage:
# Register an account (interactive)
tb --register
# Migrate existing local data to server
tb --migrate
# On another device, login with your encryption key
tb --login
# Check sync status
tb --status
# Logout and return to local-only mode
tb --logoutAll data is encrypted client-side with AES-256-GCM before being sent to the server. Your encryption key is generated locally during registration and never leaves your device.
See Server Setup for running your own server.
Configuration is stored in ~/.config/taskbook/taskbook.json (honoring $XDG_CONFIG_HOME; a legacy ~/.taskbook.json is still used if present):
{
"taskbookDirectory": "~",
"displayCompleteTasks": true,
"displayProgressOverview": true,
"theme": "catppuccin-macchiato",
"sync": {
"enabled": false,
"serverUrl": "http://localhost:8080"
}
}Available preset themes: default, catppuccin-macchiato, catppuccin-mocha, catppuccin-frappe, catppuccin-latte, high-contrast
Or define custom RGB colors - see Configuration docs.
See the docs folder for detailed documentation:
This implementation uses the same data format and directory (~/.taskbook/) as the original Node.js version, allowing seamless migration.
MIT - see LICENSE
Original project by Klaus Sinani





