Each harness that connects to Graft is an agent, with a token, a scope and a working set of its own. Agents is where you make one and where you read what it has been doing. Your connections and your toolbox are yours across every agent; what an agent holds is which connections it may use and which tools are in its list right now.

The list

The Agents screen lists every agent you have created, grouped into Active and Revoked, with seven columns: the name, its Harnesses, its Token prefix, its Working set as a count against the cap, its Idle window, when it was created and its status. The full token is never here. An agent that Claude or ChatGPT connected shows the product’s name in the Harnesses column and OAuth in the Token column: the product holds its tokens, so there is no prefix. An agent made in the console records no harness, so its Harnesses cell reads Set up harness while it is active; it is a prompt that opens the setup, not a report on whether the harness is connected. Each row’s actions menu offers View agent, Connect a harness and Edit (the name, cap and idle window in a dialog). New agent opens the creation dialog.

Creating an agent

1

Name, limits and scope

Give the agent a name that says where the harness runs and which one it is, such as laptop Hermes. The Working-set cap and Idle window (days) default to 20 and 21; they drive the rule that contracts the agent’s list, and you can change them later. Under Scope, tick the connections this agent may use. Its tools cannot reach a connection outside the scope, and you can change it any time. Then Create agent.
2

Copy the token

The dialog shows the token once. Under it, the MCP server URL and a Harness choice, Hermes first, then two blocks in that harness’s own shape: where the token goes (~/.hermes/.env for Hermes, ~/.openclaw/.env for OpenClaw, an export GRAFT_TOKEN='grft_…' line for any other client) and what to add to its configuration (mcp_servers in YAML for Hermes, mcp.servers for OpenClaw’s Gateway, the generic mcpServers block otherwise). Graft keeps only the token’s hash, so copy it before you close the dialog with I have copied the token. If it is lost, revoke the agent and create another.
3

Paste the block into your harness

The configuration block carries no secret. It names ${GRAFT_TOKEN}, which the harness resolves from its .env file or its environment, so the block can live in a config file you commit. The Hermes and OpenClaw pages carry the same blocks with the hosted URL.

An agent’s page

Click an agent’s name, or View agent in its row’s menu, to open its page. The header shows the token prefix, when it was created and its status, with Connect a harness and Revoke token on the right. Below are five cards. Connect a harness opens the same setup the creation dialog showed, for this deployment’s origin: the URL, the harness choice and the two blocks. The token is not in it; the token line carries a placeholder for the one you saved, and Graft cannot show it again. The button is absent on a revoked agent. For an agent a product connected the dialog gives the URL and says to choose this agent under Connect as at the product’s consent: there is nothing to paste, and revoking the agent is how the connection ends. Scope is the set of connections the agent may use, as checkboxes over your connections. Save scope replaces the set in one step, in effect on the agent’s next call: the capability token minted for its next run names exactly these connections. An acquire against a connection outside the scope is refused as connection_not_in_scope and points the agent at request_connection, which proposes a new connection for you to confirm; an existing connection is added here. Name, cap and idle window holds the two knobs of the contraction rule, plus the name; Edit in the agents list opens the same three fields as a dialog. A tool unused past the idle window is demoted; when more than the cap are promoted, the least recently used go first, never one used inside the window, and never while the agent has a run in flight. Save takes effect at the next sweep. The cap accepts 1 to 500 and the window 1 to 3650 days. Working set is the agent’s tool list as the harness sees it, counted against the cap. Each row shows the tool’s wire name and description, an Asks column showing its read-only, write or destructive badge, who promoted it (the agent, a publish or the rule), when, and when it was last used. Approvals is your standing answers for this agent, per tool: allowed or denied, when you decided, and whether the tool asks every time. The Asks every time switch works both ways on any allowed tool, write or destructive: on, the tool asks you before each call; off, your answer holds. Withdraw removes the answer, so the tool asks again on its next call, and is the way back from a no. Approvals are per agent, so the same tool can be allowed for one of your agents and denied for another. History lists every promotion and demotion with its cause, newest first: the agent asked, published by the agent, unused past the idle window, over the working-set cap, or its connection was revoked.

Revoking

Revoke token stops the token resolving at the MCP endpoint at once; the harness is refused from then on, and the token cannot be restored. The agent’s row, working set and history stay as your records. To reconnect the harness, create a new agent and paste the new token. One token is one agent, so a leaked token costs you one agent and nothing else. On an agent a product connected the button reads Revoke agent and revokes the tokens the product holds; the product then asks you to connect again. Revoking a connection is a different act, done under Connections, and it reaches every agent at once. See Managing and revoking.

Prompts to try

Where next

Agents and persons

Why connections belong to you and scopes belong to an agent.

Promote and demote

The cap and idle rule the History card records.