Repository navigation
Tasku
Mado has first-class integration with Tasku — a terminal task manager with colour-coded priorities, project filtering, and SQLite persistence. The Tasku panel embeds an interactive task list directly in the sidebar.
gem install taskuRequires Ruby 3.1 or later. Once installed, the tasku command is available in all Mado panes automatically.
If gem install tasku installs an older version, build it directly from source:
git clone https://github.com/tomdringer/tasku.git
cd tasku
gem build tasku.gemspec && gem install tasku-*.gemThe Tasku panel runs tasku list in an embedded terminal pane. When Mado is active (MADO=1 is set automatically), Tasku enters an interactive cursor-driven list mode.
| Key | Action |
|---|---|
↑ / ↓
|
Move cursor up / down |
a |
Add a new task (interactive) |
e or ↵
|
Edit the selected task (interactive) |
d |
Delete the selected task (with confirmation) |
s |
Show task stats |
q or Esc
|
Quit the list |
The panel toolbar has buttons to filter by status. Click any button to show only tasks with that status; click it again to clear the filter.
| Button | Status |
|---|---|
| Todo | Open tasks not yet started |
| In Progress | Tasks actively being worked on |
| Backlog | Queued but not yet active |
| Cancelled | Tasks that won't be done |
| Archived | Completed or retired tasks |
The active filter is preserved when you add, edit, or delete a task — you return to the same view after the interactive command completes.
The Tasku panel can be placed in three locations via config.toml:
tasku_position = "top" # floating overlay (default)
tasku_position = "left" # left sidebar panel
tasku_position = "right" # right sidebar paneldisable_tasku = trueMado automatically filters the Tasku panel to show only tasks for the active workspace. When you switch workspaces, the panel refreshes to show the matching project's tasks.
This requires the workspace code in projects.toml to match a Tasku project name (or a mapping is set up — see below).
The workspace section name in projects.toml (e.g. API, WEB) is used to look up the Tasku project name. If the code exactly matches a Tasku project, filtering works automatically.
Example — if your Tasku project is named "My API" and your workspace code is API, add a project key to link them:
# projects.toml
[API]
path = "~/Projects/my-api"
icon = "terminal"
task = "cargo run"
deploy = "cargo build --release"
project = "My API"When project is set, Mado passes tasku list --project "My API" instead of tasku list --project "API".
Create a task for a project:
tasku add --name="Fix login bug" --project="My API" --priority highOr use interactive mode to fill in all fields with prompts:
tasku add -iList tasks for a project:
tasku list --project="My API"Set a colour for a project (shown in the Tasku list):
tasku colour "My API" "#7aa2f7"Attach a short code to any task:
tasku add --name="Fix login bug" --project="My API" --code APICodes appear in the task list as a quick label alongside the task name.
Tasku supports two-way sync with Tasku Cloud. Sign up at tasku.cloud to get your API token, then authenticate:
tasku cloud login <your-api-token>Once authenticated:
tasku cloud sync # push and pull tasks
tasku cloud status # check sync status
tasku cloud logout # revoke accessSynced tasks receive a UUID for stable cross-device identity. The Mado Tasku panel reflects synced changes on the next list refresh.
Tasku reads ~/.tasku/config.json. Manage it with:
tasku config list # show all keys and current values
tasku config set KEY VALUE # set a value
tasku config get KEY # read a single value
tasku config open # open the file in $EDITORUseful settings for the Mado panel:
| Key | Default | Description |
|---|---|---|
list_spacing |
compact |
compact or spacious row spacing |
col_project |
on |
Show/hide the project column |
col_category |
on |
Show/hide the category column |
col_priority |
on |
Show/hide the priority column |
col_status |
on |
Show/hide the status column |
col_due |
on |
Show/hide the due date column |
bar_project |
on |
Show/hide the project colour indicator on the left of each row |
bar_priority |
on |
Show/hide the priority colour indicator on the left of each row |
bar_status |
on |
Show/hide the status colour indicator on the left of each row |
View a breakdown of tasks by priority, status, and project:
tasku statsFrom within the Mado panel, press s to open stats inline.
Run a raw SQL query against the local task database:
tasku sql "SELECT * FROM tasks WHERE status = 'todo'"From within the Mado panel, the SQL command is accessible from the panel's action buttons.
The Tasku panel shows nothing.
Tasku must be installed (gem install tasku). If it is installed but the panel is blank, open a terminal pane and run tasku list to check for errors. A common cause is a Ruby version issue — Tasku requires Ruby 3.1+.
Tasks from the wrong project are showing.
The workspace code in projects.toml must match your Tasku project name. If the names differ, add a project key:
[API]
path = "~/Projects/my-api"
project = "My API"I added a task but the panel still shows the old list.
The panel refreshes automatically, but there can be a short delay. Press r in the panel or switch workspaces and back to force a refresh. If tasku add was run outside of Mado, a panel refresh (q then reopen) will pick it up.
How do I change which columns are shown?
Use tasku config set to toggle columns. Note that the panel also auto-hides columns when the sidebar is too narrow to fit them all — widening the sidebar will bring them back.
tasku config set col_priority off
tasku config set col_category offHow do I hide the coloured bars on the left of each row? Those are controlled separately from columns:
tasku config set bar_project off
tasku config set bar_priority off
tasku config set bar_status offChanges take effect on the next panel refresh.
Tasku Cloud sync isn't pulling my tasks.
Run tasku cloud status to check authentication. If you recently reset or changed devices, re-run tasku cloud login <token>. Sync is triggered manually with tasku cloud sync — it does not run automatically in the background.
Can I use Tasku without the Mado panel?
Yes — Tasku is a standalone CLI tool. All tasku commands work in any terminal, inside or outside of Mado.
Getting Started
Plugins