Skip to content

Contributing

This repository contains the API server, control plane, UI, runner, CLI, SDKs, MCP server, credential sidecars, manifests, docs, specs, and workflows for ACP.

ComponentPathStack
API servercomponents/ambient-api-serverGo, rh-trex-ai, PostgreSQL, REST, gRPC
Control planecomponents/ambient-control-planeGo, Kubernetes client, gRPC watches
UIcomponents/ambient-uiNext.js, Shadcn, React Query
Runnercomponents/runners/ambient-runnerPython, FastAPI, AG-UI bridges
CLIcomponents/ambient-cliGo, generated SDK
SDKscomponents/ambient-sdkGenerated Go, Python, TypeScript
MCP servercomponents/ambient-mcpGo, mark3labs/mcp-go
Manifestscomponents/manifestsKustomize
Terminal window
make dev-bootstrap
make kind-up
make kind-login
make kind-rebuild
make test-all
make lint
make benchmark

For benchmark output that is easier for automation to parse:

Terminal window
make benchmark FORMAT=tsv
make benchmark COMPONENT=ambient-control-plane MODE=cold
Terminal window
cd components/ambient-api-server
gofmt -l .
go vet ./...
golangci-lint run
cd components/ambient-control-plane
gofmt -l .
go vet ./...
golangci-lint run
cd components/runners/ambient-runner
python -m pytest tests/
cd docs
npm run dev
  • PostgreSQL is the source of truth for projects, agents, sessions, credentials, and settings.
  • The control plane watches the API server over gRPC and creates Kubernetes Pods, not Jobs.
  • Do not introduce CRDs as the persistent data model.
  • User-facing API operations must use user-scoped auth.
  • Never log, return, or echo tokens.
  • Do not use panic() in production Go code.
  • Do not use any in frontend TypeScript.
  • New Kubernetes child resources need owner references where applicable.
  • Containers must use restricted security contexts.
  • New persistent storage should be PostgreSQL unless the change explicitly calls for repo files.

Before opening a PR:

  1. Review the diff against CLAUDE.md, BOOKMARKS.md, and specs/standards/.
  2. Check API, CLI, SDK, runner, UI, and manifest consumers when changing contracts.
  3. Run targeted tests and formatting.
  4. Confirm no secrets were added.
  5. Confirm docs match implemented behavior.

The PR review hook runs mechanical checks and CodeRabbit review when the CLI is available.