Skip to content

Twitter/X data in Hermes Agent

Hermes Agent reads X through two built-in routes: the x_search tool, which xAI bills at $5 per 1,000 posts plus model tokens, and the bundled xurl skill, which runs on the official X API at $0.005 per post.

Short answer: Hermes Agent ships two ways to read X. x_search needs an xAI key and bills $5 per 1,000 posts plus tokens; the xurl skill needs an X developer app and bills $0.005 per post. For less, point config.yaml at Sorsa API's MCP server: tweets from $0.014 per 1,000 through 40 read-only tools, plus 100 free requests.

mcp_servers: sorsa
40 tools, all read-only
Price
from $0.014 per 1,000 tweets

#Can Hermes Agent read Twitter on its own?

Yes, through two routes that come with it, and both bill at X's own rates. Hermes Agent, the open-source agent from Nous Research, has an x_search tool and a bundled skill called xurl; they need different keys and return different things.

  • x_search sends your question to xAI's servers, where Grok searches X and writes an answer with links to the posts it used. You switch it on in hermes tools, it needs an XAI_API_KEY or a SuperGrok or X Premium+ login, and it only reads. Hermes' x_search docs (opens in a new tab) warn that the subscription login answers "with no citations", so real posts need the paid key.
  • xurl is X's official command-line tool, wrapped as a skill. It returns raw post and profile JSON from the official X API and can also post, reply, like and send DMs as your account. Before the first call you create an app at developer.x.com and sign in with OAuth outside the agent, as the xurl skill page (opens in a new tab) spells out.

Both routes price X data by the item. xAI's X Search pricing (opens in a new tab) counts every post it fetches, parent and quoted posts included, and adds the model's tokens on top. The official X API charges by its rate card (opens in a new tab) and stops at 3 million post reads a month before an Enterprise contract.

Built-in routeNeedsReturnsPrice per 1,000 posts
x_searchxAI API key, or a SuperGrok or X Premium+ loginGrok's written answer with post links$5.00, plus tokens; profiles $10.00
xurl skillX developer app, OAuth sign-in, prepaid creditsRaw post and profile JSON; can also post$5.00; profiles $10.00
  • x_search

    Needs
    xAI API key, or a SuperGrok or X Premium+ login
    Returns
    Grok's written answer with post links
    Price per 1,000 posts
    $5.00, plus tokens; profiles $10.00
  • xurl skill

    Needs
    X developer app, OAuth sign-in, prepaid credits
    Returns
    Raw post and profile JSON; can also post
    Price per 1,000 posts
    $5.00; profiles $10.00

From November 22, 2026 the official X API also bills the author that comes back with each post, at $0.010 per user (X's notice (opens in a new tab)), so a page of 20 posts by 20 different people goes from $0.10 to $0.30. Any other source of X data joins Hermes the way every outside tool does: as an MCP server in config.yaml or as a skill.

#Add X data to Hermes Agent with one config entry

To read X in Hermes Agent at a fraction of those rates, add Sorsa API, a Twitter (X) API and scraper, as an MCP server. A single sorsa block in ~/.hermes/config.yaml hands the agent 40 tools that only read, all on one key, tweets cost from $0.014 per 1,000, and each plan, the free start included, runs at 20 requests per second. There is no X developer account to apply for, and your own X account stays out of it.

Sorsa API bills the call, not the item: one search call returns about 20 posts, one profile call returns up to 100 profiles, and every post carries its author's full profile at no extra cost. The server comes from npm and Hermes launches it with npx: check that node -v reports version 18 or newer.

  1. Get a key. Sign up for Sorsa API; the key waits on the API keys page of your dashboard. Every new account holds 100 requests at no charge, asks for no card, and keeps them until you use them.

  2. Store it as a secret. hermes config set writes any name in capital letters to ~/.hermes/.env, the file Hermes keeps for keys:

    Terminal
    hermes config set SORSA_API_KEY YOUR_API_KEY
    
  3. Add the server. Paste this under mcp_servers in ~/.hermes/config.yaml (on native Windows, the folder is %LOCALAPPDATA%\hermes). Hermes fills ${SORSA_API_KEY} from .env when it starts the server.

    ~/.hermes/config.yaml
    mcp_servers:
      sorsa:
        command: "npx"
        args: ["-y", "sorsa-mcp"]
        env:
          SORSA_API_KEY: "${SORSA_API_KEY}"
        supports_parallel_tool_calls: true
    
  4. Test it. hermes mcp test sorsa connects and lists the 40 tools. In a session that is already open, type /reload-mcp; a running messaging gateway picks up the new entry by itself within about a minute.

  5. Ask a first question. "How many Sorsa API requests do I have left?" makes Hermes call mcp_sorsa_get_key_usage_info, which reads GET /key-usage-info (opens in a new tab) and costs nothing. A number back proves the chain; a mistyped key answers 401 "invalid api key".

    How the Sorsa API key reaches the MCP server in Hermes Agent SORSA_API_KEY is stored in ~/.hermes/.env. The sorsa entry in ~/.hermes/config.yaml names it in its env block, so Hermes starts sorsa-mcp with the key and 40 tools load. Without the env block, Hermes starts the server without the key and it stops with "Missing SORSA_API_KEY environment variable". 1. The secret ~/.hermes/.env SORSA_API_KEY= YOUR_API_KEY written by hermes config set 2. The server entry ~/.hermes/config.yaml sorsa: command: "npx" env: SORSA_API_KEY: ${...} 3. Hermes starts sorsa-mcp 40 tools load mcp_sorsa_search_tweets and 39 more Without the env block Hermes passes a local server only the variables its entry names. sorsa-mcp starts without a key, prints this and no tools load: Missing SORSA_API_KEY environment variable
    Hermes hands a stdio server only the variables its env block names, so the key needs both files.

    Good to know

    Keep the env block even when the key already sits in .env. Hermes passes a local MCP server only a safe baseline of system variables plus the ones you list under env, as its MCP docs (opens in a new tab) explain. Leave the block out and sorsa-mcp starts without a key: we launched it that way on November 2 and it stopped at once with "Missing SORSA_API_KEY environment variable", so no tools reach the agent.

supports_parallel_tool_calls: true lets Hermes run several Sorsa API calls at the same time, which Hermes' docs advise only for servers whose tools don't write. Every Sorsa API tool reads, and a key handles 20 requests per second, so a batch of lookups runs at once instead of one after another.

#Decide which X tools Hermes sees and what it may spend

Hermes lets each MCP server carry its own limits, and three of them fit X data: which tools load, how far a chat may go, and whether calls need your approval.

  • Tools. tools.include loads only the tools you name. The 40 tool descriptions take about 23K characters, so a research agent that needs search and profiles carries six of them instead.
  • Budget. tool_costs gives each tool a price and spend_limit sets a ceiling per chat. Set the unit to requests, and Hermes counts Sorsa API calls: past the limit it asks before each call in a chat, and in a cron job, where nobody can answer, it refuses the call. Each cron run starts from zero.
  • Trust. Keep the default, trust: full. Under untrusted, Hermes asks before every tool that isn't marked read-only, and sorsa-mcp's tools don't carry that mark yet, so you'd approve every search. The tools only read, so the most a confused run can cost is requests, and the budget caps that.

Pick a job and a budget, and copy the entry:

What will Hermes do with X data?

Request budget per chat and per cron run

~/.hermes/config.yaml
mcp_servers:
  sorsa:
    command: "npx"
    args: ["-y", "sorsa-mcp"]
    env:
      SORSA_API_KEY: "${SORSA_API_KEY}"
    supports_parallel_tool_calls: true
    tools:
      include:
        - search_tweets
        - search_users
        - get_user_info
        - get_user_info_batch
        - get_tweet_comments
        - get_key_usage_info
    tool_costs:
      search_tweets: 1
      search_users: 1
      get_user_info: 1
      get_user_info_batch: 1
      get_tweet_comments: 1
    spend_limit: 50
    cost_unit: requests
Tools Hermes loads
6 of 40: search, profiles, replies and your usage
Budget
50 Sorsa API requests per chat, about 1,000 posts through search; past that Hermes asks first, and a cron run stops
Free
get_key_usage_info has no cost line: checking your usage never uses a request

The entry Hermes needs for the job, with a request budget it enforces per chat and per cron run.

A spend limit counts what Hermes approved in that conversation, not your Sorsa API bill: restarting Hermes resets every total. The account has a ceiling of its own: pay as you go extra requests halt at the period limit you choose in the dashboard, which starts at $100.

#Add the agent skill when Hermes should write code

Reach for Sorsa API's agent skill when you want a program you can run again without Hermes: a monthly export, a mentions archive, a feed into your database. MCP tools hand results to the chat; the skill hands Hermes a written guide to the API, with which endpoint fits which job, how next_cursor pages and why IDs go in batches of 100, plus a small Python client, and the scripts Hermes writes come out built on it.

Terminal
npx skills add Sorsa-io/sorsa-x-api-skill -g -a hermes-agent -y

We ran this line on November 2: it copies the sorsa-x-api skill, with its reference, client script and examples, into ~/.hermes/skills/, where Hermes finds skills. The agent name is hermes-agent; -a hermes stops with "Invalid agents: hermes". Until a request fits the skill, Hermes keeps just its one-paragraph summary in view and opens SKILL.md only when needed, so an unused skill takes almost no context (skills docs (opens in a new tab)).

The skill's scripts read the key from SORSA_API_KEY. Hermes keeps variables with "KEY" in their name away from the Python it runs through execute_code, so let this one through in config.yaml:

~/.hermes/config.yaml
terminal:
  env_passthrough:
    - SORSA_API_KEY

Then ask for a program instead of a reply, for example: "Build a Python script that collects every X post about [your product] from the past month into product_posts.csv". Hermes pages through POST /search-tweets (opens in a new tab) until next_cursor comes back empty, runs the script once, and leaves it in place for the next run.

#Three ready prompts and what one run costs

Every prompt below fixes three things: what to read, how much of it and what to hand back. That keeps the tool calls, and the bill, predictable, and the prompts run unchanged in the terminal, in Hermes Desktop or from a Telegram chat with your gateway.

Brief me on a topic

Prompt
Search X for posts about [your topic] from the last 7 days
with at least 20 likes. Read the top 100, sort them into 3
to 5 themes, and send me a short brief with the 2 best
posts per theme, linked.

To reach 100 posts, Hermes calls mcp_sorsa_search_tweets five times and passes next_cursor along; each page holds about 20. On Sorsa API that brief costs from $0.007. x_search would bill $0.50 for the same posts before tokens, and the official X API $0.50 too.

Read the reaction to one post

Prompt
Read the first 200 replies to [post link], newest first.
Tell me what people praise, what they complain about and
what they ask, with 2 example replies for each.

Hermes calls mcp_sorsa_get_tweet_comments ten times on POST /comments (opens in a new tab), 20 replies a page, each with its author's profile. That run costs from $0.014; the official X API bills the same 200 replies at $1.00, and up to $3.00 once it starts charging for each reply's author.

Vet a list of accounts

Prompt
Here are up to 100 X handles: [paste]. Get all the profiles
in one batch and make a table of followers, following,
posts, join date and bio, sorted by followers. Flag accounts
younger than one year and save it as accounts.csv.

One call to mcp_sorsa_get_user_info_batch covers the whole list: it maps to GET /info-batch (opens in a new tab), which takes up to 100 handles per request, so the job costs from $0.0014. The official X API bills $0.010 a profile, $1.00 for the list, and x_search charges $10 per 1,000 profiles, also $1.00.

What one run of each Hermes Agent prompt costs A topic brief through 100 posts costs $0.50 on the official X API and from $0.007 on Sorsa API. Reading 200 replies to a post costs $1.00 against from $0.014. Vetting 100 accounts costs $1.00 against from $0.0014. Brief me on a topic 100 posts through search $0.50 official X API from $0.007 Sorsa API Read the reaction to a post 200 replies $1.00 official X API from $0.014 Sorsa API Vet a list of accounts 100 profiles in one call $1.00 official X API from $0.0014 Sorsa API
X's rate card bills every post and profile; Sorsa API bills the call.

One pass through all three prompts takes 16 requests, which means the free 100 pay for six full passes. The difference widens with volume: a daily brief, or one on a crowded topic, soon reads posts by the hundred thousand.

Posts Hermes reads through search

Official X API

$500

for 100K posts

$0.005 per post

Sorsa API

from$7

for 100K posts

from $0.07 per 1,000

#Send yourself a daily X digest with Hermes cron

Hermes has its own scheduler, so a daily X digest is one command and needs no server of yours. This job reads the last day of posts about your brand every morning:

Terminal
hermes cron create "every 1d at 08:00" \
  "Search X for posts about [your brand] from the last 24
  hours. Sort them into praise, complaints and questions,
  link the 3 most-liked posts in each, under 15 lines." \
  --name "X brand digest"

From the terminal, Hermes saves each run's result under ~/.hermes/cron/output/. To get it on your phone, ask for the same job in a Telegram chat with your gateway ("every morning at 8, send me...") and the digest comes back to that chat, as the cron docs (opens in a new tab) describe.

At about 100 posts a day, the digest reads 3,000 posts a month: from $0.21 a month on Sorsa API, against $15.00 on the official X API before its author charges, or $15.00 through x_search plus tokens. With spend_limit on the sorsa entry, each run stops at the number of requests you allow, so a busy news day can't run up the bill. The monitoring setup in the widget above fits this job.

Good to know

Posts are data for Hermes to read, and nothing in them should count as a command. Hermes already removes hidden Unicode tag characters from MCP results, yet the visible text of a post can still be written to lead an agent astray. Because every Sorsa API tool only reads, such a post can waste a request at most; give X-reading jobs no messaging or shell tools they don't need.

#Connect Hermes Agent to X today

Hermes Agent's own X routes bill at X's prices: $5.00 per 1,000 posts through x_search or xurl. For reading X in Hermes, use Sorsa API's MCP server: one config.yaml entry, 40 read-only tools, tweets from $0.014 per 1,000, a request budget Hermes enforces, and no developer app; Sorsa API never asks for your X login. The 100 free requests carry the three prompts above six times over, and build with AI has more prompts ready to paste. Setting up another agent too? The Sorsa MCP server page has the line for each client, and the Twitter MCP server guide compares the kinds of X servers.

#FAQ

Does Hermes Agent have a Twitter skill built in?

Yes. Hermes Agent bundles the xurl skill, which drives X's official command-line tool on your own X developer app, and the x_search tool, which asks xAI's Grok to search X. Both bill at X's rates, $5 per 1,000 posts. Sorsa API adds a third route through MCP or its agent skill, with tweets from $0.014 per 1,000 and no developer app.

Do I need an X developer account to give Hermes Agent X data?

Only if you use xurl. That skill talks to the official X API, so it wants a developer app of your own, an OAuth sign-in and credits bought in advance; our guide to the Twitter API without a developer account walks through that process. x_search asks for an xAI key instead, and Sorsa API for a single key from its dashboard, with 100 requests free to start.

Which Twitter API should I use with Hermes Agent?

Use Sorsa API to read X in Hermes Agent. A single sorsa block in config.yaml brings 40 tools that only read, with no developer app and no OAuth; tweets run from $0.014 per 1,000 against $5.00 through x_search or the official X API; any plan takes 20 requests per second. Hermes can cap requests per chat, and Sorsa API never asks for your X login, so your account carries no risk.

Is x_search free with SuperGrok or X Premium+?

The SuperGrok or X Premium+ login runs x_search on your subscription quota, but Hermes' documentation says that path answers in a degraded mode with no citations. Answers that cite actual posts take a paid XAI_API_KEY, which xAI bills per item: $5 for every 1,000 posts and $10 for every 1,000 profiles, with tokens on top. When both are set, Hermes uses the key.

Can Hermes Agent post to X?

Yes, through the bundled xurl skill on the official X API, which posts as your account after you set up a developer app. Sorsa API is read-only: its tools never post, like, follow or send DMs, so a Hermes agent that reads X through Sorsa API can't act in your name. To have Hermes post, run xurl next to it and keep posting behind Hermes' approval prompt.

Does the Sorsa MCP server work in Hermes Desktop and on Telegram?

Yes. Hermes Desktop, the terminal and the messaging gateway read the same config.yaml, so one sorsa entry serves all of them. A running gateway connects a new entry within about a minute; an open chat needs /reload-mcp. Hermes doesn't take keys in a Telegram or other chat, so set SORSA_API_KEY from a terminal first.

#How we checked

On November 2, 2026 we started sorsa-mcp from npm the way Hermes launches a local MCP server: once without SORSA_API_KEY, when it stopped with "Missing SORSA_API_KEY environment variable", and once with a made-up key, when it loaded 40 tools, none marked read-only, and a call came back 401. We installed the agent skill for Hermes with the skills command line into a test home folder. We didn't run Hermes Agent itself: its settings here come from Hermes' MCP, skills, security, cron and x_search docs, read that day, and the prices from xAI's and X's pricing pages and X's October 23 notice. Each Sorsa API endpoint named here matches the live API reference.

By the Sorsa API team. We build and run Sorsa API, the read-only Twitter/X API and scraper, in production since 2022 (formerly TweetScout API) with 6B+ requests served. About Sorsa API

What changed
  • First published.