Skip to main content

Native Hermes Agent plugin for X automation through Xquik

Project description

Hermes Tweet

CI PyPI Python Apify Actor License: MIT

Native Hermes Agent plugin for X automation through Xquik.

Hermes Tweet brings X search, account reads, tweet posting, replies, likes, retweets, follows, DMs, monitors, webhooks, draws, extraction jobs, media, and trend reads into Hermes as structured tools.

Use it when you need a Hermes Agent Twitter plugin, Hermes X automation, social media automation for agents, or a native Hermes toolset for X/Twitter.

Highlights

  • Native Hermes plugin with plugin.yaml and pip entry point.
  • 99 agent-callable Xquik endpoints generated from OpenAPI.
  • 32 MPP-tagged read endpoints in the bundled catalog.
  • Read and action tools are split for least-privilege operation.
  • Action endpoints are disabled by default.
  • Bundled Hermes skill for agent-facing usage guidance.
  • Slash commands for account status and trends.
  • Strict CI with formatting, linting, type checking, tests, coverage, security scan, dependency audit, and package build checks.

Install

From a local checkout:

pip install -e .
hermes plugins enable hermes-tweet

For public distribution:

pip install hermes-tweet
hermes plugins enable hermes-tweet

Configure

Create an API key in the Xquik dashboard, then set:

export XQUIK_API_KEY="xq_..."

Optional settings:

export XQUIK_BASE_URL="https://xquik.com"
export HERMES_TWEET_ENABLE_ACTIONS="false"

Action endpoints are disabled unless HERMES_TWEET_ENABLE_ACTIONS=true.

Security Model

Hermes Tweet never accepts credentials through tool arguments. Auth is read from environment variables and injected by the plugin at request time.

The plugin blocks dashboard-only admin, billing, credit top-up, support-ticket, API-key, and account re-authentication endpoints from the catalog. Private reads and write-like endpoints go through tweet_action, which is hidden unless HERMES_TWEET_ENABLE_ACTIONS=true.

Tools

Tool Purpose
tweet_explore Search the bundled Xquik endpoint catalog. No API call.
tweet_read Call catalog-listed read-only endpoints.
tweet_action Call write-like or private endpoints. Disabled by default.

Use tweet_explore first, then call tweet_read or tweet_action with a concrete /api/v1/... path.

Slash Commands

Command Purpose
/xstatus Show Xquik account, subscription, and usage status.
/xtrends Show current X trends.

Development

Generate the bundled catalog from Xquik OpenAPI:

python scripts/build_catalog.py ../xquik/openapi.yaml

Run checks:

uv run --python 3.12 --extra dev ruff format --check .
uv run --python 3.12 --extra dev ruff check .
uv run --python 3.12 --extra dev basedpyright
uv run --python 3.12 --extra dev pytest --cov=hermes_tweet --cov=tests --cov-report=term-missing --cov-fail-under=100
uv run --python 3.12 --extra dev bandit -c pyproject.toml -r hermes_tweet scripts
uv run --python 3.12 --extra dev pip-audit
uv run --python 3.12 --extra dev python -m build
uv run --python 3.12 --extra dev twine check dist/*

For a single local quality gate:

uv run --python 3.12 --extra dev ruff format --check . && \
uv run --python 3.12 --extra dev ruff check . && \
uv run --python 3.12 --extra dev basedpyright && \
uv run --python 3.12 --extra dev pytest --cov=hermes_tweet --cov=tests --cov-report=term-missing --cov-fail-under=100 && \
uv run --python 3.12 --extra dev bandit -c pyproject.toml -r hermes_tweet scripts && \
uv run --python 3.12 --extra dev pip-audit && \
uv run --python 3.12 --extra dev python -m build && \
uv run --python 3.12 --extra dev twine check dist/*

Relationship To TweetClaw

TweetClaw is the OpenClaw-native npm plugin. Hermes Tweet is the Hermes-native Python plugin. Both use the same Xquik API contract.

Public Repo Metadata

Recommended GitHub description:

Native Hermes Agent plugin for X/Twitter automation through Xquik.

Recommended topics:

hermes-agent, hermes-plugin, hermes, twitter, x, x-api, x-automation, xquik, tweet, automation, social-media, social-media-automation, ai-agent, mcp, agent-tools, twitter-api, twitter-automation, x-twitter, apify, python

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hermes_tweet-0.1.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hermes_tweet-0.1.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file hermes_tweet-0.1.0.tar.gz.

File metadata

  • Download URL: hermes_tweet-0.1.0.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hermes_tweet-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f99349135607c2a3f8250d3568802500c88c339eae40544920436e9217daaeb2
MD5 433289f6d99d015c414234981234ce1e
BLAKE2b-256 e2a53992472b29b4470e03df74460c94cdadcc7987f3d78556d1e76792c613e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_tweet-0.1.0.tar.gz:

Publisher: publish.yml on Xquik-dev/hermes-tweet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hermes_tweet-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hermes_tweet-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hermes_tweet-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6be384848fb7ca8709d8f4bd66da15bd987997f920a923076883fb19ad432c48
MD5 f141d7de5b03e8bc1a71cd5d1cf4a43c
BLAKE2b-256 6582d0791a068808c3bdca214e375a2023ad5a3aee74a946c4b19abb6af5e43b

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_tweet-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Xquik-dev/hermes-tweet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page