1. Connect
Start the local outpost, or sign in to one you have access to, and confirm which account you are signed in as. Every command below reuses that sign-in. So does the SDK when thekeyring package is installed beside it; for automation without a keyring, inject an API key from your secret manager into $DRKM_TOKEN at runtime.
Terminal
2. Talk to the agent
drkm on its own, or drkm console, opens the terminal workspace. drkm console chat -p sends one turn and prints the final answer, which is the form to use from scripts. Inside the workspace, /skills manages your skills and /skill-name runs one, @ picks an outpost to delegate to, /jobs and /outposts inspect work and the fleet, /tasks lists background runs, Ctrl+K searches threads, jobs, outposts and commands, and Ctrl+Q detaches without stopping a running agent.
Terminal
3. Write a worker
Createworker.py. A worker is a top-level function run(records, context): the platform calls it once with the job’s input records and a context, and it returns one JSON-compatible result for the job. This one flags sensor readings above a threshold. The function lives in its own module, not in the script you run.
worker.py
4. Submit and collect
First, install the Python SDK in the Python environment you will use to runsubmit.py. The CLI’s bundled SDK is separate from your own Python environment. Install keyring there too to reuse your terminal’s saved sign-in.
Save this beside the worker as submit.py and run it. connect() points the SDK at an address you pass, else at $DRKM_URL, else at the outpost your terminal is signed in to. package() describes the worker and the files to seal with it; submit() returns a job ID at once. From then on the job belongs to the platform: it outlives this script, and wait() polls until it settles. rows() returns the worker’s result as one row, under output.
submit.py
Name every job: the name is what operators read in the job list. A job settles as completed, partial, failed or canceled; read state and coverage before treating the rows as the whole result.
5. Watch it run
The same job is visible from the terminal, the console and the SDK.drkm console jobs opens the Jobs screen on an interactive terminal and prints the ledger as JSON when piped; add the job ID for one job, and when piped --runs prints its partitions and attempts. In the console, open Outposts and its Jobs tab. From Python, drkm.Job(job_id) picks a submitted job up again from a later run.
Terminal
Where next
The Python SDK
Records, workers, limits, detectors, plans and the job lifecycle.
Add devices to the mesh
Invite a second machine and place work across both.
Connectors and MCP
Give the agent the services and tools it needs.
Skill files
Teach the agent a repeatable procedure with one Markdown file.