Skip to main content

Install & first run

This page takes you from nothing to a running, health-checked AGP stack. Four steps: install the CLI, init, fetch, start.

1. Install the agp CLI

The CLI is a single binary. The installer downloads it for your platform, verifies its SHA-256 checksum against the release, and adds it to your PATH.

curl -fsSL https://raw.githubusercontent.com/getraksha/agp/main/install.sh | sh

A piped installer runs in a subshell and cannot change your current shell's PATH. If the installer prints an "activate" line, run it (or open a new terminal) so agp is found:

export PATH="/usr/local/bin:$PATH" # exact line is printed by the installer

Confirm it's installed:

agp version

2. agp init — create your AGP home

agp init creates ~/.agp (directories, generated secrets, one .env per service) and your CLI config with a local profile. It is safe to re-run: existing secrets, env files, and config are kept.

agp init
AGP home ready at /Users/you/.agp
env files written: identity, registry, behavior-profile, policy, audit, approval, approval-ops, proxy, admin-ui
CLI config: /Users/you/.config/agp/config.yaml (profile: local)

Console login (http://localhost:27868): user "admin" password "ZMYtMU_3XIZ9G0qfTM9InjJQuBguA7_…"
This password is shown once; it is stored in /Users/you/.agp/secrets/console-password

Next: agp fetch (or agp fetch --local <agp-core path> to build from source), then agp start
Save the console password

The console password is printed once. It is also stored at ~/.agp/secrets/console-password, so you can always recover it with cat ~/.agp/secrets/console-password.

3. agp fetch all — download the services

This installs the eight AGP service binaries into ~/.agp/bin for your platform.

agp fetch all
Building from source

If you have an agp-core checkout, agp fetch --local <path-to-agp-core> builds the services from source instead of downloading them.

4. agp start all — start the stack

Services start in dependency order (Identity first; proxy and console last) and each is waited on until its /health/ready returns OK.

agp start all
starting identity ✓ 127.0.0.1:27860 (pid 52948, ready in 1006ms)
starting registry ✓ 127.0.0.1:27861 (pid 52949, ready in 506ms)
starting behavior-profile ✓ 127.0.0.1:27862 (pid 52950, ready in 505ms)
starting policy ✓ 127.0.0.1:27863 (pid 52951, ready in 506ms)
starting audit ✓ 127.0.0.1:27864 (pid 52952, ready in 505ms)
starting approval ✓ 127.0.0.1:27865 (pid 52953, ready in 505ms)
starting approval-ops ✓ 127.0.0.1:27866 (pid 52954, ready in 505ms)
starting proxy ✓ 127.0.0.1:27867 (pid 52955, ready in 505ms)
starting admin-ui ✓ 127.0.0.1:27868 (pid 52956, ready in 517ms)

Confirm everything is up:

agp status
service state pid addr health version
---------------- ------- ----- --------------- ------ -------
identity running 52948 127.0.0.1:27860 ready v0.0.12
registry running 52949 127.0.0.1:27861 ready v0.0.12
behavior-profile running 52950 127.0.0.1:27862 ready v0.0.12
policy running 52951 127.0.0.1:27863 ready v0.0.12
audit running 52952 127.0.0.1:27864 ready v0.0.12
approval running 52953 127.0.0.1:27865 ready v0.0.12
approval-ops running 52954 127.0.0.1:27866 ready v0.0.12
proxy running 52955 127.0.0.1:27867 ready v0.0.12
admin-ui running 52956 127.0.0.1:27868 ready v0.0.12
A service won't go ready?

Check its log: agp logs <service> --lines 100 (for example agp logs policy), or agp logs -f to follow all services live. agp status reports which dependency check is failing.

Port already in use?

AGP defaults to the quiet 27860–27868 range precisely so this is rare. If something on your machine already holds one of those ports, you can move it:

  1. Edit the address in ~/.agp/services/<service>.env (for example HTTP_LISTEN_ADDR=127.0.0.1:37863).
  2. Restart that service: agp restart <service>.

If you'd rather start clean, agp init --force re-renders every service .env from the defaults (keeping a .bak of each; your secrets are never regenerated).

What you have now

The full plane is running on your machine and the console is live at http://localhost:27868. Next, log in.

Log in to the console →