Contributing
This repository contains the API server, control plane, UI, runner, CLI, SDKs, MCP server, credential sidecars, manifests, docs, specs, and workflows for ACP.
Main components
Section titled “Main components”| Component | Path | Stack |
|---|---|---|
| API server | components/ambient-api-server | Go, rh-trex-ai, PostgreSQL, REST, gRPC |
| Control plane | components/ambient-control-plane | Go, Kubernetes client, gRPC watches |
| UI | components/ambient-ui | Next.js, Shadcn, React Query |
| Runner | components/runners/ambient-runner | Python, FastAPI, AG-UI bridges |
| CLI | components/ambient-cli | Go, generated SDK |
| SDKs | components/ambient-sdk | Generated Go, Python, TypeScript |
| MCP server | components/ambient-mcp | Go, mark3labs/mcp-go |
| Manifests | components/manifests | Kustomize |
Common commands
Section titled “Common commands”make dev-bootstrapmake kind-upmake kind-loginmake kind-rebuildmake test-allmake lintmake benchmarkFor benchmark output that is easier for automation to parse:
make benchmark FORMAT=tsvmake benchmark COMPONENT=ambient-control-plane MODE=coldComponent checks
Section titled “Component checks”cd components/ambient-api-servergofmt -l .go vet ./...golangci-lint run
cd components/ambient-control-planegofmt -l .go vet ./...golangci-lint run
cd components/runners/ambient-runnerpython -m pytest tests/
cd docsnpm run devDevelopment rules that matter
Section titled “Development rules that matter”- 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
anyin 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.
PR readiness
Section titled “PR readiness”Before opening a PR:
- Review the diff against
CLAUDE.md,BOOKMARKS.md, andspecs/standards/. - Check API, CLI, SDK, runner, UI, and manifest consumers when changing contracts.
- Run targeted tests and formatting.
- Confirm no secrets were added.
- Confirm docs match implemented behavior.
The PR review hook runs mechanical checks and CodeRabbit review when the CLI is available.