Reference · v0.44.0
Tools
From the pinned CLI source. Read upstream.
Harnesses and tools
<p align="center"> <img src="https://raw.githubusercontent.com/0xcircuitbreaker/opentine/v0.44.0/docs/assets/readme-harnesses.svg" alt="An agent task runs through a harness (claude-code, codex, gemini, cursor, kimi-code, generic and 19 more) or an SDK (anthropic, openai, google, ollama) into a portable .tine file and .tine/ repository, which then supports replay --verify, fork and resume, repo-diff and repo-search, attest and promote" width="820" /> </p>OpenTine can capture external CLI agents:
tine repo integrate harnesses --installed # which agent CLIs are here, and what a run of each records
tine run --harness gemini --prompt "Inspect this repo" --save run.tine
tine run --harness qwen-code --prompt "Summarize README.md" --save run.tine
tine run --harness generic --harness-command "agent run" --prompt "Fix tests"
25 harnesses ship: claude-code, codex, gemini, qwen-code, cursor,
opencode, pi, hermes, openclaw, kimi-code, grok, goose, amp,
droid, copilot, auggie, cline, qoder, continue, openhands, vibe,
aider, crush, kiro, and generic for anything else. Each catalogued CLI
runs in its documented JSON mode, so its runs record the real model, token
usage, tools and the CLI's own cost where it reports them, and tine price can
re-price them. Sessions an agent CLI already ran on its own import after the
fact: tine import --from-default-location lists the newest Claude Code,
Codex, Gemini CLI and Qwen Code sessions, and
tine import latest --from-default-location --save run.tine records one.
Process harnesses default to a one-hour wall timeout, 4-million-character total
output ceiling, and 10,000 parsed events. Override them with
--harness-timeout, --harness-max-output, --harness-max-events, and
--harness-max-line-bytes.
Filesystem, network, shell, Python, and harness execution use restrictive policies. Tool schemas hide host-owned policy/resource parameters and runtime dispatch rejects attempts by a model to override them; bind an explicit policy in an application wrapper when enabling shell, Python, or filesystem writes. Harnesses do not inherit the parent environment by default. Review free-form model/tool output before sharing: credential redaction is typed and path-aware, but no automatic redactor can prove arbitrary prose is secret-free. Enabled shell/Python timeouts terminate the owned process group or Windows Job Object and return only bounded partial output, with space reserved for stderr diagnostics. These subprocess controls are resource boundaries, not an OS sandbox. See SECURITY_MODEL.md.