@bumpyclock/tasque
v0.9.0
Published
Simple local-first task tracker. Git-friendly. No DB.
Readme
tasque
Local-first task tracker for coding agents.
- JSONL source of truth
- Git worktree-backed
.tasque/storage by default in git repos - No DB/service
- Durable restart + replay
Install
npm install -g @bumpyclock/tasque
tsq --versionQuickstart
tsq init --no-wizard
tsq create "First task" --kind task -p 1
tsq find open
tsq find ready --lane coding --format jsonInstall or refresh the bundled agent skill:
tsq init --install-skill --force-skill-overwriteSkill install updates agent skill directories. Sync worktree setup belongs to
plain tsq init, tsq migrate, or explicit --sync-branch.
Command Reference
Canonical CLI and task contracts live in the repository AGENTS-reference.md.
For installed packages, use command help for current syntax:
tsq --help
tsq <command> --helpThis npm README keeps install and packaging guidance only, so command syntax is not maintained in multiple places.
tasks.md Batch Format
Use tasks.md when a plan naturally reads as a checklist. Each bullet creates
one task. Two-space indentation creates parent/child hierarchy. Checkbox bullets
are accepted. Tabs, odd indentation, indentation jumps, and indented first
bullets are rejected with line-numbered validation errors.
- Parent task
- Child task
- Grandchild task
- [ ] Another parent tasktsq create --from-file tasks.md
tsq create --parent <id> --from-file tasks.md
tsq create --from-file tasks.md --ensureVersion
cargo run -- --versionBuild
cargo build --releaseBinary output:
- Linux/macOS:
target/release/tsq - Windows:
target/release/tsq.exe
Release and npm packages also include a bundled OpenTUI executable:
- Linux/macOS:
tsq-tui - Windows:
tsq-tui.exe
Test + Lint + Format
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --quietCI
GitHub Actions CI (.github/workflows/ci.yml) runs:
cargo fmt --checkcargo clippy --all-targets --all-features -- -D warningscargo test --quiet
All steps must pass before merging.
Release Workflows
Release Please(.github/workflows/release-please.yml)- Runs Rust quality checks
- Opens/updates release PRs using Rust release type
Release From Cargo(.github/workflows/release-from-package.yml)- Manual release creation from
Cargo.tomlversion - Optional
versioninput must match Cargo version
- Manual release creation from
Release(.github/workflows/release.yml)- On published GitHub release, builds matrix binaries (Linux/macOS/Windows)
- Bundles the OpenTUI frontend as a standalone executable next to
tsq - Uploads release artifacts + checksums
npm-publish(.github/workflows/npm-publish.yml)- On published GitHub release, builds platform npm packages
- Packages
tsqandtsq-tuitogether for each platform - Publishes platform packages, then
@bumpyclock/tasque
Storage Layout
Git repos default to a dedicated sync worktree:
tsq initconfigurestsq-syncby default and redirects data operations there.- Fresh clones fetch the configured sync branch and create the worktree on first use.
tsq syncpushes the sync branch tooriginand sets upstream automatically when needed.- Existing git repos with main-tree
.tasquedata migrate automatically whentsqnext resolves the project root. - The main worktree keeps
.tasque/config.jsonsotsqcan find the sync branch. - The sync worktree owns the canonical
.tasque/events.jsonl, specs, snapshots, and cache.
Non-git directories use repo-local .tasque/:
events.jsonl: canonical append-only event logstate.json: derived projection cache (rebuildable, gitignored)snapshots/: periodic checkpoints (gitignored by default)specs/<task-id>/spec.md: canonical markdown specs attached to tasksconfig.json: config (snapshot_everydefault200).lock: ephemeral write lock.gitignore: local-only artifacts (state.json,.lock,snapshots/, temp files)tasks.jsonl: legacy state-cache name; read-only fallback whenstate.jsonis absent, removal target
Recommended commit policy:
- Commit
.tasque/events.jsonland.tasque/config.json - Do not commit
.tasque/state.json - Do not create or edit
.tasque/tasks.jsonl
