CLI for the Norns durable agent runtime.
brew install nornscode/tap/nornsctl
nornsctl dev
nornsctl new my-agent
cd my-agent
uv sync
uv run my-agent-workerThat's it. You have a running Norns server and a connected agent worker.
brew install nornscode/tap/nornsctlOr via Go:
go install github.com/nornscode/nornsctl@latestOr build from source:
git clone https://github.com/nornscode/nornsctl.git
cd nornsctl
go build -o nornsctl .nornsctl dev Start local Norns server (foreground)
nornsctl dev up Start in background
nornsctl dev down Stop server
nornsctl dev status Show server status + API key
nornsctl dev logs Tail server logs
nornsctl dev reset Stop and delete all data
Requires Docker. Runs Postgres and Norns in containers, generates an API key, and stores state in ~/.nornsctl/dev/.
nornsctl new <name> [--language python] [--dir .] Create a new agent project
Generates a ready-to-run agent worker project. If nornsctl dev is running, the project is automatically configured with the server URL and API key.
nornsctl agents list List agents
nornsctl agents show <id> Show agent details
nornsctl agents create --name ... --system-prompt ... Create an agent
nornsctl agents update <id> --name ... Update an agent
nornsctl agents status <id> Get agent process status
nornsctl agents message <id> --content "..." Send a message to an agent
nornsctl runs list [--agent <id>] [--limit N] List runs
nornsctl runs show <id> Show run details + failure inspector
nornsctl runs events <id> [--json] Print event log
nornsctl runs retry <id> Retry a failed run
nornsctl runs tail <id> Stream events in real-time
nornsctl conversations list <agent_id> List conversations
nornsctl conversations show <agent_id> <key> Show conversation details
nornsctl conversations delete <agent_id> <key> Delete a conversation
export NORNS_URL=http://localhost:4000
export NORNS_API_KEY=nrn_...Or via flags: nornsctl --url http://... --api-key nrn_... agents list
MIT