Skip to main content

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:
Ctrl+C detaches without stopping the command. Reattach any time, whether it’s still running or long finished, with 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