CLI
The everruns CLI provides a command-line interface for managing agents, sessions, and conversations. It’s useful for scripting, automation, and quick interactions without using the web UI.
Installation
Section titled “Installation”Homebrew (macOS / Linux)
Section titled “Homebrew (macOS / Linux)”brew tap everruns/tapbrew install everrunsInstall from the Git repository:
cargo install --git https://github.com/everruns/everruns everruns-cliOr clone and build locally:
git clone https://github.com/everruns/everruns.gitcd everrunscargo install --path crates/cliVerify
Section titled “Verify”everruns --versionConfiguration
Section titled “Configuration”The CLI connects to the Everruns API. By default, it uses the hosted API at https://app.everruns.com/api.
For local development, configure the API URL:
# Via command-line flageverruns --api-url http://localhost:9300/api agents list
# Via environment variableexport EVERRUNS_API_URL=http://localhost:9300/apieverruns agents listDefault: https://app.everruns.com/api
Commands
Section titled “Commands”Agents
Section titled “Agents”Manage agent configurations.
Create Agent
Section titled “Create Agent”# Inline creationeverruns agents create \ --name "my-agent" \ --system-prompt "You are a helpful assistant." \ --tag production
# From default TOML file in the current directoryeverruns agents create
# From TOML fileeverruns agents create -f agent.toml
# From YAML fileeverruns agents create -f agent.yaml
# From JSON fileeverruns agents create -f agent.json
# From Markdown with front mattereverruns agents create -f agent.mdIf ./agent.toml exists and you do not pass inline creation flags, everruns agents create will use it automatically. everruns agents update also uses it in file-based mode, but passing an explicit positional <id> disables implicit agent.toml selection.
TOML file format (agent.toml):
name = "research-assistant"description = "Helps with research tasks"system_prompt = """You are a helpful research assistant.Always cite your sources."""tags = ["research", "assistant"]
[[capabilities]]ref = "current_time"
[[capabilities]]ref = "web_fetch"YAML file format (agent.yaml):
name: "research-assistant"description: "Helps with research tasks"system_prompt: | You are a helpful research assistant. Always cite your sources.capabilities: - ref: current_time config: {} - ref: web_fetch config: {}tags: - research - assistantFor backward compatibility, you can also use the shorthand format:
capabilities: - current_time - web_fetchThe full format with ref and config allows per-agent capability configuration:
capabilities: - ref: filesystem config: allowed_paths: ["/home/user/projects"] - ref: web_browser config: {}Markdown file format (agent.md):
---name: "research-assistant"description: "Helps with research tasks"capabilities: - ref: current_time config: {} - ref: web_fetch config: {}tags: - research---You are a helpful research assistant.
Always cite your sources and provide accurate information.The markdown body becomes the system prompt. Both the full format (ref + config) and shorthand (just capability ID) are supported in markdown files.
Initial Files
Section titled “Initial Files”You can seed an agent’s sessions with starter files using either the --initial-files-dir flag or the initial_files frontmatter field.
Using --initial-files-dir:
everruns agents create -f agent.md --initial-files-dir ./project-contextThis recursively collects non-hidden text files from the directory. Files are read-only by default; add --writable to make them editable.
Using frontmatter initial_files:
List relative paths directly in the agent definition. Each entry is resolved relative to the agent file’s parent directory:
---name: "a11y-audit"description: "Accessibility auditor for the platform UI"capabilities: - ref: daytonainitial_files: - . - .agents/*---Run axe-core audits on specified pages...Entries can be:
.— the entire directory (all non-hidden files, plus.agents/).agentsor.agents/*— a specific subdirectory (glob suffixes like/*are stripped; the directory is walked recursively)README.md— a single file
The CLI expands these to full file contents before sending to the API. The same security rules apply: hidden files are skipped (except .agents/), symlinks outside the base directory are rejected, binary files are ignored, and explicitly listed hidden files (e.g. .env) are rejected.
List Agents
Section titled “List Agents”everruns agents listOutput:
ID NAME STATUSagt_550e8400e29b41d4a716446655440000 research-bot activeagt_660e8400e29b41d4a716446655440001 joke-bot activeGet Agent
Section titled “Get Agent”everruns agents get agt_xxxDelete Agent
Section titled “Delete Agent”everruns agents delete agt_xxxCapabilities
Section titled “Capabilities”List available capabilities that can be assigned to agents.
# List available capabilitieseverruns capabilities
# List all including coming sooneverruns capabilities --status all
# List only coming sooneverruns capabilities --status coming_soonOutput:
ID NAME STATUS CATEGORYcurrent_time Current Time available Utilitiesweb_fetch Web Fetch available Networksession_file_system File System available File Operationsstateless_todo_list Task Management available ProductivitySessions
Section titled “Sessions”Manage conversation sessions for an agent.
Create Session
Section titled “Create Session”everruns sessions create --agent agt_xxx
# With titleeverruns sessions create --agent agt_xxx --title "Debug session"List Sessions
Section titled “List Sessions”everruns sessions listGet Session
Section titled “Get Session”everruns sessions get ses_xxxSend a message and receive the agent’s response.
everruns chat "Tell me a joke!" --session ses_xxxOutput:
You: Tell me a joke!
Agent: Why don't scientists trust atoms? Because they make up everything!Options:
--timeout <seconds>- Max wait time for response (default: 300)--no-stream- Send message and exit without waiting for response
Output Formats
Section titled “Output Formats”The CLI supports multiple output formats for scripting:
# Default text formateverruns agents list
# JSON formateverruns agents list --output json
# YAML formateverruns agents list --output yamlQuiet Mode
Section titled “Quiet Mode”Suppress non-essential output:
# Only output the created agent IDeverruns agents create -f agent.toml --quiet# Output: agt_550e8400e29b41d4a716446655440000Examples
Section titled “Examples”Complete Workflow
Section titled “Complete Workflow”# 1. Create an agent and extract ID with jqAGENT_ID=$(everruns agents create \ --name "assistant" \ --system-prompt "You are a helpful assistant." \ -o json | jq -r '.id')
# 2. Create a sessionSESSION_ID=$(everruns sessions create --agent $AGENT_ID -o json | jq -r '.id')
# 3. Chat with the agenteverruns chat "What time is it?" --session $SESSION_IDUsing Agent Files
Section titled “Using Agent Files”# Create agent.mdcat > agent.md << 'EOF'---name: "code-reviewer"description: "Reviews code and suggests improvements"capabilities: - ref: current_time config: {} - ref: filesystem config: allowed_paths: ["/workspace"]tags: - development---You are an expert code reviewer.
When reviewing code:1. Check for bugs and edge cases2. Suggest performance improvements3. Ensure code follows best practicesEOF
# Create the agenteverruns agents create -f agent.mdJSON Output for Scripting
Section titled “JSON Output for Scripting”# Get agent details as JSON and extract with jqeverruns agents get agt_xxx --output json | jq '.tags'
# List agents and filtereverruns agents list --output json | jq '.data[] | select(.status == "active")'