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

After hamtask is published to PyPI, users can install it as a uv tool:

uv tool install hamtask

Then run:

hamtask

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

Publish to PyPI

Before publishing, verify the project:

uv run ruff check .
uv run pytest
uv build

This creates distribution files in dist/.

For a first test release, publish to TestPyPI:

uv publish --publish-url https://test.pypi.org/legacy/ --token <test-pypi-token>

Install from TestPyPI with PyPI as the fallback index for dependencies:

uv tool install \
  --index-url https://test.pypi.org/simple/ \
  --extra-index-url https://pypi.org/simple \
  hamtask

Publish to PyPI:

uv publish --token <pypi-token>

For later releases:

  1. Bump version in pyproject.toml.
  2. Run checks and build again.
  3. Publish with uv publish --token <pypi-token>.

Key bindings

  • j / k: move down/up
  • g: go to top
  • G: go to bottom
  • r: refresh
  • q: quit
  • enter: toggle bottom task details
  • /: apply Taskwarrior filter
  • :: command mode
  • a: task add ...
  • m: task <uuid> modify ...
  • e: task <uuid> edit
  • A: task <uuid> annotate ...
  • d: task <uuid> done
  • u: task undo
  • x: delete with confirmation
  • ?: show all shortcuts

Command mode

Supported commands:

:q
:quit
:r
:refresh
:f <filter>
:filter <filter>
: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.1.0.tar.gz (26.0 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.1.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hamtask-0.1.0.tar.gz
  • Upload date:
  • Size: 26.0 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.1.0.tar.gz
Algorithm Hash digest
SHA256 d7782c153c47bbc7aa081bb832f728cc3c0594a19c1b9a0cf34cb86f4d49eb0e
MD5 95d99400f0e48754e8ead9d22e6fcff3
BLAKE2b-256 8f88c007e392f99f0de9cafac7483b2206d5530d45aa8806e6dff756c08910e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hamtask-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e2878639ab09977859c38bde1a01d696e5f7496c4b0c2db69cf1061f762ec9e
MD5 5e8e76e96094bdd43ca7655865ff4e8c
BLAKE2b-256 c95bda8a85520067bbe690c0e2f638c0c43bd5569ab8802123ba1231ea39bd58

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