ticket

module
v0.1.694 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2026 License: MIT

README

ticket

ticket is a ticket and project management system for software engineering work.

It models:

  • projects with unique prefixes such as CUS
  • tickets with human keys such as CUS-42
  • ticket types epic, task, bug, story, requirement, decision, question, and note
  • lifecycle as stage/state, for example develop/active
  • stages: design → develop → test → done
  • states: idle | active | success | fail
    • idle: ready but not currently in progress
    • active: currently being worked on (requires an assignee)
    • success: stage complete, auto-advances to next stage
    • fail: stage did not succeed

The authoritative system contract is in SPEC.md. User-facing workflow details are in USER_GUIDE.md. Implementation and architecture notes are in docs/DESIGN.md.

Install

brew install simonski/tap/ticket

Both ticket and the alias tk are installed.

or

go install github.com/simonski/ticket/cmd/ticket@latest
alias tk=ticket

Build from source

cd $CODE
git clone github.com/simonski/ticket
cd ticket
make install
alias tk=ticket

Test

make test

Usage

In your project, run

tk init

You can now create tickets

tk add "Create a skeleton project in go."
claude -p "work on next ticket"

Web Server

Start the server and web UI:

tk server

The web UI is then available at http://localhost:8080.

CLI Quick Start

Create a project:

ticket project create -prefix CUS -title "Customer Portal"
ticket project use CUS

Create tickets:

ticket epic "Authentication"
ticket add "Customers can reset their password."
ticket bug "Reset token expires immediately."

Inspect and move work:

ticket list
ticket get -id CUS-T-42
ticket active -id CUS-T-42
ticket complete -id CUS-T-42
ticket claim -id CUS-T-42

Running an agent

Create an agent (requires a running server):

tk agent create

This prints the agent UUID and a generated password.

Run the agent worker:

export AGENT_ID=<uuid>
export AGENT_PASSWORD=<generated-password>
export TICKET_URL=http://localhost:8080
tk agent run

or with flags:

tk agent run -id <uuid> -url http://localhost:8080

The password is read from the AGENT_PASSWORD environment variable, or prompted interactively (input masked with *).

Options: -llm claude (default, uses Sonnet 4.5), -llm codex, or -llm /path/to/binary. Use -v to stream LLM input/output to the terminal.

Claude Code integration

ticket ships a Claude Code skill in .claude/skills/tk/. Copy it into your project's .claude/skills/ directory (or ~/.claude/skills/ globally) and Claude will query and update tickets during coding sessions automatically.

See QUICKSTART.md for setup details.

Notes

  • The CLI and web app use the same HTTP API.
  • Ticket IDs are human-readable keys such as CUS-T-42.
  • tk ls hides closed and archived tickets by default; use -a to include closed, -d to also include archived.
  • The HTTP API exposes resource families under /api/ including tickets, projects, users, agents, teams, roles, workflows, and more.

Directories

Path Synopsis
cmd
sieve command
ticket command
internal
tui
Package tui implements the interactive terminal UI for tk (tk -g).
Package tui implements the interactive terminal UI for tk (tk -g).
tools
parser command
wiggum command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL