A full session
Real, captured output from a running daemon:--base-url/--token flags default to the SANDKILN_DAEMON_URL/SANDKILN_AUTH_TOKEN environment variables when omitted, same as both SDKs — see Auth.
-- before an argument that looks like a flag
exec’s command and args are passed straight to commander’s own option parser, so an argument starting with - (a python3 -c script, grep -v, …) needs -- in front of it or kiln tries to parse it as its own flag:
A failed command doesn’t throw — it exits non-zero
exec runs the command and reports whatever it actually did, exit code included; cat-ing a missing file isn’t a CLI error, it’s a normal result with a non-zero exit:
Long-running commands: exec-stream and logs
exec waits for the command to finish and returns everything at once — fine for a short script, not for a build or a server you want to watch live. exec-stream starts the command in the background and follows its output as it happens:
kiln sandbox logs <id> <session-id> — replays everything captured so far, then live-tails anything new. kiln sandbox logs <id> with no session id lists every streamed session on that sandbox instead. Not carried across resume/fork, and doesn’t survive a daemon restart.
Next
- Give the sandbox a name so you can find it again later: Named sandboxes & persistent stop.
- Boot from your own image instead of the daemon’s default: Boot from a custom image.
- Full command reference: CLI (kiln).