Skip to main content

Crate tix

Crate tix 

Source
Expand description

tix — a terminal issue tracker.

Issues live as human- and agent-readable markdown files with YAML frontmatter in a version-controlled directory (docs/issues/ by default), and are manipulated both by a full clap CLI and a ratatui kanban board. tix export/tix import shell out to glab/linear-cli for external sync (contracts/external-tools.md).

WP01 shipped the immutable foundation: the error type, the slug filename stem builder, the model (issue, status, priority, config entities) and the config reader/writer. WP02 added the storage façade over issues_dir and the editor bridge. WP03 adds the full clap cli command tree, the per-command commands handlers, and the minimal TUI app shell. WP05 fills in the external sync module (token resolution, glab/linear-cli adapters, export/import orchestration). Consumers freeze on the public API shipped here.

Modules§

app
assignee
Assignee identities and filesystem-safe directory segments.
cli
The clap command tree, the frozen exit-code scheme, and the process boundary that resolves config, opens the store and hands off to the per-command handlers.
commands
Thin dispatch: route a parsed CLI Command to its per-command handler module. Also owns the shared <issue> selector resolution and priority validation that several commands reuse.
config
tix.toml config schema, defaults, loading, saving and validation.
editor
error
Typed error surface for tix.
kitty
Spec Kitty integration — kitty-specs/ artifact support for tix.
mcp
MCP server entry point and dispatch loop (tix mcp).
model
Issue data model and file-surface types.
search
Shared search corpus and matchers for tix search (CLI, WP04) and the / fuzzy filter (TUI, WP05).
slug
Title → kebab-case filename stem.
storage
sync
External tracker sync: orchestration for tix export / tix import, the Tool selector, the CommandRunner spawn seam, and the pure mapping / conflict-resolution rules.
ui
watcher
Dependency-free polling filesystem watcher (issue #10).