Quick start

AIM gives every AI agent a unique Ed25519 identity, capability scoped authorization, and a continuous trust score, with every action recorded in an audit log. Pick the path that matches how you run agents. All three share the same audit-event schema.

Cloud quickstart

Install the Python SDK and authenticate. aim-sdk login runs an OAuth flow against aim.opena2a.org. Pass --url to point at a self-hosted server instead.

pip install aim-sdk
aim-sdk login                    # OAuth to aim.opena2a.org, or --url for self-hosted

Then protect any function with a capability grant. secure() generates an Ed25519 keypair, registers the agent, and stores credentials under ~/.aim/.

from aim_sdk import secure

agent = secure("my-first-agent")

@agent.perform_action(capability="db:read")
def get_customer(customer_id):
    return db.query("SELECT * FROM customers WHERE id = ?", customer_id)

@perform_action signs every invocation, runs it through 5-step Fine-Grained Authorization, and records the outcome in the audit log. Risk level is auto-detected from the capability string, so db:read is treated as lower risk than payment:charge.

The same one-line shape works in Java and TypeScript. The Python SDK tutorial walks through this end to end.

Local, no server

To run on one machine with no server, embed identity directly in a Node.js application with @opena2a/aim-core, the local-only TypeScript SDK. Identity lives at ~/.opena2a/aim-core/, the audit log is a local JSONL file, and policies are YAML.

npm install @opena2a/aim-core

Local mode covers identity, capability policy, audit, and the 8 factor posture score. Deny-before-execute authorization, server-side Fine-Grained Authorization, and the 9 factor behavioral score require the server. See the aim-core guide.

Auditing or hardening an existing codebase rather than integrating an SDK? The optional opena2a CLI adds SecOps commands such as opena2a identity audit for a cross-tool audit log. It is not required to use the SDK.

Self-hosted

Run the full AIM server, dashboard, and PostgreSQL on your own infrastructure. The quickstart script brings up the server, dashboard, PostgreSQL, and Redis, then prints login credentials at the end of the run.

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.sh

The dashboard is served at localhost:3000 and the API at localhost:8080. For production deployment on Azure, GCP, or AWS, and a from-source setup, see the installation guide.

What happens on each action

In server mode, every privileged action runs through five checks before it executes. A denied action never reaches your code, so a prompt injection that asks the agent to act outside its declared grant is stopped at the tool-call boundary.

  1. Capability: is this action inside the agent grant?
  2. Attribute: do the request attributes match policy?
  3. Context: is the call consistent with the agent context?
  4. Chain: is the delegation chain intact?
  5. Intent: on high-risk actions, the NanoMind classifier checks intent locally.

Next steps