An opinionated terminal interface for efficient browsing and management of [x]it! formatted todo items. Inspired, loosely, by Getting Things Done (David Allen) and informed by various entries of the self-help skills & habits genre (Charles Duhigg, James Clear, Anders Ericsson, etc).
Development on this project is essentially paused. The current app suits my own needs well and I am not currently time rich. Contained, legible PRs are probably OK, but general recommendation for further customization is to fork.
.xit, .md, and .txt filestodo and donep) pomodoro mode for timeboxed focus on individual items; tracks overall time spendz) progressive snooze parks items for 1,2,3,5,8,... daysnode_modules files)
From some directory containing [x]it! files / items, or from anywhere to recover items written in app:
tuido
tuido can also be used non-interactively:
tuido list [--max N] [-z] [-a] [path]
Lists open and in-progress items from path (default: current directory). Snoozed and completed/cancelled items are excluded by default.
-z, --zzz — include snoozed items-a, --all — include snoozed, completed, and cancelled items--max N — limit output to N itemstuido create <text>
tuido add <text>
Creates a new open item, written to the configured writeto location.
tuido init
Interactive setup wizard. Creates a local (./.tuido) or global (~/.config/tuido.conf) config file. Run this the first time you use tuido in a new context, or to reconfigure an existing one.
importance modifier on this itemtuido permits some shorthands for authoring items with time & date content. Shorthand timespans take the form NT, where N is some number, and T is one of m, h, d, w, M, or y (minute, hour, day, week, month, and year). 4d is four days, 253h is 253 hours, etc.
An item shorthand is one of:
d (due)a (active after)r (recurs every)e (estimate)followed by a shorthand timespan.
Examples:
english 1101 comparison paper d2w will expand into english 1101 comparison paper #due=YYYY-MM-DD, with the date appropriately filled in for two weeks from nowcall mom r1w will expand into call mom #repeat=1w, which will reschedule itself one week into the future each time it is marked complete.a1m catch up on stranger things expands into #active=YYYY-MM-DD catch up on stranger things, with the date one month from now. This hides the item from view until the active date - essentially setting yourself a reminder for the future.fix the sink e2h expands into fix the sink #estimate=2hDisplayed items are sorted like this:
important items (prefixed with !)due dates, from earliest to latestTuido writes new items by default to $HOME/.tuido/YYYY-MM-DD.xit. To set a different write location, create file tuido.conf in the user config directory ($HOME/.config in linux, $HOME/AppData in windows). The write location can be a file, which will be appended to, or a directory, which whill recieve datestamped .xit files as in the default setting.
writeto=~/mysingletodolist.txt
writeto=~/todos
Include a .tuido file in individual directories to add filetypes for parsing along that subtree.
extensions=go,js,cpp
To exclude directories or files from traversal, use glob patterns (note: .gitignore patterns are also respected automatically):
exclude=node_modules,vendor,dist
exclude=*.gen.go,*.min.js
To configure the friction threshold that triggers the deterrence nag when adding items:
frictionThreshold=10
Default configuration values are:
writeto=~/.tuido
extensions=xit,txt,md
frictionThreshold=5
go run .tuido is dogfooding. The project's .tuido file:
.go files as well as the defaults.Result being that the app, running in test, contains a good running list of development todos & a convenient method to append to the roadmap.
GPL
ctrl-C?)tuido --norecursetuido --printtuido --config extensions=xit,md,go,js,ts$ claude mcp add tuido \
-- python -m otcore.mcp_server <graph>