ClawLink

How to connect OpenAI to Hermes Agent

Connect OpenAI to Hermes with ClawLink: paste your OpenAI key once and 126 tools work from chat. No MCP server to run, nothing stored on your machine.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
OpenAI
OpenAI
OpenAIAPI KEYMCP

Generate text, images, and embeddings via OpenAI API. Once connected, Hermes Agent can read and act on OpenAI from chat — pairing, token refresh, and tool wiring handled for you.

126 tools

Most guides for giving Hermes Agent OpenAI access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical OpenAI setup: pair once in the browser and your always-on Hermes agent can act on OpenAI for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into Hermes to install the plugin and pair your account.

Prompt for Hermes
Set up ClawLink for Hermes and tell me when it's ready.

1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable

2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin

3. I'll approve it in my browser, then reply "approved".

4. When I say approved, finish setup:
hermes clawlink finish

5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

Setup

It takes three steps to connect Hermes to OpenAI.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect OpenAI

    Paste your API key in the dashboard.

  3. 3

    Use it from chat

    Ask Hermes Agent: "What can you do with OpenAI?"

Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test

Then connect OpenAI in the ClawLink dashboard — paste your OpenAI API key once.

Verify the connection by asking Hermes:

Call openai_create_chat_completion with model gpt-4o-mini and a system message telling it to answer in two sentences, then show me the response.

Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once OpenAI is connected in the dashboard, that agent calls the same 126 OpenAI tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

OpenAI MCP for Hermes

Looking for a OpenAI MCP server for Hermes Agent? ClawLink connects OpenAI to Hermes Agent and exposes 126 OpenAI tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw OpenAI integration works the same way.

Two different products answer to "Hermes", and only one is this page. Nous Research's Hermes Agent is a self-hosted agent you configure with a wizard, choosing "OpenAI Codex or API" as its provider and putting keys in ~/.hermes/.env. ClawLink's Hermes Agent integration is not that: this connects the agent you already run to OpenAI so its tools can call the OpenAI API on your behalf. Here you paste an OpenAI platform key once into a hosted setup page, Hermes pairs with hermes clawlink begin and hermes clawlink finish, and 126 OpenAI tools become callable from chat. Nothing runs on your machine, no config file is edited, and the key is held server-side, so rotating it means changing one thing in the dashboard rather than editing a file on every machine.

What the Hermes Agent OpenAI integration can do

126 OpenAI tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 126.

30 of 126 OpenAI tools for Hermes

ToolWhat it does
Add upload part openai_add_upload_partTool to add a part (chunk of bytes) to an Upload object. Use when uploading large files in chunks, with each part up to 64 MB.
Cancel batch openai_cancel_batchTool to cancel an in-progress batch. Use when you need to stop a batch that is currently processing.
Cancel eval run openai_cancel_eval_runTool to cancel an ongoing evaluation run. Use when you need to stop an evaluation run that is currently in progress.
Cancel response openai_cancel_responseTool to cancel a background model response by its ID. Use when you need to stop a response that was created with the 'background' parameter set to true.
Cancel run openai_cancel_runTool to cancel a run that is currently in progress. Use when you need to stop an assistant run that is taking too long or is no longer needed.
Cancel upload openai_cancel_uploadTool to cancel an upload. Use when you need to stop an upload that is in progress. No parts may be added after cancellation.
Compact response openai_compact_responseTool to compact a conversation or response to reduce token usage. Use when you need to reduce the size of long conversations while preserving important context.
Create audio transcription openai_create_audio_transcriptionTool to transcribe audio files to text via OpenAI Audio Transcriptions API. Use when you need to convert speech in audio files to written text, optionally with timestamps or speaker diarization.
Create audio translation openai_create_audio_translationTool to translate audio files to English text via OpenAI Audio Translations API. Use when you need to convert speech in audio files (any language) to English text.
Create batch openai_create_batchTool to create and execute a batch from an uploaded file of requests. Use after uploading a JSONL file with purpose 'batch' to process multiple API requests in a single batch operation.
Create chat completion openai_create_chat_completionTool to create a chat completion response from OpenAI models. Use for conversational AI, text generation, function calling, multimodal tasks with vision/audio, and structured JSON outputs.
Create completion openai_create_completionTool to generate text completions using OpenAI's legacy Completions API. Use for single-turn text generation with models like gpt-3.5-turbo-instruct.
Create embeddings openai_create_embeddingsGenerate text embeddings via the OpenAI embeddings endpoint
Create moderation openai_create_moderationClassify text and/or image inputs for potentially harmful content via the OpenAI Moderation API
Create speech openai_create_speechGenerate text-to-speech audio using OpenAI's Audio API
Download file openai_download_fileDownload the contents of a specified file by its ID
Download video openai_download_videoDownload video content (MP4) or preview assets from OpenAI Videos API
Get chat completion openai_get_chat_completionRetrieve a stored chat completion
Get chat completion messages openai_get_chat_completion_messagesRetrieve messages from a stored chat completion
Get chatkit thread openai_get_chatkit_threadRetrieve a ChatKit thread by its ID
Get conversation item openai_get_conversation_itemRetrieve a single item from a conversation
Get eval openai_get_evalRetrieve an evaluation by ID
Get eval run openai_get_eval_runRetrieve an evaluation run by ID to check status and results
Get eval run output item openai_get_eval_run_output_itemRetrieve a specific output item from an evaluation run by its ID
Get eval run output items openai_get_eval_run_output_itemsGet a list of output items for an evaluation run
Get eval runs openai_get_eval_runsGet a paginated list of runs for an evaluation
Get input token counts openai_get_input_token_countsCalculate input token counts for OpenAI API requests
Get message openai_get_messageRetrieve a specific message from a thread by its ID
Get response openai_get_responseRetrieve a model response by ID
Get run step openai_get_run_stepRetrieve a specific run step from an Assistants API run to inspect detailed execution progress

Try it: find the OpenAI tool you need

Browse the 30 OpenAI tools

Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.

Example prompts

Call openai_create_chat_completion with model gpt-4o-mini and a system message telling it to answer in two sentences, then show me the response.

Use openai_create_embeddings on the three customer feedback snippets I pasted, and return the dimension count and a quick cosine similarity between the first and second vectors.

Take the audio file at <url>, call openai_create_audio_transcription on it, and give me a plain-text summary of what was said.

Create a batch with openai_create_batch for the 200 support tickets in <file id>, asking the model to classify each as billing, technical, or other, then tell me when it is done.

How the OpenAI tools behave

Details that decide whether an OpenAI prompt is a quick answer or a 429-shaped crawl.

  • Two model-call families exist side by side. Chat Completions tools (openai_create_chat_completion, openai_get_chat_completion) and Responses tools (openai_get_response, openai_compact_response, openai_cancel_response) both make model calls but take different arguments. Pick one family per task and say which.
  • Every call spends your account's money. Tokens, audio minutes, and batch compute bill against the key's project. A prompt that asks the agent to "try a few models" is a prompt to spend on several.
  • Batches are the volume escape hatch. openai_create_batch runs async work that does not count against the interactive rate limit the same way, and openai_cancel_batch stops it. Large enumerations belong here, not in a fan-out of chat calls.
  • Ids come from prior calls. File ids, upload ids, and run ids are returned by earlier tools; an id typed from the dashboard or documentation fails like a typo. Have the agent list before it addresses.
  • Evals exist as a first-class surface. openai_get_eval_run, openai_get_eval_run_output_items, and friends let an agent audit a model's performance on your account rather than just calling it.
  • Audio is a real surface. Transcription, translation, and speech generation each have their own tool, and openai_download_file retrieves results. A file first needs to exist as an OpenAI file, so the agent should confirm the upload step before the heavy call.

The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want OpenAI working from chat.

ManualClawLink
Credential handlingCollect, validate, store, and rotate the OpenAI API key yourself, then make sure every tool call uses the right account.Users complete the hosted ClawLink setup once and the connected OpenAI account becomes available to the agent without you building credential management.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for OpenAI.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right OpenAI actions to the runtime in a format your agent can reliably use.126 tools for OpenAI are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes OpenAI to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect OpenAI in the browser, and the 126 tools above work from chat. There is no SDK and no config file, and the OpenAI key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

Hermes paired but still can't use OpenAI

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.

Connection succeeds but no tools appear

Reconnect OpenAI from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling OpenAI tools

OpenAI tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every OpenAI call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

OpenAI returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

OpenAI says "invalid API key" although the account shows as connected

Separate two credentials before changing anything. The key Hermes uses to reach its model provider lives in Hermes's own config and has nothing to do with this error; search results for "Hermes API key" mostly answer about that one. The credential in play here is the OpenAI platform key you pasted at setup, held server-side. If that key was regenerated, deleted, or disabled in the OpenAI dashboard after you pasted it, every OpenAI tool fails from that moment, and re-pasting the current key from the ClawLink dashboard is the fix. If the key is untouched but calls still fail, check it is a project key scoped to a project your account can actually use, since a key belongs to one project and returns exactly this error outside it. When a reconnect is needed, start a fresh chat afterwards: the agent's tool catalog reloads on session start.

Ask the agent to diagnose it:

Call openai_get_chat_completion with a minimal one-token request and quote the exact error string. Then tell me which OpenAI project your key was created under. Do not retry the failing tool yet.
OpenAI returns 403 "insufficient permissions" on some tools

The usual cause with hosted keys is a restricted key: OpenAI lets you create keys limited to certain endpoints, and a read-only or endpoint-scoped key 403s on the tools outside its scope no matter what the account behind it can do. The second cause is project access: a key created in project A cannot act in project B, and the 403 names the resource, not the fix. The third cause is the placeholder trap that shows up in hosted toolkits: the agent called a tool with an id it invented (a file id, an upload id, a run id) instead of one it was given by an earlier call. Have it list what it can see and reuse ids from those responses exactly.

Ask the agent to diagnose it:

Tell me which OpenAI tool returned 403 and quote the error. Then list the ids that call would have needed, and which earlier tool call should have produced each one. Do not call OpenAI again until I reply.
OpenAI starts returning 429 or rate-limit errors mid-task

OpenAI rate limits by usage tier and by project, and an agent fanning out a batch of model calls is exactly the traffic shape that meets the limit: many parallel calls, each counting against the same allowance. The response is not to hammer retries but to change the shape of the work: have the agent run the calls sequentially, or move the work to openai_create_batch, which is the async route designed for large volumes. The 429 response tells the agent how long to wait, so ask it to report the backoff rather than guessing. A project with its own rate tier, separate from your main account traffic, is the structural fix if this recurs.

Ask the agent to diagnose it:

Tell me how many OpenAI calls you made in the last minute and which tool returned 429. Quote the backoff value from the error. Do not call OpenAI again until I reply.
OpenAI tools are missing, or one tool name is not found

Two different failures. If Hermes shows no OpenAI tools at all, the connection or the pairing is incomplete: confirm the plugin was installed with --enable, that both hermes clawlink begin and hermes clawlink finish ran, and that OpenAI shows as connected in the dashboard. If most tools work and a single name fails, that name is wrong rather than missing, and the error lists the closest real ones. There is also a first-call timing case unique to this setup: schemas load on demand, so the opening OpenAI call in a fresh session can arrive before the catalog and needs one retry. What does not apply is the usual advice for this symptom, which assumes a local MCP server declared in a client config file.

Ask the agent to diagnose it:

List the OpenAI tools you actually have access to. If there are none, say so plainly. If there are, tell me which one creates a chat completion and use that exact name.
API key setup works but results look incomplete

Double-check that the API key for OpenAI has the right scopes or account access. A valid key can still be too limited for some reads or writes.

FAQ

Is there a Hermes Agent OpenAI integration?

Yes. ClawLink is the fastest way to connect Hermes to OpenAI: link your OpenAI account once in the browser and Hermes Agent can call the OpenAI API through 126 ready-made tools — no custom code or token handling.

How do I connect OpenAI to Hermes with ClawLink?

Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect OpenAI in the dashboard and Hermes can use it from the next message — no config files, and the OpenAI key you paste is stored server-side instead of in your environment.

How long does it take to connect OpenAI to Hermes Agent?

About two minutes. Sign in, click Connect next to OpenAI in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

Why use ClawLink instead of wiring OpenAI up myself?

The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want OpenAI working from chat.

Which key does this need?

An OpenAI platform API key, generated at platform.openai.com under API keys, pasted once on the hosted setup page. It is distinct from the key Hermes itself uses to talk to its model provider: that one lives in Hermes's own config and is not involved here. The key you paste here carries your OpenAI account's access, so the agent can call models, embeddings, batches, and audio tools as you. It is stored server-side, never written to a .env on your machine, and disconnecting from the ClawLink dashboard ends the agent's use of it immediately.

Can I use OpenAI through Hermes without any API key of my own?

Not through this integration. This page is the hosted-management route: one key, pasted once, kept server-side, so you stop dealing with environment files and rotation across machines. If your goal is to avoid OpenAI billing entirely, that is a different problem, covered by hosted-OAuth routes for providers that offer them; the /learn/oauth-for-ai-agents page explains the difference. Do not assume "no key management" means "no key".

What can the agent do with the OpenAI tools?

The full platform surface: chat completions and the newer Responses API, completions, embeddings, audio transcription, translation and speech, moderation, batches for async work, file and upload handling, and eval runs. The writes to be deliberate about are the ones that spend money, since model calls are billed per token on your account, and batches are real work that runs on your account's quota. Asking the agent to state its intended calls before it makes them is the cheap guard against surprise spend.

Why would an agent need OpenAI tools when Hermes already uses a model?

Because "OpenAI as a tool" is not "OpenAI as the brain". Hermes can run on any model provider while your agent still needs one-off OpenAI calls: an embedding for a search index, a moderation pass, a batch classification, a transcription of an audio file, or a specific model that is not what Hermes is currently running on. This connection gives the agent a defined, visible way to make those calls, with the argument names in the tool schemas, rather than having it improvise HTTP calls from documentation.

Is it safe to connect OpenAI to an agent through ClawLink?

The parts worth comparing are where the secret lives and who can revoke it. Here the key lives server-side rather than in a local environment file or a CLI config, so a compromised machine does not leak it, and disconnecting in the dashboard revokes the agent's access at once. The remaining risk is the normal one for any API key: the account behind it can spend. A restricted project-scoped key, or a key on a project with its own billing limits, is the standard way to bound that, and nothing about this setup requires an unrestricted key.

Hermes paired but still can't use OpenAI

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.