Skip to content
Crow CI

Agent

Agent configuration for Crow CI workers.

CROW_SERVER=crow-server:9000
CROW_AGENT_SECRET=<token>

| Variable | Description | | ------------------- | ---------------------------------------- | | CROW_SERVER | Server gRPC address (no protocol prefix) | | CROW_AGENT_SECRET | Authentication token from server |

CROW_MAX_WORKFLOWS=4

By default, agents execute one workflow at a time. Increase based on available resources.

Crow routes workflows to agents using two mechanisms:

| Method | Description | | -------- | ------------------------------------------------------ | | Labels | Filter by matching key-value pairs | | Priority | Prefer agents with higher priority when multiple match |

Agents have built-in labels:

| Label | Description | | ---------- | ----------------------------------------------------- | | backend | Execution backend (docker, kubernetes, local, podman) | | type | Agent type | | platform | OS/architecture | | agent | Agent identifier |

Add custom labels to route specific workflows:

# Agent configuration
CROW_AGENT_LABELS='gpu=true,memory=high'
# Workflow configuration (.crow.yaml)
labels:
  gpu: true
  memory: high

Only agents with matching labels will process workflows with those labels.

When multiple agents match, higher priority agents are preferred:

CROW_AGENT_PRIORITY=100

Use this to prefer agents with more capacity when available.

Admin-managed agents that process all workflows. Configure via environment variables on the agent.

Non-admin users can register agents scoped to their org or user account.

Remote agent configuration:

CROW_SERVER=grpc.crow.example.com:443
CROW_GRPC_SECURE=true
CROW_AGENT_SECRET=<token>
CROW_BACKEND=docker

Process workflows from multiple specified organizations or repositories.

# Multiple orgs (pipe-separated)
CROW_CUSTOM_LABELS='org=1|2|3'

# Alternative syntax (comma-separated, merged internally)
CROW_CUSTOM_LABELS='org=1,org=2,org=3'

# Limit to specific repos
CROW_CUSTOM_LABELS='org=myorg,repo=myorg/specific-repo'

Multi-org labels appear highlighted in the agent list:

Multi-org Agent
Multi-org Agent

Configure backend-specific settings at the agent level. See environment variables for all CROW_BACKEND_* options.

Enable process isolation using macOS sandbox-exec:

CROW_BACKEND_LOCAL_SANDBOX_LEVEL=standard

| Level | Network | System Access | Use Case | | ---------- | ---------- | ------------- | --------------------------------- | | none | ✅ Full | ✅ Full | Trusted code only | | standard | ✅ Full | ⚠️ Limited | Most CI/CD workloads | | strict | ❌ Blocked | ❌ Minimal | Offline builds, maximum isolation |

Standard level details:

| Allows | Denies | | --------------------------------- | ---------------------------------------- | | Network access (npm, go get, pip) | Writing outside workflow dirs | | System libraries and frameworks | Sensitive user dirs (Documents, Desktop) | | Shell configs (.bashrc, .zshrc) | SSH private keys | | Workflow temp directories | |

none runs processes without isolation. Only use with fully trusted code.