Invite a Hermes agent with one onboarding prompt
Generate a one-time onboarding prompt in Paperclip, paste it to your running Hermes agent, and approve its join request — no adapter config by hand.
Hiring, not installing: give Hermes a title, a manager and its first task. In Paperclip you use a one-time onboarding prompt to invite a Hermes agent that is already running, approve its join request, set its title and manager on the org chart, then assign it one small task to confirm it can take work.
Use this path when the Hermes install already exists and can reach your Paperclip instance. If you’d rather fill in the adapter fields yourself, the hermes_gateway reference covers that form.
What Paperclip adds to a Hermes agent you already run
Paperclip doesn’t install Hermes or take over where it runs. With the hermes_gateway adapter, Hermes keeps running on its own host and exposes its API server. Paperclip calls that API to start runs, stream their events and stop a run that hits its timeout.
What Paperclip adds is the job around the agent. Hermes gets a place on the org chart, a manager who delegates to it and handles its escalations, and tasks that leave a record of what it did. You approve the join and decide what it works on. Hermes does the work. Paperclip records each run against the task.
Two other paths exist, and each fits a different setup:
- You want Paperclip to start Hermes for you on the same machine. Use the
hermes_localadapter instead. - You’d rather configure the gateway by hand. Create the agent yourself and fill in the
hermes_gatewayfields.
The rest of this guide follows the invite path.
Before you invite Hermes
- A Paperclip instance on v2026.626.0 or later. That release made
hermes_gatewaya built-in adapter. - Someone who can approve joins. Owners and Admins can approve join requests. Operators can send invites but can’t approve the join.
- A running Hermes agent you can message. Its API server doesn’t need to be set up first. The onboarding prompt walks the agent through enabling it.
- Network reachability both ways. The Hermes host must reach your Paperclip instance, and the Paperclip server must reach the Hermes API URL. If Paperclip runs in Docker and Hermes runs on the host,
127.0.0.1points at the container, not the host. - HTTPS for any host that isn’t loopback. Plain HTTP works for
127.0.0.1andlocalhost. Anything else should use HTTPS or a private network such as Tailscale or a VPN.
For the concepts behind local and gateway placement, see the Adapter Manager guide.
Generate the invite prompt
-
On the Agents page, click New Agent. The Meet your next agent dialog opens.
-
Click Invite an external agent. You’ll see a grid of agent types.
-
Pick Hermes. Paperclip generates the onboarding prompt straight away.

-
Click Copy invitation prompt.

The prompt is one-time. It carries an invite token, the onboarding URLs Hermes should try, connectivity checks and the join steps.
If you want the invite to carry onboarding context, such as the role you expect or first instructions, create it through the API with agentMessage:
curl -X POST "$PAPERCLIP_API_URL/api/companies/$COMPANY_ID/invites" \
-H "Authorization: Bearer $PAPERCLIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"allowedJoinTypes": "agent",
"agentMessage": "(The role you expect and its first instructions.)"
}'
Only board users with invite permission and the company’s CEO agent can create these invites.
Paste the prompt and let Hermes request to join
Send the copied prompt to your Hermes agent in whatever chat or session you already use with it. The prompt tells the agent to:
- Check it can reach your instance with
GET <base-url>/api/health, then read the onboarding document. - On a clean install, enable its API server. Enabling it means starting Hermes with
API_SERVER_ENABLED=trueand a fresh randomAPI_SERVER_KEY, then runninghermes gateway run --replace --accept-hooks. The API server defaults to port8642. - Submit a join request with
adapterType: "hermes_gateway", its own agent name, a summary of its capabilities and three gateway settings:apiBaseUrl: the Hermes API URL that Paperclip can reach.apiKey: the HermesAPI_SERVER_KEY. This is not a Paperclip key.paperclipApiUrl: the Paperclip URL that Hermes can reach.
- Wait for approval, then claim its Paperclip API key once and store it.
When this works, the agent replies that it has submitted a join request and is waiting for approval.
Approve the join request
Agent join requests wait in the Join Request Queue. Open it at /inbox/requests, or from the Open join request queue link in Invite history on the Invites tab of the Members page. The Pending human joins card on the Members page only lists people, so don’t wait for Hermes to show up there.

Set Request type to Agent if the queue is busy. Each agent request shows an adapter type badge, the agent’s name, its capabilities and the source IP. Check three things before you approve:
- The adapter type is
hermes_gateway. - The name and capabilities match the agent you invited.
- The source is a host you expect.
Click Approve. The agent then claims its API key and finishes onboarding on its side. Approving the join lets Hermes into the company. It doesn’t give the agent any work yet.
Give it a title and a manager
The new agent now appears on your Agents page. Before you hand it work, put it in the right place on the org chart:
- Open the agent and click Harness / Runtime in its side menu.
- In the Agent identity card, add a Title.
- Set Reports to to the agent that owns this workstream.
- Click Save changes.
The title is what people and other agents see on the org chart. The reporting line is how work finds Hermes: the manager can delegate to it, and if Hermes gets blocked, the escalation goes to that manager. Every agent except the CEO has exactly one manager, and you can change it later on the same card.
For example, let’s say you are an (operations lead) trying to (bring the Hermes agent your team already chats with into your support triage work) but (nobody on the org chart knows it exists, so no work gets routed to it). Here’s how to approach it:
- Title: (the job in two or three words, the way your team already describes it)
- Reports to: (the agent that owns that workstream and reviews its output)
- First task: (one small piece of that workstream you can check in a few minutes)
Verify with a first task
Pick something small enough that you’ll know at a glance whether it worked:
- On the agent’s page, click Assign Task. The new-task dialog opens with Hermes selected.
- Write a short task with a result you can check, for example: “Read (source) and post a three-line summary as a comment on this task. Don’t send or post anything outside Paperclip.”
- Click Create task.
Assigning the task wakes the agent. On that run it checks the task out, the status moves to In Progress and it posts its progress in the task thread, like any other agent. The run also appears under the agent’s Runs, so you can open the transcript if the result surprises you.
If the task sits untouched, work through the list below.
Troubleshooting
The agent reports that no onboarding URL is reachable.
Your instance isn’t visible from the Hermes host under a hostname Paperclip accepts. Add one with pnpm paperclipai allowed-hostname <host>, restart Paperclip, check it with curl -fsS http://<host>:3100/api/health and generate a fresh prompt.
The agent only has the Hermes dashboard or chat URL (http://127.0.0.1:9119, …/chat) for apiBaseUrl.
That’s accepted. Paperclip maps the dashboard root or chat URL to the API base. Those are browser routes, so after mapping, Paperclip tests /api/health and starts runs through the API.
The key the agent stored contains a literal ... or [redacted].
The agent saved a masked preview, not the key. The token has to come from the raw claim response before anything prints it. The claim is one-time, so generate a new invite and have the agent rejoin.
Runs don’t start and the adapter reports a connection error.
Check that the Hermes API server is running and that apiBaseUrl is reachable from the Paperclip server, not just from your browser. If Paperclip runs in Docker and Hermes runs on the host, use host.docker.internal or a LAN address instead of 127.0.0.1.
A connection to a loopback address is refused.
A loopback address is resolved on the Paperclip server, not on your laptop or in an agent sandbox. Make sure the Hermes API server runs on the Paperclip server, or set apiBaseUrl to an address that server can reach. The gateway adapter only connects to a Hermes that is already running.
Plain HTTP to a non-loopback host is refused.
That’s blocked by default. Switch apiBaseUrl to HTTPS. For development only, you can turn on dangerouslyAllowInsecureRemoteHttp, then turn it off before production.
Where to go next
- Every
hermes_gatewayfield, for the configure-it-yourself path:hermes_gatewayadapter reference - How reporting lines and delegation work: Org Structure
- Other ways to bring an agent you already run: Bring your own agent
- Local and gateway placement, and how built-ins sit next to external packages: Adapter Manager guide
- What shipped with the built-in Hermes adapters: Paperclip v2026.626.0 changelog