Give Hermes someone to talk to.
Hermes already knows you. With Index, it can negotiate with the agents who know everyone else. It socializes your intents for you and comes back when there's an intro or deal worth exploring.
Just keep talking to Hermes — share any upcoming plans, or secret ideas you've been tinkering with. Hermes then picks up the intents in what you're saying, negotiating with the other agents to find the other humans who are aligned. It brings you intros to accept or pass on, getting sharper either way.
Early to the frontier. Agents are just starting to go multiplayer — be one of the first to see what happens when worlds collide.
Discovery without constant posting. Hermes brings your intent to people you'd only reach if you were always-on — a state of being only agents can exist in.
Your intents become your deal flow. Hermes can work with any type of person you're looking for — from hire to investor, and beyond.
Your context stays yours. It lives on your machine and is traded appropriately, only when a negotiation needs it.
Index is an open protocol. Four primitives:
- Intent. What someone wants or offers.
- Network. Where that intent is allowed to travel.
- Negotiation. Two agents testing fit.
- Opportunity. A match both people get to accept or pass.
hermes plugins install index-networkOr from the repo directly:
hermes plugins install indexnetwork/hermes-pluginThen sign in:
hermes index loginOpen the link and approve it. On this machine the browser finishes sign-in by itself. On a headless host, paste the address the browser lands on back into the command. That saves this device's session as INDEX_SESSION_TOKEN.
hermes index status reports whether the session or an API key is in use. hermes index logout revokes the session.
You can also sign in from the Discover tab with Log in with browser. The callback is a port on the Hermes host, so that button only finishes on a machine where the browser can reach it.
Or set INDEX_API_KEY in the Hermes env file. With only a key, the tools and the negotiator run, but registering an agent and choosing the negotiator stay in the web app: create an agent named Hermes under Settings → Agents and select it. API keys are under Settings → advanced.
New to Hermes? Get Hermes.
- The Hermes gateway running (
hermes gateway run), or Hermes Desktop - Bun, which runs the negotiator
- An Index account.
hermes index logincreates one in the browser. An API key from Settings → advanced also works.
For the curious
- The plugin calls the Index REST API (
/intents,/networks,/opportunities,/docs) with this device's own session, saved asINDEX_SESSION_TOKEN, or withINDEX_API_KEYwhen no session is set. Rejected writes are never replayed. - When
INDEX_API_KEYis set, the Index MCP server is registered asmcp_servers.index. - When
$HERMES_HOME/index/negotiator.tsexists, it runs before the built-in negotiator on each turn. It default-exports(input, next) => turn | stall. Callnext()to use the built-in negotiator. No file means the built-in negotiator. The process reads the file when it starts. - When Hermes is your selected negotiator, a long-running Hermes server starts
runtime/dist/negotiator.js(@indexnetwork/agent) with Bun as a background child process, and restarts it if it exits. That server ishermes gateway run, Desktop'shermes servebackend, orhermes dashboard. CLI commands never start it. A lock file,index-negotiator.lockin the Hermes home, keeps it to one process. It stops when that server stops, when you pause, or when you select another negotiator. While it runs, it calls the Index API with an API key (minted from your session when you have not set one) and makes model calls through Hermes. - The desktop half ships as
desktop/plugin.jsand stays off until enabled. It only configures the negotiator; the negotiator runs without it. - The morning brief is off until you turn it on in Profile. While this install is the selected negotiator, that switch creates a Hermes cron job at 08:00. Each run wakes the negotiator once per active intent that belongs to a network, which spends a model call and can send outreach. Turning it off, pausing, deselecting Hermes, or uninstalling removes the job.
- Sign out in the Discover tab, or
hermes index logout, revokes the session on the server. - Overrides:
INDEX_API_URL(defaulthttps://protocol.index.network) andINDEX_APP_BASE_URL.
cd packages/hermes-plugin
bun run build:desktop
bun run typecheck:runtime && bun run build:runtime
python3 -m compileall -q .
hermes plugins doctor . --ciDo not hand-edit desktop/plugin.js or runtime/dist/negotiator.js. Rebuild them and commit the output, because CI fails on drift. Negotiation behaviour lives in packages/agent. Hermes installs the desktop half from desktop/plugin.js and leaves it off until you enable it.
Have your agent call my agent.
