trackerchat

command
v0.46.0 Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2026 License: MIT Imports: 12 Imported by: 0

README

trackerchat

Drive Tracker pipelines from your terminal. Type a request, answer gates inline, watch the run happen — a REPL front-end.

trackerchat is a second consumer of the transport boundary, built from the same transport/chatops core as the Slack bot (trackerbot). It proves the boundary is real: the only Slack-specific code there becomes terminal I/O here — everything else (the Runner, commands, gating, estimate/confirm, budget-bump, steer, durable resume) is shared and inherited for free.

$ trackerchat
trackerchat — type a request (e.g. `make me a CLI that greets people`), or /quit.
> run ask_and_execute
🔎 Estimate: ~$0.30–$2.10 · 6 steps · 3 agent nodes …
🚀 starting `Ask & Execute` — I'll keep you posted here.
❓ Which approach should I take?
   1) Minimal  [default]
   2) Full-featured
   (reply with a number, a label, or your own text)
> 1
…
✅ done — success · $0.42 · 1m03s

How it works

The REPL is one conversation, so it uses one fixed thread identity. Each input line is routed by the same rules the Slack bot applies to a thread:

  • A pending gate? The line answers it (a number or label selects a choice; anything else is the free-text / "other" answer).
  • Otherwise it's a fresh request — dispatched on a goroutine so the loop stays free to read the gate answers a run will ask for.

The transport-neutral logic lives in transport/cli (Session, the ThreadUI, gate rendering, answer mapping) and is unit-tested end-to-end via a fake dispatcher — no LLM or Slack needed. cmd/trackerchat is just the wiring: build a Config, a RunManager, and a Runner, then run the session over stdin/stdout.

Commands

The full trackerbot command set works here too — run <workflow>, free-text requests (with a provider key), retry, bump <dollars>, steer <guidance>, status, cancel, runs, workflows, help — plus /quit (or /exit) to leave.

Configuration

Env var Purpose Default
ANTHROPIC_API_KEY / etc. provider keys the workflows use (and natural-language intent)
TRACKERCHAT_WORKDIR where run <name> finds local .dip files .
TRACKERCHAT_RUNS base dir for isolated per-run workdirs $TMPDIR/trackerchat-runs
TRACKERCHAT_MODEL model for natural-language intent claude-haiku-4-5-20251001
TRACKERCHAT_BACKEND agent backend (native/claude-code/acp) native
TRACKERCHAT_MAX_COST_CENTS fail-closed per-run cost ceiling in cents; 0 disables 500 ($5)
TRACKERCHAT_KEEP_WORKDIRS 1 retains finished-run workdirs (else reaped)

Without a provider key the REPL still works with the explicit run <workflow> [k=v …] grammar.

Run

export ANTHROPIC_API_KEY=sk-…
go run ./cmd/trackerchat          # or: go build -o trackerchat ./cmd/trackerchat && ./trackerchat

Limitations

  • One conversation per process: a new request while a run is active is rejected (that thread is busy). Control commands (status, cancel, steer) still work mid-run.
  • Output interleaves with your typing, as any REPL bot's does.

Documentation

Overview

ABOUTME: Entry point for trackerchat — a terminal REPL front-end for Tracker. ABOUTME: A second transport-boundary consumer alongside trackerbot, sharing the ABOUTME: chatops Runner; only the terminal I/O differs from Slack.

Jump to

Keyboard shortcuts

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