id = "tuxedo" name = "tuxedo" homepage = "https://github.com/webstonehq/tuxedo" description = "Fast, keyboard-driven terminal UI for todo.txt." executables = ["tuxedo"] [dotfiles] # Tuxedo's upstream README documents config.toml and custom themes under the # XDG config directory. Its phone-capture share_token is a bearer credential, # so keep only that TOML key secret. # https://github.com/webstonehq/tuxedo#configuration paths = [ "[configHome]/tuxedo/config.toml", "[configHome]/tuxedo/keybinds.toml", "[configHome]/tuxedo/themes/*.toml", ] exclude = [] secret = [] side_effect = false [[dotfiles.secret_paths]] file = "[configHome]/tuxedo/config.toml" match = { key_path = ["share_token"] } [commands] format = 1 label = "todo.txt command line" description = "One-shot tuxedo commands against the todo file chosen by TODO_FILE or TODO_DIR. Other subcommands (append, pri, archive and so on) are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "readme" kind = "manual" url = "https://github.com/webstonehq/tuxedo/blob/main/README.md#command-line-interface" revision = "2026-10-27" evidence = """ tuxedo add "Pay rent +home @bank due:2026-07-01" # or: tuxedo a "..." tuxedo ls @bank # filter by context tuxedo do 3 # mark task 3 complete | `add` | `a` | `TEXT...` | Add a task (natural-language dates supported, same as the `n` prompt). | | `do` | `done`, `complete` | `N...` | Mark tasks complete (recurring tasks spawn their next instance). | | `list` | `ls` | `[TERM...]` | List tasks. `TERM` is `+project`, `@context`, or free text. | - `--json` — emit machine-readable JSON instead of text. """ [[commands.subcommand]] path = ["add"] label = "Add a task" description = "Append a new task to the todo file." [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/webstonehq/tuxedo/blob/main/README.md#command-line-interface" revision = "2026-10-27" evidence = """ tuxedo add "Pay rent +home @bank due:2026-07-01" # or: tuxedo a "..." | `add` | `a` | `TEXT...` | Add a task (natural-language dates supported, same as the `n` prompt). | - `--json` — emit machine-readable JSON instead of text. """ [[commands.subcommand.field]] id = "text" label = "Task text" description = "Can include +project, @context and due:YYYY-MM-DD." type = "string" position = 0 min = 1 multiple = true sources = ["readme"] [[commands.subcommand.field]] id = "json" label = "JSON output" type = "boolean" option = ["--json"] sources = ["readme"] [[commands.subcommand.task]] id = "add" label = "Add task" fields = ["text"] required = ["text"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["text", "json"] [[commands.subcommand]] path = ["ls"] label = "List tasks" description = "List tasks, optionally filtered by +project, @context or text." [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/webstonehq/tuxedo/blob/main/README.md#command-line-interface" revision = "2026-10-27" evidence = """ tuxedo ls @bank # filter by context | `list` | `ls` | `[TERM...]` | List tasks. `TERM` is `+project`, `@context`, or free text. | - `--json` — emit machine-readable JSON instead of text. """ [[commands.subcommand.field]] id = "terms" label = "Filter terms" type = "string" position = 0 multiple = true sources = ["readme"] [[commands.subcommand.field]] id = "json" label = "JSON output" type = "boolean" option = ["--json"] sources = ["readme"] [[commands.subcommand.task]] id = "list" label = "List tasks" fields = ["terms", "json"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["terms", "json"] [[commands.subcommand]] path = ["do"] label = "Complete tasks" description = "Mark tasks complete by their 1-based line number." [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/webstonehq/tuxedo/blob/main/README.md#command-line-interface" revision = "2026-10-27" evidence = """ tuxedo do 3 # mark task 3 complete | `do` | `done`, `complete` | `N...` | Mark tasks complete (recurring tasks spawn their next instance). | """ [[commands.subcommand.field]] id = "numbers" label = "Task numbers" type = "integer" position = 0 min = 1 multiple = true sources = ["readme"] [[commands.subcommand.task]] id = "do" label = "Complete tasks" fields = ["numbers"] required = ["numbers"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["numbers"]