Browse documentation

Portable .tine files default to v5 (since 0.42). --for-legacy writes v4. The .tine/ repository format is v3. tine evidence export writes v4. Formats and protocols.

Docs target stable release v0.44.0.Stable vs main checked 2026-11-07

Reference · v0.44.0

Interoperability

From the pinned CLI source. Read upstream.

Current format policy: Portable .tine files default to v5 (since 0.42). --for-legacy writes v4. The .tine/ repository format is v3. tine evidence export writes v4.

Agent Trace export (0.19)

tine export RUN --format agent-trace                    # record on stdout
tine export RUN --format agent-trace --output trace.json

Writes one Agent Trace record (RFC 0.1.0, validated against https://agent-trace.dev/schemas/v1/trace-record.json). Each file the run's successful tool calls wrote is a files entry with one conversation per model, contributor ai, model_id spelled provider/model when the provider was recorded. Line ranges are emitted only when they are known: a whole-file write that is the run's last write to that path covers lines 1..N. Edits, patches and shell redirects get file-level attribution (an empty ranges array). Absolute paths are made relative to the enclosing repository (the nearest directory with .git, else the current directory); paths outside it are left out and counted. vcs and conversation url are omitted, since a run records neither; the run id rides in metadata["io.github.0xcircuitbreaker.opentine"]. version is "0.1", the spelling the published schema accepts. --endpoint is refused.

Entire checkpoint import (0.19)

tine import . --format entire --save run.tine        # newest checkpoint, last session
tine import .::a3b2c4d5e6f7/0 --format entire --repo runs

Entire commits coding-agent sessions to the entire/checkpoints/v1 branch (<id[:2]>/<id[2:]>/metadata.json, one numbered directory per session with metadata.json, full.jsonl and prompt.txt). SOURCE is the git repository; ::ID picks a checkpoint by id or unique prefix and /N a session (0-based, in the summary's order). The branch is read with git cat-file, never checked out; origin/entire/checkpoints/v1 is used when there is no local branch. --format auto recognizes a directory SOURCE. The session transcript is imported by the Claude Code, Codex or Gemini CLI importer; any other agent imports as one human step carrying its prompt, with an import warning. attributes["entire"] on the first step keeps the checkpoint and session ids, agent, model, strategy, branch, commit, files touched and Entire's token usage. full.jsonl holds the session up to that checkpoint, so the run is the session so far. Session metadata over 1 MiB and transcripts over 64 MiB are refused before they are read.

Per-checkpoint refs, --all and export (0.42)

tine import . --format entire --save run.tine          # refs first, v1 branch as fallback
tine import . --format entire --all --repo runs        # every checkpoint session, one run each
tine export run.tine --format entire --output ~/proj   # write the run as a checkpoint ref

Current entireio/cli keeps one ref per checkpoint, refs/entire/checkpoints/<id[-2:]>/<id>, whose commit tree is the checkpoint (metadata.json, 0/, 1/ ...; sessions listed as /<N>/metadata.json). Those refs are read first, newest commit first; any checkpoint id found only on the entire/checkpoints/v1 branch is read from there. attributes["entire"] ["layout"] says which (refs or branch). --all records each session of each checkpoint on heads/entire/<id, lowercased>/<N> and needs --repo (--save, --ref and --fleet are refused with it); with --json it prints {"command": "import", "format": "entire", "all": true, "runs": [...]}.

export --format entire writes the run, redacted, as one checkpoint in the --output git repository: a 12-hex id derived from the run id, a Claude Code full.jsonl, prompt.txt, content_hash.txt and both metadata files, committed with Entire's Checkpoint: <id> message and Entire-Session/-Strategy/-Agent trailers. Only git objects and that one ref are written. Exporting the same run again is a no-op; a changed run becomes a child commit on the same ref.

Cline and Roo Code task import (0.42)

tine import ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/tasks/1730985600000 --save run.tine
tine import --from-default-location --format roo-task          # list Roo Code tasks

SOURCE is a task directory (or its api_conversation_history.json); ui_messages.json and Cline's task_metadata.json beside it are read when present. Each assistant message is a model step, tool results (native tool_result blocks or the [tool for 'x'] Result: text convention) are tool steps, and other user turns human steps, with <environment_details> blocks dropped. Token usage comes from the matching api_req_started record (Roo's apiProtocol: "openai" counts cache reads inside tokensIn), else from the message's metrics. auto tells Roo from Cline by the rooveterinaryinc.roo-cline folder in the path. Windsurf is not supported: it has no documented local session format.