Contributing
Build and test the Go service and the web UI, and find where each part lives.
The service is Go. The explorer is a Vite and React app in ui/, embedded into the binary.
Build and test
make build
make test
make lint
make test-postgres
make test-aws-e2e
make test-postgres runs the PostgreSQL integration tests with the race detector in a disposable container. make test-aws-e2e runs the AWS plugin end to end in a disposable kind cluster that holds LocalStack, PostgreSQL, and the service. It checks the startup inventory, Security Group updates triggered through EventBridge and SQS, ENI retraction, and a Firehose-format VPC Flow Log reaching the telemetry sink. The events are synthetic, so it does not validate AWS-managed CloudTrail, VPC Flow Logs, or Firehose delivery. make lint-fix applies the lint fixes it can.
Web UI
make ui
make ui-dev
make ui-lint
make ui-storybook
make ui-test
make uibuilds the UI intoui/dist, which the binary embeds.make ui-devstarts the Vite dev server onhttp://localhost:5173and proxies/apito the service. Runmake graph-uiin another terminal first.make ui-lintruns the TypeScript and Biome checks that CI runs.make ui-storybookserves Storybook athttp://127.0.0.1:6006. It renders the UI against a fake backend, so you need no PostgreSQL, service, or cluster.make ui-testruns every story and its interaction test in headless Chromium. The first run downloads Chromium through Playwright.
The fake backend lives in ui/mocks. Keep it in step with pkg/api when responses change.
Where things live
| Directory | Contents |
|---|---|
cmd/ | Entry points: agentantibody and agentantibody-reasoning-mcp |
pkg/ | Core packages: api, discovery, graph, reasoning, remediation, state, telemetry |
plugins/ | The discovery plugins: kubernetes, istio, cilium, agentgateway, aws |
ui/ | The web UI |
docs/ | Architecture, data model, remediation, telemetry, and plugin docs, including one per plugin |
evals/ | Campaigns, scripts, and manifests |
deploy/ | The PostgreSQL compose file and the ClickHouse schema |
scripts/ | Utility scripts |
Before you open a change
Run make test, make lint, and, for UI changes, make ui-lint. Change a plugin’s behavior only with its tests, and run make test-postgres when you touch the graph or state packages. For Kubernetes or Istio changes, also run make eval-run. For AWS changes, also run make test-aws-e2e.
Source and issues: github.com/agentantibody/agentantibody.