Skip to main content

A vim-style Taskwarrior TUI built with Textual.

Project description

hamtask

hamtask is a vim-style Taskwarrior TUI built with Python and Textual.

Goals

  • List-first, keyboard-only interface.
  • Use Taskwarrior's native filters and raw command arguments.
  • Read report.next.filter, report.next.columns, report.next.labels, and report.next.sort from ~/.taskrc or ~/.config/task/taskrc.
  • Mutate tasks by invoking the task command, never by editing Taskwarrior data files directly.

Requirements

  • Python 3.11+
  • Taskwarrior's task command must be installed and configured

Install from PyPI

uv tool install hamtask

Then run:

hamtask

Open a specific Taskwarrior report from your taskrc:

hamtask completed
hamtask waiting

Update an installed PyPI version with:

uv tool upgrade hamtask

Run during development

uv run hamtask

Local installation

Install the current checkout as a uv tool:

uv tool install .

Then run:

hamtask

If your shell cannot find hamtask, run:

uv tool update-shell

Then restart your terminal or reload your shell config.

Update local installation

After changing the local source code, reinstall with:

uv tool install . --force

Uninstall

uv tool uninstall hamtask

Key bindings

  • j / k: move down/up
  • g: go to top
  • G: go to bottom
  • r: refresh
  • q: quit
  • enter: toggle bottom task details
  • /: search current list
  • f: apply Taskwarrior filter
  • :: command mode
  • a: task add ...
  • m: task <uuid> modify ...
  • e: task <uuid> edit
  • A: task <uuid> annotate ...
  • space: select/unselect task
  • d: done selected tasks, or current task when nothing is selected
  • s: start/stop selected tasks, or current task when nothing is selected
  • u: task undo
  • x: delete with confirmation
  • ?: show all shortcuts

Reports

By default, hamtask loads the next report from your taskrc:

report.next.filter
report.next.columns
report.next.labels
report.next.sort

You can start with another report:

hamtask waiting

Or switch reports at runtime:

:report waiting

hamtask will read the matching report keys, such as:

report.waiting.filter
report.waiting.columns
report.waiting.labels
report.waiting.sort

Command mode

Supported commands:

:q
:quit
:r
:refresh
:f <filter>
:filter <filter>
:report <name>
:add <raw task args>
:mod <raw task args>
:modify <raw task args>
:done
:undo
:delete
:annotate <text>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hamtask-0.3.0.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hamtask-0.3.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file hamtask-0.3.0.tar.gz.

File metadata

  • Download URL: hamtask-0.3.0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for hamtask-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5c40261eb7b496ca69fff67956f678309052f84383cf607c62ab7a47c3774dfb
MD5 f55ff14c2f86f92ba5d30d314d9b396e
BLAKE2b-256 858d79af5036ec1997ae6f7aa0e6ff353efc65df874a64a7c0c2d4ac3d56afc8

See more details on using hashes here.

File details

Details for the file hamtask-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: hamtask-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for hamtask-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 923c10fed50f6415cd5169e1a3199418480e4dc631aced61410e47c956d02e3d
MD5 1f5ba14f1af5e671a78e73c003ff9665
BLAKE2b-256 78ccba6e61e87a3a74560e110aa7a38b58452ed67d96e1a94a25599fea244992

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page