job and service. worker, triggered,
workspace, and interactive are reserved for future deployment models.
Nullspace run IDs are not conversation session IDs.
Lifecycle
- Create
nullspace.agent.tomlwithnullspace agent init. - Select project files with
[bundle] includeandexclude. - Deploy the project with
nullspace agent deploy .. - Run a
jobor start aservice. - Inspect logs, status, outputs, and the backing sandbox.
- Retain failed sandboxes when you need PTY, SSH, desktop, command, or file debugging.
- Deploy a new version or delete the deployment when it is no longer needed.
Setup
From a local project directory:uv pip install "nullspace-sdk[cli]==0.1.9" is equivalent after the environment is active.
For CI or non-interactive deploys, use NULLSPACE_API_KEY and
NULLSPACE_API_URL instead of auth login.
What You Deploy
nullspace agent init writes nullspace.agent.toml. Keep runtime secret values
out of this file; store only env var names.
For a finite job:
mode = "service" and bind the process to
0.0.0.0:
Run A Job
Usejob when the agent has finite work: code review, report generation,
benchmarking, data extraction, evaluation, or a one-shot framework run.
Start A Service
Useservice when the agent exposes HTTP, WebSocket, or another long-running
server: an API wrapper around a graph, a web preview service, a chat backend,
or a custom coordinator.
Operate A Deployment
Keep the deployment name stable. Deploy new bundles from the same project, then use run or service IDs for individual executions.| Need | Command |
|---|---|
| See logs | nullspace agent logs <name> --run adrun_123 |
| Read output metadata | nullspace agent outputs <name> --run adrun_123 |
| Check status | nullspace agent status <name> --run adrun_123 |
| Inspect backing sandbox | nullspace agent sandbox <name> --run adrun_123 |
| Run a debug command | nullspace agent shell <name> --run adrun_123 --cmd "ls -la" |
| Stop a service | nullspace agent stop <name> |
| Restart a service after deploy | nullspace agent restart <name> |
| Delete a deployment | nullspace agent delete <name> --yes |
Logs, Outputs, And Sandboxes
Agent jobs and services expose backing sandbox IDs. Use normal sandbox tools to inspect files, run commands, open PTY sessions, create snapshots, or destroy retained debug sandboxes.Secrets And Env Vars
Declare env var names in[env], then pass values at runtime with --env,
--env-file, or SDK envs=.
.env files as sensitive.
State And Sessions
Framework session, thread, checkpoint, or flow state stays app-owned. Store durable state in a mounted volume, a retained or auto-resumed sandbox, or an external database. For example, keep LangGraph checkpoints in your checkpointer storage, keep Claude session files in a volume if they must survive cleanup, and let CrewAI flows own their state and output artifacts. Do not rely on the ephemeral sandbox filesystem for durable conversation state unless the sandbox is retained or the state is written to a mounted volume.Cache And Templates
agent deploy reports deployment build cache state in human output and JSON.
The default auto policy falls back to running install inside each job run or
service start when no ready artifact exists. Use nullspace agent deploy --rebuild to build a fresh reusable deployment artifact during upload, or
--no-cache to bypass cache lookup and artifact writes for one deploy. Use a
custom template for heavy system dependencies or slow base setup.
Examples
Minimal Job
Deploy a small Python job and collect
result.json plus a reports
directory.Minimal Service
Deploy a small Python HTTP service and fetch its public URL.
OpenAI Agents SDK Job
Deploy an OpenAI Agents SDK app as a finite job.
Claude Agent SDK Job
Deploy a Claude Agent SDK app as a finite job.
LangGraph Service
Deploy a LangGraph-backed HTTP service.
CrewAI Job
Deploy a CrewAI project as a bounded job.