Skip to main content

signadot logs

Note

Sandbox log support requires v1.8.0+ of the Signadot CLI. The --job usage works with earlier versions.

signadot logs shows logs from the CLI, kubectl logs-style. One command covers two log sources:

  • Sandbox — a forked workload or a resource in a sandbox (--sandbox).
  • Job — a job attempt (--job).

--job and --sandbox are mutually exclusive — pick one source.

Sandbox logs

signadot logs --sandbox <sandbox> --workload <workload> [flags]
signadot logs --sandbox <sandbox> --resource <resource> [--step <step>] [flags]

You reference things by the names in your sandbox spec — no Kubernetes knowledge needed. The server resolves the workload or resource to the running pod(s).

Selecting a source

FlagDescription
--sandbox <name>Sandbox to read logs from. Required for sandbox logs.
--workload <name>A sandboxed workload (fork) from your spec. Mutually exclusive with --resource.
--resource <name>A sandbox resource from your spec. Mutually exclusive with --workload.
--step <name>Which resource-plugin step to read (only valid with --resource). Defaults to all create steps.
Note

Logs are served for forked workloads. A workload that resolves to a virtual (shared baseline) or local (running on your machine) source returns a clear message rather than unrelated or empty output.

Filtering and output

FlagDescription
-c, --container <name>Show a single container. Defaults to all; each line is prefixed [<container>] when there is more than one.
--since <duration>Only logs newer than a relative duration, e.g. 10m, 1h, 2h30m.
--since-time <rfc3339>Only logs after an absolute timestamp, e.g. 2026-06-30T14:00:00Z. Mutually exclusive with --since.
-f, --followStream new logs as they arrive (like tail -f). Stop with Ctrl-C. Streams plain lines only — not combinable with -o.
-o json|yamlStructured output instead of plain lines.

Examples

# All containers of a fork
signadot logs --sandbox payments-pr-42 --workload frontend

# One container, last 10 minutes
signadot logs --sandbox payments-pr-42 --workload frontend -c app --since 10m

# Follow (live tail)
signadot logs --sandbox payments-pr-42 --workload frontend -f

# Structured output
signadot logs --sandbox payments-pr-42 --workload frontend -o json

# Resource logs — all steps, then a single step
signadot logs --sandbox payments-pr-42 --resource postgres
signadot logs --sandbox payments-pr-42 --resource postgres --step provision

Discovering names

If you aren't sure of a workload or container name, run without it: the error lists the loggable workloads, and multi-container output is prefixed with each container's name so you can narrow with -c.

Job logs

signadot logs --job <job> [--stream stdout|stderr] [--tail <n>]
FlagDescription
-j, --job <name>Job whose attempt logs to show.
-s, --stream stdout|stderrWhich stream to show. Job-only.
-t, --tail <n>Last N lines (0 = all). Job-only.
# stdout of a job
signadot logs --job my-job-[generated_id]

# stderr of a job
signadot logs --job my-job-[generated_id] --stream stderr

Notes

  • The stdout/stderr split (--stream) applies to jobs only; sandbox/pod logs are a single combined stream (a Kubernetes limitation).
  • Flags for one source are rejected on the other rather than silently ignored — --stream and --tail require --job; --workload, --resource, --step, --container, --since, and --since-time require --sandbox.