The CLI that coordinates your coding agents.
this one ~10 MB Rust binary. It gives Claude Code, Codex and OpenCode one toolbox (shared mail, tracked work, clean handoffs and a context budget), runs a fleet of them, runs your CI where the machine is quiet, and hosts an assistant of your own.
brew install SmooAI/tools/th
th upHarness toolbox
One command wires th into the coding agents you already use.
th harness enable claude-code|codex|opencode|cursor|all installs the whole toolbox into each one: pearls for work tracking (with Jira sync), agent mail between every session, /th-handoff and /th-clear to hand a session to a fresh context without losing the thread, and the context budget below. Run it again any time to update.
th harness enable allContext budget
Long sessions on far fewer input tokens.
Every turn of a long agent session re-reads its whole context, so a bloated session costs more each turn. The harness auto-compacts at 300k tokens, suggests a /th-clear at natural milestones, and puts a context meter in your statusline. Across 124 of our own sessions over 30 days, resetting at 300k would have cut input tokens by up to 58%, and taking every /th-clear suggestion at 150k by up to 77%. Measure yours with the report.
th harness budget --reportSmoothFlow
A fleet of coding agents, watched from one window.
Start Claude Code, Codex and OpenCode sessions under tmux, each in its own worktree. Prompt them, race several on one task and keep the winner, answer their permission prompts, and watch the whole fleet from the SmoothFlow Mac app. Your agents can drive the fleet too.
th flow new --kind codex --prompt "fix the flaky test"Agent mail
Every coding agent on your machine, on one mailbox.
Claude Code, Codex, and OpenCode all register the same MCP server and reach one durable bus. Agents keep their names across sessions, publish what they are working on, and hand work off in typed messages — with the handle and unread count in your Claude Code statusline. The mailbox is local and free; cloud sync across machines is optional, after a 14-day trial.
th mcp install --harness allCI attestation
Run the checks where the machine is quiet.
th attest runs the same checks your workflow runs — locally or on a build box over SSH — then pushes and credits each pass as a commit status. Green rows skip in seconds instead of burning runner minutes. A check that could not run honestly publishes nothing rather than a verdict it did not earn. th ci-queue runs heavy checks one slot at a time, so a dozen agents don't melt the machine.
th attest lint typecheckWork tracking
One dependency-aware queue every agent pulls from.
Pearls is a work tracker built for a graph, not a list: each item knows what blocks it, so th pearls ready only ever shows work that can actually start. It lives in the repo, syncs over git, and reconciles two ways with Jira.
th pearls readyBig Smooth
An always-on assistant that runs on your machine.
Not a chatbot handing you snippets — an agent that reads, writes, runs, and ships, in a streaming terminal or your browser, on the models you choose. Your files and your logins stay yours. Every tool call passes a permission gate and a surveillance layer before it executes. Free with your own model key, or hosted models on a plan with a 14-day free trial.
th upInstall for Claude Code, Codex or OpenCode.
Paste this into the agent you already use. It installs or updates th, enables the harness toolbox in all three, checks the result, and tells you what changed.
Install or update th (Smooth, by Smoo AI) to the latest release on this machine and wire it into Claude Code, OpenCode and Codex.
1. Run `brew update && (brew upgrade smooai/tools/th || brew install smooai/tools/th)`. Then run `th --version`. If an older th wins on PATH (check `which -a th`), fix PATH so the Homebrew copy wins.
2. Run `th harness enable claude-code`, `th harness enable opencode` and `th harness enable codex`. They are idempotent: each sets up the plugin, the MCP server, hooks and skills, and for Claude Code it also moves the statusline to the newest plugin.
3. Verify:
- `th harness status` shows all three harnesses.
- `th harness budget` prints: suggest /th-clear 150k · warn 270k · auto-compact 300k.
- ~/.claude/settings.json has "autoCompactWindow": 300000, unless I set my own value.
- ~/.codex/config.toml has model_auto_compact_token_limit = 300000.
- If ~/.claude/settings.json has no statusLine entry, run `th doctor --setup-statusline`.
4. Choose a model: run `th model login`. Pick smooai-gateway for the Smoo AI Family plan, or enter my own OpenAI or Anthropic key.
5. Report what changed and anything that failed, with the exact errors. Then tell me to restart running sessions (or run /reload-plugins in Claude Code).Setting up another machine? th install-prompt --copy puts this prompt on your clipboard.
One binary. Nothing else to install.
~10 MB of Rust, MIT-licensed, zero runtime dependencies. No Docker, no Node, no per-project setup ritual. macOS and Linux today, Windows via WSL while native support is in flight.