Create, install, and connect an agent
In the Atoll web app:1
Create agent
Open Agents from the workspace sidebar. Choose Create Personal Agent, Create Project Agent, or Create Org Agent, then name the agent and select its access.Access determines which Atoll data the agent can reach. Profile, project, team, and base URL defaults only configure how its local Atoll tools start.
2
Install Atoll
Copy the one-time
sk_atoll_... key or an install snippet that contains it, then run the personalized snippet where the agent works. The snippet configures the selected profile and performs one read-only auth status request with that exact profile.Copying the key or install snippet records only that local UI action. It does not mean installation or connection succeeded.3
Connect agent
After the personalized setup sequence runs, keep the Connect step open. Atoll observes the exact key automatically and updates the page when it receives the authenticated request.Connected is authentication evidence, not proof that the agent is online or running. Atoll shows it only when that unrevoked key authenticated a request after it was created; activity from another key for the same agent does not count. Use Check again as bounded recovery if a read fails or the automatic watch expires.
First-run setup keys
The first-run workspace wizard atomically creates the local setup agent, session, and a setup-scoped key that expires after 24 hours. That key can submit setup proposals but cannot perform normal workspace mutations. Its raw value is returned once, and its copyable prompt is held only in the current page’s memory: copy it before refreshing or leaving the setup page. Atoll atomically revokes the temporary key when setup is applied, skipped, or failed. It is never promoted into an ordinary long-lived credential. If the agent should continue working after setup, an owner or admin must deliberately mint a separate key from Agents. Generic key mint and rotate return409
while the agent has a nonterminal setup session or any unrevoked setup-scoped
key, including an expired key.
CLI setup
Install the CLI:--org-id on named profiles, or pass --org-id per command. Resource commands fail when the selected profile has no org ID so agents do not accidentally operate with the wrong scope.
Run one command as a specific profile:
Environment setup
For API calls or non-CLI tools, provide the key and org ID through that runtime’s secret mechanism instead of committing them to the repository:Remote MCP setup
Use the MCP server when the agent runs remotely and cannot use local CLI profiles.127.0.0.1 by default. External binding requires both
ATOLL_MCP_HOST=<external-host> and ATOLL_MCP_ALLOW_EXTERNAL=1, and should be
used only behind a trusted TLS/authenticated network boundary.
Private remote MCP clients connect to POST /mcp and may pass an Atoll API key:
ATOLL_API_KEY. That fallback
is available only in explicit --stdio mode. HTTP hosts may set
ATOLL_ORG_ID and ATOLL_BASE_URL as non-secret defaults.
Public ChatGPT / Agent Plugin setup
For a public ChatGPT-style connection, configure the MCP server with OAuth 2.1 instead of sharing an API key: Atoll’s hosted production endpoint ishttps://atollhq.com/mcp; its protected
resource metadata is at
https://atollhq.com/.well-known/oauth-protected-resource. Vercel previews and
self-hosted deployments must configure ATOLL_MCP_RESOURCE explicitly.
The canonical hosted endpoint allows the exact https://chatgpt.com browser
origin by default. Preview and self-hosted deployments must set
ATOLL_MCP_ALLOWED_ORIGINS to a comma-separated exact-origin allowlist when
browser clients send an Origin header. An unlisted origin is rejected;
requests without Origin are allowed for server-to-server clients.
https://your-host.example/mcp) with the
client. The client discovers
/.well-known/oauth-protected-resource, completes OAuth authorization, and
redirects to Atoll’s /oauth/consent page. Sign in as a human and continue the
one-time request. Atoll returns automatically only when the existing approval
has an active connection with at least one usable profile. If Atoll resets an
older incomplete grant, return to OpenAI and run Scan Tools again. The new
request lets you select an existing manageable agent or create a new
project/personal agent. The selected agent member executes the connection’s
tool calls; Atoll does not expose the agent’s API key to the client.
Keep ATOLL_MCP_RESOURCE identical to the resource registered with the OAuth
client. Atoll rejects tokens with a different issuer, audience, resource, or
binding, and rejects OAuth requests for revoked or deleted agents. Use API keys
for CLI profiles and private MCP deployments; use the public plugin profile for
ChatGPT-style OAuth connections.
OpenClaw / ClawHub skills
For OpenClaw, prefer skill-scoped config over global shell exports. Install the ClawHub skill, then add anatoll entry to ~/.openclaw/openclaw.json:
atoll ... commands:
Existing atoll-api ClawHub installs remain supported as a legacy alias. New installs should use atoll.
Verify access
For a named CLI profile, use the same read-only command used by the personalized setup snippet:Install an Atoll skill
Atoll publishes skill packages for common agent runtimes: Install or refresh only the local skill assets and routing hints:--install-only as an explicit alias for this mode. This remains true when ambient ATOLL_* variables exist.
To configure a named profile, use explicit flags:
--configure:
--configure form applies to the Claude and Gemini packages. Configuration mode supports the optional project, team, and base URL defaults. Profile mode stores credentials and defaults only in the named Atoll CLI profile, does not select that profile globally, and does not write global ATOLL_* credential exports. Use atoll --profile agent-a ... for direct CLI commands.
Installers write credential-bearing files atomically, reject symbolic-link
targets, set credential files to owner-only 0600, and set dedicated
credential directories to 0700. They serialize concurrent installer runs to
avoid lost profile updates and shell-quote values when writing shell startup
files.
Global Codex, Claude, and Gemini runtime instructions stay profile-neutral. Codex and Gemini installers may add a short skill routing hint, but they do not embed the full Atoll guide or credentials there. If a Codex repo should always use a specific profile, write repo-local instructions explicitly:
@latest suffix to avoid npm reusing an older cached installer. Profile-mode installers print their package version and a verification command; run atoll --profile agent-a agent-context --json to confirm the named profile has a key, org, and defaults.
Optional flags:

