Working Draft — agentrc 0.1.0-draft.6 is an evolving specification draft, not a finished standard. Expect breaking changes. Changelog →
Open specification

portable, governed ai agents

agentrc:~$ like bashrc, but for an agent

An Agentfile declares one agent — identity, tools, typed policy. The build compiles it to an OCI artifact whose boundaries travel with it: lint them in CI and run it unchanged on local, Bedrock, or Kubernetes. Not a runtime, cloud, or framework.

agentrc:~$ cat Agentfile
# syntax=agentrc.agentfile/v0.1
FROM python:3.11-slim
IDENTITY name=hello version=0.1 author=acme
IDENTITY description="Minimal agentrc agent"
CAPABILITY text
SOP You are a minimal example agent. Read a
    file when asked; do nothing else.
CMD python ./agent.py

# Tool (local, embedded) → /mnt/tools/
COPY --chmod=755 ./tools/file_read /mnt/tools/file_read

# Requests: the platform grants, narrows, or rejects
POLICY model.name         claude-sonnet-4
POLICY agent.tool_timeout 30s
POLICY network dns:api.example.com:443

HEALTHCHECK --interval=60s CMD /mnt/tools/file_read --agentrc-schema
arc lint: okcompiles to OCI + ai.agentrc.* labelspolicy reviewable

Declarative & reproducible

One Agentfile captures identity, capability, policy, tools, and resources — reusing standard Dockerfile keywords plus four agent-native ones: IDENTITY, CAPABILITY, SOP, POLICY.

Policy, not hope

A POLICY line requests a model, resource, or constraint. The platform grants, narrows, or rejects it and enforces the decision with Cedar, deny-by-default.

Portable everywhere

The build translates intent into namespaced ai.agentrc.* OCI labels. Platforms read the labels — never the Agentfile — so agents ship, sign, and mirror like any container image.

Install the CLI

One binary — agentrc (alias arc). It scaffolds, validates, and builds Agentfiles, inspects what an agent requests, and translates an artifact into a backend's deploy config.

macOS & Linux
curl -fsSL https://agentrc.ai/install.sh | sh
Homebrew
brew install
adeelahmad/tap/agentrc
Go 1.25+
go install
github.com/adeelahmad/agentrc/cmd/agentrc@latest
From source
git clone https://github.com/adeelahmad/agentrc
cd agentrc && go build -o arc ./cmd/agentrc

Prebuilt, checksum-verified binaries for macOS & Linux (amd64 / arm64). Confirm with arc version. Prefer to read first? curl -fsSL https://agentrc.ai/install.sh and inspect it.

Build and run — locally

Scaffold, validate, and compile an agent into a portable OCI artifact, then preview exactly what a local runner would execute.

  1. Scaffold
    arc init            › writes ./Agentfile
  2. Validate
    arc lint Agentfile  › identity, policy & schema
  3. Build
    arc build -t ghcr.io/you/hello:0.1 .  › OCI artifact
  4. Preview the run
    arc run ghcr.io/you/hello:0.1 --backend local --dry-run

arc build produces a real OCI image (via docker build and the agentrc BuildKit frontend). --dry-run prints the config a runner would apply — agentrc declares and translates; it ships no runtime of its own.

Ship the same artifact to the cloud

The build writes ai.agentrc.* labels once. Point arc run at any backend to translate those labels into that platform's deploy form.

Push once

arc push
ghcr.io/you/hello:0.1

→ any OCI registry

AWS Bedrock

arc run …hello:0.1
--backend bedrock --dry-run

→ CreateAgentRuntime JSON

Kubernetes

arc run …hello:0.1
--backend kubernetes --dry-run

→ deploy manifests

Same artifact, same labels, three substrates. Reference translators — a proof of concept until platforms read ai.agentrc.* labels natively. Not production runners.

The separation agentrc creates

ConcernDefined byRead / enforced byWhy it matters
Agent identity, capabilities, objectiveIDENTITY / CAPABILITY / SOPagent authorClear purpose and scope
Tools, skills, MCP serversCOPY / ADD --remote into /mntcompiler → layers + labelsPortable across stacks
Resource, model, network, lifecycle requestsPOLICY (typed namespaces)platform (grant / narrow / reject)Governed and reviewable
Enforcementtyped requests compiled to Cedarplatform (deny-by-default, forbid > permit)Least privilege by design
Packaging and sharingOCI artifact + ai.agentrc.* labelsany OCI registryInteroperable distribution
Execution substraterun-time choice (arc run --backend)local, container, microVM, cloud runnersFreedom with guardrails
Core slogan: The Agentfile declares one agent. The lockfile pins dependencies. The package makes it portable. The policy makes boundaries reviewable. The registry makes it shareable. Compatible runners execute it.

Current draft

Working Draft 0.1.0-draft.6 Four keywords /mnt projection OCI labels Cedar enforcement Secrets deferred

The project is published as a standards-style repository: specification first, reference tooling second.