SandboxCLIIntelligence, trace and Solve commands

Intelligence, trace and Solve commands

Read intelligence reports for sandboxes and fleets, list and fetch traces, send a local coding agent’s telemetry to Tangle Intelligence, and enter Solve competitions.

tangle intelligence sandbox my-box
tangle traces list
tangle connect claude-code --verify

tangle connect changes files on your machine. connect codex rewrites ~/.codex/config.toml without asking (pass --no-write to only print). connect claude-code offers to append a block to ~/.zshrc or ~/.bashrc, and writes ~/.zshrc when your shell is neither zsh nor bash. connect --verify waits in seconds, polling every 3 s, and exits 1 when nothing arrives before --timeout (default 120 s).

tangle traces reads the Intelligence API, so --base-url on it points at that host; TANGLE_INTELLIGENCE_BASE_URL sets it for every call.

Commands on this page

CommandWhat it does
tangle intelligence connectConnect local agent CLIs to Tangle Intelligence
tangle intelligence doctorCheck whether your agent traces carry CONTENT or are metadata-only
tangle intelligence hookEmit one local agent hook event to Tangle Intelligence
tangle intelligence sandboxCreate an intelligence report for one sandbox
tangle intelligence fleetCreate an intelligence report for a sandbox fleet
tangle intelligence createCreate a trace intelligence report
tangle intelligence getGet an intelligence report
tangle intelligence listList intelligence reports
tangle traces listList trace summaries (one row per trace), newest first
tangle traces getShow one trace’s spans. Streams NDJSON to stdout with --ndjson.
tangle traces runs listList eval-runs, newest first
tangle traces runs getShow a single eval-run
tangle connectConnect a local coding agent’s telemetry to Tangle Intelligence, content on (for SDK integration snippets, see ‘tangle agent connect’)
tangle opencode-exporterExport a running OpenCode’s content to Tangle Intelligence (standalone shim)
tangle solve cloneClone the pinned competition repository
tangle solve runRun the competition checker and record its evidence
tangle solve submitSubmit checker evidence through the device account and Tempo
tangle solve accountShow the local Solve signing account
tangle solve device listList your devices and whether each may submit jobs on Tempo
tangle solve device revokePermanently revoke a device; the local device is revoked with its own key

Intelligence reports

tangle intelligence connect

Connect local agent CLIs to Tangle Intelligence.

Installs native hook files for local agent CLIs in a workspace so they emit traces to Tangle Intelligence, then sends a smoke trace.

tangle intelligence connect [agent] [options]

Aliases: connect-agent

FlagDefaultDescription
--endpoint <url>https://intelligence.tangle.tools/v1/otlpOTLP endpoint base
--workspace <path>.Workspace to write hook files into
--service-name <name>OTel service.name label
--environment <name>localOTel deployment.environment label
--dry-runPrint planned writes without changing files
--hook-command <command>tangle intelligence hookCommand native hooks should run
--no-smokeSkip the install smoke trace
tangle intelligence connect codex --workspace ~/repo --no-smoke
  • --dry-run prints the planned writes; --no-smoke skips the smoke trace.

tangle intelligence doctor

Check whether your agent traces carry CONTENT or are metadata-only.

tangle intelligence doctor [options]
FlagDefaultDescription
--endpoint <url>https://intelligence.tangle.tools/v1/otlpOTLP endpoint base

tangle intelligence hook

Emit one local agent hook event to Tangle Intelligence.

Emits one local agent hook event as OTLP; native agent hooks call it.

tangle intelligence hook [options]
FlagDefaultDescription
--agent <agent>Agent name. Required.
--event <event>Hook event name. Required.
--payload <json>Hook payload JSON
--endpoint <url>OTLP endpoint base
--service-name <name>OTel service.name label
--environment <name>OTel deployment.environment label
--session-id <id>Session id override
--dry-runBuild the OTLP request without sending it
--non-blockingDo not fail the parent agent process
  • Reads the hook payload from piped stdin (max 65536 bytes) when --payload is absent.

tangle intelligence sandbox

Create an intelligence report for one sandbox.

tangle intelligence sandbox <sandbox-id> [options]
FlagDefaultDescription
--mode <mode>deterministicdeterministic | agentic
--max-usd <amount>Maximum customer charge for agentic analysis
--metadata <json>Metadata JSON object

Request: POST /v1/intelligence/reports

tangle intelligence sandbox my-box

tangle intelligence fleet

Create an intelligence report for a sandbox fleet.

tangle intelligence fleet <fleet-id> [options]
FlagDefaultDescription
--mode <mode>deterministicdeterministic | agentic
--max-usd <amount>Maximum customer charge for agentic analysis
--metadata <json>Metadata JSON object

Request: POST /v1/intelligence/reports

tangle intelligence fleet fleet_1

tangle intelligence create

Create a trace intelligence report.

Creates an intelligence report for a sandbox or fleet subject.

tangle intelligence create [options]
FlagDefaultDescription
--subject-type <type>sandbox | fleet. Required.
--subject-id <id>Subject identifier. Required.
--mode <mode>deterministicdeterministic | agentic
--max-usd <amount>Maximum customer charge for agentic analysis
--metadata <json>Metadata JSON object

Request: POST /v1/intelligence/reports

tangle intelligence create --subject-type fleet --subject-id fleet_1

tangle intelligence get

Get an intelligence report.

Shows one intelligence report.

tangle intelligence get <job-id>

Request: GET /v1/intelligence/reports/{jobId}

tangle intelligence get job_1

tangle intelligence list

List intelligence reports.

Lists intelligence reports.

tangle intelligence list [options]
FlagDefaultDescription
--subject-type <type>sandbox | fleet
--subject-id <id>Subject identifier
--limit <count>Maximum reports to return

Request: GET /v1/intelligence/reports

tangle intelligence list

Traces and runs

tangle traces list

List trace summaries (one row per trace), newest first.

Lists trace summaries, newest first, with filters.

tangle traces list [options]
FlagDefaultDescription
--from <iso>ISO-8601 lower bound on received time (inclusive)
--to <iso>ISO-8601 upper bound on received time (inclusive)
--model <model>Exact model match (any span carried this model)
--run <runId>Exact run id match
--status <status>ERROR | OK
-q, --query <text>Substring over span name
--cursor <cursor>Opaque pagination cursor from a prior page
--limit <count>Page size (clamped server-side to [1, 200])

Request: GET /v1/traces

tangle traces list
  • Global --base-url names the Intelligence API here; TANGLE_INTELLIGENCE_BASE_URL also sets it.

tangle traces get

Show one trace’s spans. Streams NDJSON to stdout with --ndjson.

Shows one trace’s spans; --ndjson streams all spans as NDJSON.

tangle traces get <traceId> [options]
FlagDefaultDescription
--ndjsonStream the full span set as NDJSON to stdout
--cursor <cursor>Opaque pagination cursor from a prior page
--limit <count>Spans per page

Request: GET /v1/traces/{traceId}/spans

tangle traces get trace_1 --json
  • --ndjson reads GET /v1/traces/{traceId}/spans.ndjson.

tangle traces runs list

List eval-runs, newest first.

Lists eval runs, newest first.

tangle traces runs list [options]
FlagDefaultDescription
--status <status>Run status filter
--gate <decision>Promotion-gate decision filter
--label <key:value>Match over the run’s labels
--from <iso>ISO-8601 lower bound on received time
--to <iso>ISO-8601 upper bound on received time
-q, --query <text>Substring over run dir
--cursor <cursor>Opaque pagination cursor from a prior page
--limit <count>Page size

Request: GET /v1/runs

tangle traces runs list

tangle traces runs get

Show a single eval-run.

Shows one eval run.

tangle traces runs get <runId>

Request: GET /v1/runs/{runId}

tangle traces runs get run_1

Telemetry from a local coding agent

tangle connect

Connect a local coding agent’s telemetry to Tangle Intelligence, content on (for SDK integration snippets, see ‘tangle agent connect’).

Configures a local coding agent (claude-code, codex, opencode, openclaw, hermes, nanoclaw) to send telemetry with content to Tangle Intelligence; --verify checks that content arrives.

tangle connect [agent] [options]
FlagDefaultDescription
--endpoint <url>https://intelligence.tangle.tools/v1/otlpOTLP endpoint base
-p, --project <key>Project label (tangle.subject.key) to group runs; omit to set it yourself
--rc <path>Shell rc file to append the Claude Code env block to
--no-writePrint the config instead of writing files (Claude Code / Codex)
--inline-keyEmbed the resolved API key literally in the config (default: keep ${TANGLE_API_KEY})
--verifyPoll onboarding status and report whether CONTENT is flowing
--timeout <seconds>120Verify poll timeout in seconds
--runOpenCode only: run the content exporter against a live OpenCode server until interrupted
--opencode-url <url>OpenCode server base URL for --run (or set OPENCODE_BASE_URL)
--format <kind>shellClaude Code output: shell (export block) | env (.env / docker --env-file) | dockerfile (ENV lines). env/dockerfile are the cron/container path, printed to stdout, no shell-rc edit, no TTY
--content <tier>fullClaude Code content tier: full (everything) | prompts (task+prompts+tool-args) | metadata (telemetry on, content off)
  • This is Intelligence telemetry setup, not sandbox access; tangle agent connect prints SDK snippets.
  • codex: merges an [otel] block into ~/.codex/config.toml immediately, without a prompt, unless --no-write.
  • claude-code: prints an env block; on a terminal asks before appending it to the shell rc; --format env|dockerfile only prints.
  • --verify polls every 3 s up to --timeout SECONDS (default 120) and exits 1 unless content was seen.

tangle opencode-exporter

Export a running OpenCode’s content to Tangle Intelligence (standalone shim).

Runs until Ctrl-C, forwarding a running OpenCode server’s events with content to Tangle Intelligence.

tangle opencode-exporter [options]
FlagDefaultDescription
--endpoint <url>https://intelligence.tangle.tools/v1/otlpOTLP endpoint base
--opencode-url <url>OpenCode server base URL (or set OPENCODE_BASE_URL)
  • Same as tangle connect opencode --run.
  • OPENCODE_BASE_URL or --opencode-url names the OpenCode server.

Solve

tangle solve clone

Clone the pinned competition repository.

Clones a competition’s pinned repository.

tangle solve clone <competition> [directory] [options]
FlagDefaultDescription
--api-url <url>Solve API base URL
--profile <name>solveTangle profile

tangle solve run

Run the competition checker and record its evidence.

Runs the competition checker in a directory and records its evidence.

tangle solve run [competition] [options]
FlagDefaultDescription
--directory <path>Competition directory (defaults to the current directory)

tangle solve submit

Submit checker evidence through the device account and Tempo.

tangle solve submit [competition] [options]
FlagDefaultDescription
--directory <path>Competition directory (defaults to the current directory)
--pr-url <url>GitHub pull request containing the submission
--model <name>Model used to produce the submission
--note <text>Short note shown with the accepted submission
--api-url <url>Solve API base URL
--profile <name>solveTangle profile

tangle solve account

Show the local Solve signing account.

Shows the local Solve signing account; --create creates it.

tangle solve account [options]
FlagDefaultDescription
--createCreate the account if it does not exist
tangle solve account --json

tangle solve device list

List your devices and whether each may submit jobs on Tempo.

tangle solve device list [options]
FlagDefaultDescription
--api-url <url>Solve API base URL
--profile <name>solveTangle profile

tangle solve device revoke

Permanently revoke a device; the local device is revoked with its own key.

Permanently revokes a device after confirmation.

tangle solve device revoke <address> [options]
FlagDefaultDescription
--reason <text>Why the device is revoked (shown to the account)
--yesConfirm the permanent revocation without a prompt
--api-url <url>Solve API base URL
--profile <name>solveTangle profile
  • Without a terminal it refuses unless --yes.

Next