Installation
Install the opena2a CLI for local identity and auditing, or self-host the AIM server for centralized agent identity management across a fleet.
opena2a CLI
Local identity, capability policy, trust scoring, and a cross-tool audit log. No server required. No configuration to start.
npx opena2a-cli identity create --name my-agentnpm install -g opena2a-clibrew install opena2a-org/tap/opena2aPython SDK (cloud)
To use AIM Cloud, install the Python SDK and authenticate. This is the fastest path and needs no infrastructure.
pip install aim-sdk
aim-sdk login # OAuth to aim.opena2a.org, or --url for self-hostednpm package (no server required)
For lightweight cases that do not need a centralized server, use @opena2a/aim-core directly. Ed25519 identity, capability policy, trust scoring, and a local audit log, all in-process.
npm install @opena2a/aim-coreaim-core guide →Self-host the AIM server
The server adds a REST API, dashboard, PostgreSQL audit storage, OAuth, 5-step Fine-Grained Authorization, the 9 factor behavioral trust score, MCP attestation, and SIEM adapters. Pick the quickstart script for a one-command stack, or build from source.
Quickstart script
Brings up the AIM server, dashboard, PostgreSQL, and Redis. Verify the script against the SHA in the latest release notes before running it.
curl -sSLO https://raw.githubusercontent.com/opena2a-org/agent-identity-management/main/scripts/quickstart.sh
shasum -a 256 quickstart.sh # verify against the SHA in the latest release notes
bash quickstart.shThe dashboard is served at http://localhost:3000 and the API at http://localhost:8080. Login credentials are generated and printed at the end of the run.
From source
For development or a custom stack, clone the repository and generate local-dev secrets.
git clone https://github.com/opena2a-org/agent-identity-management.git
cd agent-identity-management
# Generate local-dev secrets (one-time setup)
./scripts/gen-dev-secrets.sh > .env
# Minimal dev stack
docker compose up -d aim-postgres aim-redis aim-backend aim-frontend
# Health check
curl -fsS localhost:8080/healthzThe full docker-compose.yml also brings up Elasticsearch, MinIO, NATS, Prometheus, Grafana, and Loki. The minimal command above skips those services. Prerequisites: Docker, Go 1.23+, Node 20+, Python 3.11+.
Production deployment
Deployment references for Azure, GCP, and AWS live in infrastructure/DEPLOYMENT.md. The reference deployment runs on a managed container environment with at least 8 GB RAM and 4 vCPUs.
System requirements
- • CPU: 2 vCPUs (x86_64 or ARM64), 4 for production
- • Memory: 4 GB RAM, 8 GB for production
- • Storage: 20 GB SSD
- • Database: PostgreSQL 14+
- • Cache: Redis 6+ (optional)
Environment variables
Required when building from source. The quickstart script generates these for you.
# Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=aim_user
POSTGRES_PASSWORD=<generated>
POSTGRES_DB=aim
# Redis (optional but recommended)
REDIS_HOST=localhost
REDIS_PORT=6379
# Security
JWT_SECRET=<min-32-chars>
ENCRYPTION_KEY=<generated>
# API
API_PORT=8080
API_HOST=0.0.0.0
# Frontend
NEXT_PUBLIC_API_URL=http://localhost:8080Verify the installation
Confirm the server is healthy:
curl http://localhost:8080/healthz
# Expected response:
{ "status": "healthy" }With a healthy status, AIM is running. Continue to the quick start to register your first agent.
Troubleshooting
Database connection failed
Ensure PostgreSQL is running and the connection details are correct.
psql -h localhost -U aim_user -d aimPort already in use
Check whether another service holds the port:
lsof -i :8080 # API lsof -i :3000 # dashboardDocker Compose issues
View logs to diagnose:
docker compose logs -f