A TUI task manager that pulls tasks from multiple sources into one view. Single Rust binary. Works on Linux and macOS.
- Aggregate tasks from local files and Linear
- Quick-add with natural language — priorities, due dates, tags, backend routing
- Scrollable task detail view with full metadata and descriptions
- Live config reload — toggle backends, switch themes, no restart needed
- Optional Waybar (Linux) and xbar (macOS) menu bar integration
- Dark, light, and dynamic Omarchy theme support
Navigate, quick-add, edit, and complete tasks without leaving the terminal. Tasks from all backends sorted by urgency.
Smart badge shows the most urgent count. Tooltip groups tasks by date with source icons.
Toggle backends on and off in the config — tasks appear and disappear live.
Themes reload instantly when config changes.
Pre-built binary:
curl -fsSL https://github.com/keyfer/dewey/raw/main/install.sh | bashBuild from source using Rust:
# Install Rust if you don't have it
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone and install
git clone https://github.com/keyfer/dewey.git
cd dewey
cargo install --path .The binary is installed to ~/.cargo/bin/dewey. Make sure ~/.cargo/bin is in your PATH (the Rust installer usually sets this up).
cargo install --path .mkdir -p ~/.config/dewey
curl -fsSL https://github.com/keyfer/dewey/raw/main/config.example.toml \
-o ~/.config/dewey/config.toml
dewey add "Review PR today (p1)"
dewey add "Buy groceries tomorrow #errands"
dewey tuiReads and writes ~/.dewey/todo.txt by default.
[backends.local]
enabled = true
# path = "~/.dewey/todo.txt"Syncs issues from your Linear workspace. Issues show up alongside your other tasks, and you can complete, edit, or create them directly from the TUI.
Setup via the TUI wizard (recommended):
-
Add the backend to your config (
~/.config/dewey/config.toml):[backends.linear] enabled = true
-
Run
dewey tuiand pressLto launch the setup wizard. It will walk you through:- Pasting your Linear API key (personal key starting with
lin_api_) - Selecting your team
- Choosing which team member's issues to show (or "me" for your own)
- Picking which workflow statuses to display (e.g. Todo, In Progress, Backlog)
- Pasting your Linear API key (personal key starting with
The wizard writes the full config for you. The result looks like:
[backends.linear]
enabled = true
api_key = "lin_api_..."
team_id = "..."
team_name = "Engineering"
assignee = "me"
user_id = "..."
filter_status = ["In Progress", "Todo", "Backlog"]Multiple Linear workspaces: You can connect more than one team by running the wizard again (L). Each gets its own named section:
[backends.linear.work]
enabled = true
api_key = "lin_api_..."
team_id = "..."
[backends.linear.personal]
enabled = true
api_key = "lin_api_..."
team_id = "..."Dewey can output Waybar-compatible JSON for use as a status bar module. When run outside a terminal (e.g. from Waybar), it outputs JSON by default.
CSS classes: has-overdue, has-tasks, all-done, backend-error
For macOS menu bar integration, use xbar with the included plugin script.
Install xbar:
brew install --cask xbarAdd the plugin:
mkdir -p ~/Library/Application\ Support/xbar/plugins
curl -fsSL https://github.com/keyfer/dewey/raw/main/scripts/dewey.1m.sh \
-o ~/Library/Application\ Support/xbar/plugins/dewey.1m.sh
chmod +x ~/Library/Application\ Support/xbar/plugins/dewey.1m.shLaunch xbar:
open -a xbarThe plugin shows a task count badge in the menu bar with a dropdown listing tasks grouped by urgency. Click "Open Dewey TUI" to launch the full interface.
To change the refresh interval, rename the plugin file (e.g., dewey.30s.sh for 30 seconds, dewey.5m.sh for 5 minutes).
~/.config/dewey/config.toml — changes are hot-reloaded. Press c in the TUI to edit. See config.example.toml for all options.
dewey # TUI in terminal, Waybar JSON otherwise
dewey tui # Force TUI mode
dewey add "..." # Quick-add a task (supports natural language)
dewey list # List today's tasks
dewey list all # List all tasks
dewey list --format json # JSON output for scripting
dewey config # Print resolved config
dewey setup linear # Instructions for Linear setup
dewey agent status # Show running background agents
| Key | Action |
|---|---|
j / k |
Navigate up / down |
Enter |
View task detail |
a |
Quick-add task |
e |
Edit task |
x |
Toggle complete |
d |
Delete task |
o |
Open in source app / $EDITOR |
/ |
Search |
Tab / S-Tab |
Jump between groups |
Space |
Collapse / expand group |
C |
Collapse / expand all groups |
r |
Refresh tasks |
c |
Open config in $EDITOR |
L |
Linear setup wizard |
A |
Launch AI agent |
S |
Agent status |
? |
Help |
q |
Quit |
| Key | Action |
|---|---|
j / k |
Scroll down / up |
e |
Edit task |
x |
Toggle complete |
o |
Open in source app |
Esc / q |
Close detail |
MIT



