CLI tool
kdheepak/taskwarrior-tui avatar
kdheepak/taskwarrior-tui

taskwarrior-tui: a task list you drive with vim keys

`taskwarrior-tui`: A terminal user interface for taskwarrior

2,139 stars116 forksRustMIT

At a glance

What is it?
A Rust terminal interface for Taskwarrior that keeps the CLI as its configuration surface, adding live filter updates, multi-selection and colors read straight out of .taskrc.
Who is it for?
taskwarrior-tui is the layer Taskwarrior never shipped. The CLI is excellent at describing and filtering tasks and has no opinion about how you browse them, so every attempt to review a long list ends in the same place: retyping filters into a prompt.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 10 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 7, 2026, and from our analysis. They are not legal advice.

Editorial analysis

It is a front end, not a replacement

Taskwarrior stores and queries tasks. It is a command line tool, and its power comes from filters and reports that you type at a prompt. What it does not offer is a way to sit inside a long list of pending tasks and move around it without leaving the command line.

taskwarrior-tui adds that missing layer. The feature list in the README is short enough to take at face value: vim-like navigation, live filter updates, add, delete, complete and log tasks, multiple selection, tab completion, and colors based on Taskwarrior. Read as a group, these describe an interface rather than a feature set. Live filter updates mean a report re-renders as you type instead of after you press enter, which is the single change that makes a Taskwarrior report pleasant to explore.

The evidence that this is a front end rather than a rewrite sits in the configuration story, which is the subject of its own section below. Taskwarrior remains the backend, your database remains the database, and the TUI is something you can stop running without losing anything.

The version warning is the first thing to read

The README opens with a callout that is easy to scroll past and should not be. Taskwarrior v3.x may break taskwarrior-tui features in unexpected ways, and the project asks you to file a bug report if you hit one. It also names a hard boundary: taskwarrior-tui v0.25.4 is the last version that supports Taskwarrior 2.x as its backend.

That statement is about Taskwarrior, not about taskwarrior-tui's own releases, and the distinction matters when your distribution ships an older Taskwarrior than you expected. If your system is on Taskwarrior 2.x, pinning to v0.25.4 is the documented path. If you are on 3.x, you are on the current line and the warning applies to you directly.

The current release is v0.27.0, published 2026-04-09, and it carries a single breaking change: automatic functionality for the task info show. Everything else in that release is documentation and a demo tape. The version before it, v0.26.12 from the day prior, added mouse wheel scrolling of the task list, and v0.26.11 added a timesheet tab along with a dependency cleanup that replaced cassowary with kasuari. Three releases in three days is what a healthy nightly cadence looks like, and it also means the project does not hold releases long.

Your .taskrc is the configuration surface

There is no taskwarrior-tui configuration file. The project reads Taskwarrior's `.taskrc`, and the distinguishing idea is that it reads the display settings too, not just the backend keys. The README example makes the mechanism explicit in comments: taskwarrior-tui reads color attributes from the color settings in order to display tasks with the same colors as the CLI, and it reads the labels and columns options so the task list looks the way Taskwarrior prints it.

The relevant lines look like this.

.taskrc
# taskwarrior-tui reads color attributes from the following to display the same colors of tasks as the CLI
color.tagged=black on rgb444

# taskwarrior-tui reads the labels and columns from these options to display tasks the same way taskwarrior does
report.next.labels=ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg
report.next.columns=id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description.truncated_count,urgency
report.next.filter=(status:pending or status:waiting) page:limit

### taskwarrior-tui configuration options
uda.taskwarrior-tui.keyconfig.done=x
uda.taskwarrior-tui.keyconfig.delete=d
uda.taskwarrior-tui.task-report.use-alternate-style=false
uda.taskwarrior-tui.shortcuts.1=~/local/bin/task-sync.sh
uda.taskwarrior-tui.report.next.filter=(status:pending or status:waiting)

The `uda.` prefix is Taskwarrior's own mechanism for user-defined attributes, so the project extends the standard configuration format rather than inventing a parallel one. That is the right call: a keybinding change is one line in the file you already keep under version control, and it survives a reinstall.

Two lines are worth pausing on. `uda.taskwarrior-tui.report.next.filter` sets the filter the TUI uses for its task report, separate from `report.next.filter`, so you can leave your CLI reports alone while the interface opens on what you care about. And `uda.taskwarrior-tui.shortcuts.1` binds a script to a single digit, which is the hook for putting your own sync command a keystroke away instead of leaving the interface.

What the Cargo manifest says about the build

The manifest is short and tells you more than a README badge would. Edition 2021 is not in play: `edition = "2024"` is, which sets a real floor on the toolchain you need if you build from source. The README says you will need the most recent stable Rust compiler, and edition 2024 is the concrete reason.

The interface stack is ratatui 0.30 with crossterm 0.29, and the crossterm feature list includes `event-stream`, which is how the program receives input events asynchronously rather than polling for keys. Input for text entry goes through rustyline 18 with file history enabled, which is a separate path from the navigation keys: you get a proper line editor with history for filters, and key handling for movement.

Two dependencies explain behaviour you would otherwise have to reverse-engineer. `task-hookrs` at 0.9.0 is the Taskwarrior hook implementation, which is how hooks defined in your Taskwarrior configuration get run. `kasuari` at 0.4.12 is the constraint solver in the Rust ecosystem and replaces cassowary in the v0.26.11 cleanup, almost certainly for layout constraints in the interface.

The build also has a script. `build.rs` exists and pulls in `clap_complete`, which means shell completions for the command line interface are generated at build time and written to the `completions/` directory that is visible in the repository tree. That is the sort of detail that separates a project maintained for daily use from one maintained for releases.

How to install, and what it costs you

Installation is deliberately unspecial. Taskwarrior itself has to be installed first, from taskwarrior.org, because the TUI is only a front end and there is nothing to run without it. After that you download the tar.gz for your platform from the latest release, unpack it, and run the binary.

Pre-compiled builds cover the four combinations named in the platform badge: linux-64, osx-64, win-32 and win-64. If you would rather not deal with archives, the documentation has per-platform package manager instructions, and the repository tree shows the packaging effort behind that: there is an `.rpm/` directory, a `snap/` directory and a `packaging/` directory, plus rpm metadata in the manifest itself that installs to `/usr/bin/taskwarrior-tui`. Compiling from source needs current stable Rust and is otherwise unremarkable.

The licence is MIT. The project is actively maintained: the last push was 2026-09-27, well within recent months, and 132 open issues against 2,132 stars is a ratio that says people are filing things. Documentation lives on the author's own site rather than in the repository, covering installation, a quick start, troubleshooting with logs and timing checks, key configuration, colors and advanced options. The repository's `docs/` directory exists too, and `CHANGELOG.md` tracks changes between releases.

Editorial conclusion

taskwarrior-tui is the layer Taskwarrior never shipped. The CLI is excellent at describing and filtering tasks and has no opinion about how you browse them, so every attempt to review a long list ends in the same place: retyping filters into a prompt. This project keeps that engine and replaces the interaction, and the strongest evidence that it stays faithful is the color handling, which reads your existing color settings rather than inventing a palette. Two things decide whether it works for you. First, the backend version: v0.25.4 is the last release that supports Taskwarrior 2.x, and Taskwarrior 3.x may break features, so check what your distribution ships before you start tuning keys. Second, the pace: 132 open issues against 2,132 stars is a project moving fast enough to change shape, which suits people who read release notes and not people who need a stable interface frozen in place. Install the binary, let it read your .taskrc, and decide about mouse scrolling and the timesheet tab from there.

Frequently asked questions

What does taskwarrior-tui add to Taskwarrior?

It adds a browsable terminal interface over the same backend and database. You get vim-like navigation, live filter updates as you type, adding, deleting, completing and logging tasks, multiple selection, tab completion, and colors that match your existing Taskwarrior color settings.

Does taskwarrior-tui support Taskwarrior 3.x?

Partially, with a warning attached. The README states that Taskwarrior v3.x may break taskwarrior-tui features in unexpected ways and asks for bug reports if that happens. v0.25.4 is the last release supporting Taskwarrior 2.x, so on 2.x you pin there.

How do I configure keybindings?

In your `.taskrc`, using Taskwarrior's user-defined attribute syntax. Keys live under `uda.taskwarrior-tui.keyconfig`, so `uda.taskwarrior-tui.keyconfig.done=x` marks x as the done key. There is no separate configuration file for the TUI.

Why does taskwarrior-tui use my report settings?

Because it renders the same view Taskwarrior prints. The TUI reads `report.next.labels` and `report.next.columns` so the list matches your CLI, and you can override the filter it opens with using `uda.taskwarrior-tui.report.next.filter` without changing what your CLI reports do.

What is the current release and what changed in it?

v0.27.0, published 2026-04-09. Its only feature change is a breaking rework of the automatic functionality for the task info show, alongside documentation for quick-tag and a demo tape. The two releases before it added mouse wheel scrolling and a timesheet tab.

Official sources

  1. kdheepak/taskwarrior-tui on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/kdheepak-taskwarrior-tui.svg)](https://hysenlabs.com/projects/kdheepak-taskwarrior-tui)