signadot logs
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
| Flag | Description |
|---|---|
--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. |
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
| Flag | Description |
|---|---|
-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, --follow | Stream new logs as they arrive (like tail -f). Stop with Ctrl-C. Streams plain lines only — not combinable with -o. |
-o json|yaml | Structured 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>]
| Flag | Description |
|---|---|
-j, --job <name> | Job whose attempt logs to show. |
-s, --stream stdout|stderr | Which 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 —
--streamand--tailrequire--job;--workload,--resource,--step,--container,--since, and--since-timerequire--sandbox.