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 ...
  • d: task <uuid> done
  • s: start/stop selected task
  • 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.2.0.tar.gz (30.2 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.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hamtask-0.2.0.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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.2.0.tar.gz
Algorithm Hash digest
SHA256 b8638c77c719dc2fb3b10d6c22e2fe6e3fb8b879502a36ded2c644210f0a9791
MD5 be28bcd27b8a337773947639aa66ebee
BLAKE2b-256 8fe3abe0a2512e9a508f203759fb3b4996d0e0a328e33feb514d5a02775d4241

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hamtask-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d85e7da3c8db45aba049199decf5685d23db2190ffa3614537794132f2a3ef9c
MD5 553824a4038c1de4f533a503397e6782
BLAKE2b-256 cc8afc9091f2ab04b066c5514f043bd4236975ea878318cc02b34f7515bdf8ff

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