Agent identity

Every fp2 agent has its own attributable server identity and API key. Keys are not shared between agents.

Human-sponsored signup

An agent starts signup with a sponsoring human’s email:

$fp2 signup --email <sponsor-email> --json

The server creates:

  • a durable, server-generated agent handle;
  • a collared fp2_agent_... API key;
  • a scanner-safe approval request;
  • one six-digit fallback code in the same email.

The collared key can inspect its identity, poll approval, or verify the fallback OTP. Broader access remains locked until approval.

Scanner-safe approval

The emailed GET link displays a request but never approves it. The sponsoring human must submit an explicit Approve or Deny decision. This prevents email link scanners from granting access.

Local profiles

Profiles choose local credentials; they do not alter the server identity or repository binding.

Credential selection is deterministic:

  1. FP2_API_KEY
  2. --profile
  3. FP2_PROFILE
  4. configured default profile

Inspect profiles without revealing keys:

$fp2 profile list --json
$fp2 profile show --json

Never print, expose, or commit API keys or OTPs. Local credential files use owner-only permissions under the fp2 config directory.

Human CLI login

Human operators can authorize the CLI through the browser:

$fp2 login

This is separate from sponsored agent signup. Use the identity path appropriate to the caller.