jot is a note-first companion for Taskwarrior and Taskwarrior-Nautical.
It helps you keep the context around a task in one place: what happened, what
changed, what still matters, and what belongs to the wider project or recurring
chain.
Use jot when Taskwarrior alone is not enough and you want:
- task notes that stay with the task
- chain notes for recurring Nautical work
- project notes for shared project context
- quick timestamped updates without opening the full editor every time
- a TUI that makes browsing and updating notes faster than typing commands
From the repo root:
./install.shThat installs jot into:
~/.local/bin/jot~/.local/lib/jot/
If ~/.local/bin is not on your PATH, add:
export PATH="$HOME/.local/bin:$PATH"If you just want to see what jot can do:
jotIf you want the full help:
jot --helpIf you want the visual interface:
jot tuiKeep the task’s context in one place:
jot note 42
jot note-append 42 Followed up with the vendor
jot add-to task 42 --heading "Next steps" --text "Call vendor Monday"
jot task-cat 42Keep a note for the whole recurrence chain:
jot chain 42
jot chain-append 42 Skip holidays
jot add-to chain 42 --heading "Operating notes" --text "Use the fallback path"
jot chain-cat 42Keep shared notes for a project namespace:
jot project Finances.Expense
jot project-append Finances.Expense Waiting on reimbursement policy update
jot add-to project Finances.Expense --heading "Risks" --text "Vendor delay"
jot project-show Finances.ExpenseCapture short events and keep them visible in Taskwarrior:
jot add --type status 42 waiting on vendor
jot list 42
jot show 42
jot search vendorjot tui is the fastest way to browse and update notes.
Main shortcuts:
qquitrrefresh dataurefresh the current workspacectrl+popen the command palette/focus searchEnteropen the selected roweopen the active note in the editordmove the active note to trashaadd a timestamped entry under a task headingcadd a timestamped entry under a chain headingpopen the project workspace
The TUI has three main areas:
Browsefor tasks and projectsLatest Editsfor recent activitySearchfor finding notes and logged events
Task notes:
jot note <task-ref>
jot note-append <task-ref> [text...]
jot task-cat <task-ref>
jot task-delete <task-ref>Chain notes:
jot chain <task-ref>
jot chain-append <task-ref> [text...]
jot chain-cat <task-ref>
jot chain-delete <task-ref>Project notes:
jot project <project-name>
jot project-append <project-name> [text...]
jot project-show <project-name>
jot project-cat <project-name>
jot project-delete <project-name>Browsing and reporting:
jot project-list
jot report recent --limit 10
jot stats
jot paths
jot rebuild-index
jot search --kind project-note vendorReference and event capture:
jot add [--type TYPE] <task-ref> [text...]
jot add-to {task|chain|project} <ref> --heading <title> [--text "..."]
jot list <task-ref>
jot show <task-ref>
jot export <task-ref>All commands support --json.
jot creates note files from templates when they exist. If you want to change
the default note layout, edit the files in ~/.task/jot/templates/:
task-note.mdchain-note.mdproject-note.md
Templates can use tokens such as:
{description}{project}{chain_id}{date}{time}{datetime}
If a template is missing or invalid, jot falls back to the built-in note
layout.
jot is designed to complement Taskwarrior-Nautical.
When a task belongs to a Nautical chain, jot can keep:
- a note for the concrete task occurrence
- a note for the chain itself
- a note for the broader project the task belongs to
That gives you three layers of context without forcing everything into one note.
jot --help
jot --versionpython3 -m py_compile jot jot_core/*.py jot_tui/*.py tests/test_jot.py
python3 -m unittest discover -s tests -vThe tests use a fake task binary and a temporary HOME, so they do not touch
your real Taskwarrior data.
jotdoes not install hooks yet- Taskwarrior annotations are treated as the visible event stream
- Durable content lives in note files under
~/.task/jot/