tracist
v0.0.95
Published
Upload and continuously stream local AI coding transcripts to Tracist
Readme
Tracist
Tracist uploads local Claude, Codex, Copilot CLI, Cursor, Devin, Gemini, Grok, Hermes, Kimi, Muse, OpenClaw, OpenCode, Pi, and Antigravity session transcripts to tracist.dev.
Run it without installing anything globally:
npx tracistThe CLI first lists detected sessions related to the current working directory. It then suggests a directory to sync: press Enter to accept it, or enter another path to override it. When launched inside a Git worktree, the default is the nearest containing repository root and includes sessions recorded anywhere beneath it. Outside a Git worktree, the default is the current directory.
After the directory is confirmed, Tracist validates the saved authentication.
On first use—or when the saved token has expired—it offers to open a short-lived
GitHub sign-in URL in the browser, with the URL shown for manual use as well.
After authentication the browser opens the main Tracist app with a syncing
welcome screen while sessions begin appearing in the sidebar. Use
npx tracist install separately when an all-directory background daemon is
preferred.
The foreground watcher stays running until interrupted and prints the URL of each newly updated session. Consecutive duplicate URLs are suppressed.
Queued Grok, Kimi, OpenClaw, OpenCode, Devin, Copilot CLI, and ACP-native Hermes work is driven through one persistent Agent Client Protocol runtime. It streams reasoning, tool calls, and answer deltas immediately, uses replay-free resume when the harness exposes it, and reconciles those live events with each harness's native disk transcript.
Queued Claude work uses one bidirectional stream-JSON process per session. The process stays warm across turns, accepts interrupts over its control channel, and keeps a turn active while Claude reports background shell, Monitor, or subagent tasks as outstanding.
Muse work uses its dependency-free muse exec --json NDJSON boundary and the
matching date-sharded session.jsonl log. Tracist resumes the exact Muse
session UUID, streams answer and tool activity, and reconciles those events
with the richer persisted reasoning/tool records by stable run and call IDs.
The server advertises its minimum supported tracist package version during
authentication and machine WebSocket handshakes. An outdated foreground CLI
stops with an explicit npx tracist@latest upgrade instruction. An installed
daemon downloads the latest package, replaces its private runtime atomically,
and lets systemd or launchd restart it (with a direct restart on Windows).
On normal startup, the CLI also lists the ten most recently modified agent sessions within the selected repository or current-directory scope. Sessions recorded in a successful uploader checkpoint display a checkmark and their existing Tracist URL; sessions that have not been uploaded are marked as such. Each entry uses its reconstructed Tracist title and model metadata.
If the background daemon is already running, npx tracist and
npx tracist upload subscribe to that process over a private local socket
instead of starting a second transcript scanner. The CLI replays recently
updated sessions for the current working directory and then follows new ones.
The equivalent non-interactive commands are:
npx tracist upload
npx tracist install
npx tracist status
npx tracist uninstall
npx tracist logoutThe daemon is installed as a user service: systemd on Linux, a LaunchAgent on macOS, or a per-user scheduled task on Windows. Uninstalling removes the service and its copied runtime while retaining authentication and transcript state.
Credentials are stored with user-only permissions in the operating system's
normal application configuration directory. TRACIST_ORIGIN can point the CLI
at another compatible deployment.
Reducer corpus backtests
Maintainers can archive every raw transcript segment and append-only live tape from the production R2 bucket, then replay the canonical Worker/browser reducers and invariants locally:
npm run trace:corpus -- allThe command uses the current Wrangler login through an ephemeral,
token-protected remote-development Worker bound to localhost. It does not add a
production export route. Data, the ETag manifest, and report.json are written
to the gitignored .tracist-r2/ directory. Repeated downloads reuse unchanged
objects; download, replay, --session <id>, --output <directory>, and
--concurrency <n> can be used independently.
