Skip to content
Tom Dringer edited this page Sep 27, 2026 · 4 revisions

Tasku Integration

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.


Installing Tasku

gem install tasku

Requires Ruby 3.1 or later. Once installed, the tasku command is available in all Mado panes automatically.

Getting the latest version

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-*.gem

The Tasku panel

The 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.

Keyboard shortcuts

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

Status filters

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.

Panel position

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 panel

Disabling the panel

disable_tasku = true

Project filtering

Mado 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).

How the mapping works

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".


Setting up projects in Tasku

Create a task for a project:

tasku add --name="Fix login bug" --project="My API" --priority high

Or use interactive mode to fill in all fields with prompts:

tasku add -i

List 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"

Task codes

Attach a short code to any task:

tasku add --name="Fix login bug" --project="My API" --code API

Codes appear in the task list as a quick label alongside the task name.


Tasku Cloud sync

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 access

Synced tasks receive a UUID for stable cross-device identity. The Mado Tasku panel reflects synced changes on the next list refresh.


Configuration

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 $EDITOR

Useful 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

Stats

View a breakdown of tasks by priority, status, and project:

tasku stats

From within the Mado panel, press s to open stats inline.


SQL access

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.


FAQ

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 off

How 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 off

Changes 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.

Clone this wiki locally