Hermes Operations v1.0.0 MIT
xAI Grok Through a Subscription Login
Use when Hermes must use xAI Grok by subscription login. It is used instead of an API key. Covers the browser login, model selection, fallback order and login troubleshooting.
Features
- Browser login with the provider identifier and its aliases.
- Login over a remote session, using a local browser and a forwarded callback port.
- Login status check through the diagnostic command.
- Model selection through the model picker, with each model verified before use.
- Fallback order that lists the subscription model first, then a local or keyed tier.
- Troubleshooting for expired tokens, callback failures, and features that stay hidden.
Benefits
- No API key has to be stored for this provider.
- Background refresh keeps the session alive without manual steps.
- A login problem is traced to its real cause, not to a security alarm.
Install
From the tap (or GitHub path)
hermes skills install shagghiesuperstar/hermes-skills/skills/xai-grok-oauth --category hermes-operations
Direct URL
hermes skills install https://raw.githubusercontent.com/shagghiesuperstar/hermes-skills/main/skills/xai-grok-oauth/SKILL.md --category hermes-operations
Get the skill
Related skills
- Hermes OperationsMulti-Role Grok Setup for Hermes AgentUse when setting up Hermes with several Grok roles. The roles use xAI OAuth. Covers role-to-model mapping, delegation limits, memory settings and profiles.
- Hermes OperationsHermes Auth and Credential DebuggingUse when a Hermes provider login or key fails. The login or key may look expired. Covers the runtime credential check, credential pool cleanup and env-versus-pool confusion.
- Hermes OperationsHermes Model RoutingUse when wiring a model provider or fallback chain. It also applies to auxiliary lanes and to sweeping a retired model from every route. Covers slugs, lanes, pools and quota signals.
Related repos
- GitHub repohermes-skillsThe public collection this skill belongs to. MIT licensed.
- GitHub repoNousResearch/hermes-agentHermes Agent by Nous Research, the upstream runtime these skills are written for.
- GitHub reposhagghiesuperstar/hermes-grok-bridgeHermes to Grok Bot bridge: SSH relay and native API methods
- GitHub reposhagghiesuperstar/inference-quota-radarInference Quota Radar — headroom/burn/reset watcher for Hermes & agents (not a spend maximizer)
The skill file
xAI Grok Through a Subscription Login
Overview
Hermes can use xAI Grok models through a browser-based OAuth login that uses an existing subscription, so no API key is needed. Hermes refreshes the session in the background. The same login token is shared by the built-in xAI features, such as speech output, image and video generation, and search over posts. This skill covers the first login, the remote-session variant, choosing models, setting a fallback order, and the login problems that look like something else.
When to Use
- You want Grok models in Hermes, and you have a subscription but no API key for xAI.
- A login has expired, was revoked, or fails with a state or timeout error.
- A Grok feature does not appear, or a model in the picker does not answer.
- You are setting Grok as the primary model or as a fallback in a profile.
Features
- Browser login with the provider identifier and its aliases.
- Login over a remote session, using a local browser and a forwarded callback port.
- Login status check through the diagnostic command.
- Model selection through the model picker, with each model verified before use.
- Fallback order that lists the subscription model first, then a local or keyed tier.
- Troubleshooting for expired tokens, callback failures, and features that stay hidden.
Benefits
- No API key has to be stored for this provider.
- Background refresh keeps the session alive without manual steps.
- A login problem is traced to its real cause, not to a security alarm.
Procedure
Start the login. The operator approves access in the browser. The agent does not handle the approval page or the codes it shows:
hermes model # choose the xAI subscription entry, then approve in the browserThe same login can be started with the auth command:
hermes auth add xai-oauth. The provider identifier isxai-oauth, and the aliasesgrok-oauth,x-ai-oauthandxai-grok-oauthresolve to it.For a remote session, forward the callback port from the local machine, and run the login on the remote host with the no-browser option. Open the printed URL in the local browser:
ssh -N -L <callback-port>:127.0.0.1:<callback-port> <user>@<remote-host> hermes auth add xai-oauth --no-browserCheck the login state with the diagnostic command. Look for the xAI entry in the authentication section:
hermes doctor- Pick a model with the picker, and verify it before you depend on it. A model in the list is not proof that the subscription includes it. Send one short request to the model through the Hermes route, and read the answer.
Set the fallback order. The subscription model fits as a first fallback because the token refreshes without an expiry notice. Put a local or keyed tier after it, and check the order:
fallback_providers: - provider: xai-oauth model: <grok-model-id> - provider: custom model: <local-model-id> base_url: http://127.0.0.1:<port>/v1hermes fallback listEnable the built-in xAI features you need. Each one is a toolset that is off by default, and each reuses the login:
hermes tools enable x_search
Troubleshooting
The token expired and the session stopped
Hermes refreshes the token before a session and again after an authorization error. If the refresh fails with an error that says the grant is invalid, run the login again.
The login timed out
The callback listener waits for a short window. Run the login again, and approve the access within that window.
A "state mismatch" error on macOS
Upstream issue 27385 reports this error on macOS. Its cause is that the browser could not reach the local callback listener, so no callback arrived and the wait timed out. Check whether something else holds the callback port, whether a firewall blocks it, and whether the browser resolves the loopback address the same way the listener does. The no-browser login with a manual paste of the returned link avoids the listener altogether. Check the stored login afterwards with hermes auth list. The xAI credential should appear after a successful login:
hermes auth list
A feature such as search stays hidden
A feature is hidden when no xAI login is configured. Check the login state first, then enable the toolset.
The login works but the API key is also set
When both a subscription login and an API key are configured, check which one the requests use before you rely on either. Send one short request through the Hermes route and read the answer.
Pitfalls
- An API key is not required for this provider. The login covers the chat models and the built-in xAI features.
- Built-in features are off by default. Enable each toolset separately, even with a valid login.
- Image-generation models answer a different endpoint. Do not test them on the chat endpoint. They return a client error there, which looks like a broken model.
- A suppressed provider keeps its stored login. When another provider is the active one, Hermes does not route to the xAI login, but the stored login stays in place.
- The model list can be ahead of the subscription. Verify each model with one request before you report it working.
- A stored last-error field can repeat an old error. Judge the current run by its own output, not by that field.
- Never print the stored token. Check its presence and its modification time, not its value.
Verification
hermes doctorshows the xAI login as present and current.hermes fallback listshows the subscription model first, then the tier you chose.- One short request to the chosen model returns an answer through Hermes.
- The enabled feature appears in the tool list, and its test request succeeds.
Attribution
The loopback callback problem on macOS is tracked upstream at https://github.com/NousResearch/hermes-agent/issues/27385.