Hermes Tweet for Twitter Search & X Actions
Add Twitter API search, monitoring, and approved X actions to Hermes Agent.
Explore 102 OpenAPI-generated endpoints, including 33 prepaid reads and 7 direct MPP routes. Reads and actions use separate tools. Actions stay disabled by default. The plugin bundles a Hermes Skill and 2 slash commands.
When to use Hermes Tweet
Use this plugin for X/Twitter search, reads, or monitoring in Hermes. Choose an SDK for application code.
Install
Install and enable the plugin:
hermes plugins install Xquik-dev/hermes-tweet --enable
Hermes scans plugins during install and update. Review any warning before continuing. A dangerous verdict blocks installation or disables an update.
Or install the PyPI package into Hermes:
uv pip install --python ~/.hermes/hermes-agent/venv/bin/python hermes-tweet
hermes plugins enable hermes-tweet
Install a local checkout:
hermes plugins install file:///absolute/path/to/hermes-tweet --force --enable
Configure
Create an API key in Xquik. Then set:
export XQUIK_API_KEY="xq_..."
Optional settings:
export XQUIK_BASE_URL="https://xquik.com"
export HERMES_TWEET_ENABLE_ACTIONS="false"
Restart Hermes after changing environment variables.
Tools
| Tool | Purpose |
|---|---|
tweet_explore |
Search the bundled catalog. Makes no API call. |
tweet_read |
Call catalog-listed read endpoints. |
tweet_action |
Call private or mutating endpoints. Disabled by default. |
Use tweet_explore first. Then pass a listed /api/v1/... path to the matching tool.
Copied Xquik URLs work when their paths match the catalog.
Common Twitter API tasks
Start with tweet_explore. Invoke only the path returned by the catalog.
| Task | Catalog query | Tool |
|---|---|---|
| Search X posts | search tweets by query |
tweet_read |
| Read profile timelines | list recent tweets posted by a user |
tweet_read |
| Export followers | run extraction |
tweet_action |
| Export following accounts | run extraction |
tweet_action |
| Monitor an account | create monitor |
tweet_action |
| Post or reply | create tweet |
tweet_action |
Set include_actions for extraction, monitoring, and writing searches.
tweet_action always follows the approval rules below.
Safety
- Tools never accept credentials as arguments.
- The plugin injects
XQUIK_API_KEYat request time. - Admin, billing, credit, support, guest-wallet, and API-key routes stay hidden.
- Account re-authentication routes stay hidden.
- Binary downloads stay outside the agent catalog. Use REST for those files.
- Private reads and mutations use
tweet_action. tweet_actionrequiresHERMES_TWEET_ENABLE_ACTIONS=true.
Without an API key, Hermes exposes only tweet_explore.
Slash commands
| Command | Purpose |
|---|---|
/xstatus |
Show Xquik account and usage status. |
/xtrends |
Show current X trends. |
Development
Regenerate the catalog from the canonical OpenAPI schema:
python scripts/build_catalog.py ../xquik/openapi.yaml
Run all checks:
uv run --python 3.12 --group dev ruff format --check .
uv run --python 3.12 --group dev ruff check .
uv run --python 3.12 --group dev basedpyright
uv run --python 3.12 --group dev pytest --cov=hermes_tweet --cov=tests --cov-report=term-missing --cov-fail-under=100
uv run --python 3.12 --group dev bandit -c pyproject.toml -r hermes_tweet scripts fuzz
uv run --python 3.12 --group dev pip-audit
uv run --python 3.12 --group dev bash scripts/check_reproducible.sh
uv run --python 3.12 --group dev python -m build
uv run --python 3.12 --group dev twine check dist/*
Links
- Xquik API reference
- Xquik authentication
- Context7 guide
- Integration patterns
- Hermes runtime hosts
- Organization support policy
- Security policy
- Contribution guide
License
Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_tweet-0.1.13.tar.gz.
File metadata
- Download URL: hermes_tweet-0.1.13.tar.gz
- Upload date:
- Size: 131.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4763eeebe0c5c0b756ff2169d495438344b47f1d72130d38f4d2e7e3a5e8f691
|
|
| MD5 |
e1fce30ac417d1443c9c8e1ab52c5ec8
|
|
| BLAKE2b-256 |
ed8c7b93240d51c1febf8ddaafcd4af581eb3f80c1660f17b133f1f6535e4b31
|
Provenance
The following attestation bundles were made for hermes_tweet-0.1.13.tar.gz:
Publisher:
publish.yml on Xquik-dev/hermes-tweet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_tweet-0.1.13.tar.gz -
Subject digest:
4763eeebe0c5c0b756ff2169d495438344b47f1d72130d38f4d2e7e3a5e8f691 - Sigstore transparency entry: 2540404588
- Sigstore integration time:
-
Permalink:
Xquik-dev/hermes-tweet@bf20781f4c4ee15e952efdbc9cb24e0f90b97791 -
Branch / Tag:
refs/tags/v0.1.13 - Owner: https://github.com/Xquik-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bf20781f4c4ee15e952efdbc9cb24e0f90b97791 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file hermes_tweet-0.1.13-py3-none-any.whl.
File metadata
- Download URL: hermes_tweet-0.1.13-py3-none-any.whl
- Upload date:
- Size: 30.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ea5ebabfc4ae39c87fc0abc9d1e93821df5e942ac5ea25cb00fcf27da18ad7b
|
|
| MD5 |
5403f9bdf0b876b669f27656eeeecbdf
|
|
| BLAKE2b-256 |
64856ac62a080cb076c8d45024c3af3ccdd4b0892453855a3536165fab2fb02a
|
Provenance
The following attestation bundles were made for hermes_tweet-0.1.13-py3-none-any.whl:
Publisher:
publish.yml on Xquik-dev/hermes-tweet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_tweet-0.1.13-py3-none-any.whl -
Subject digest:
6ea5ebabfc4ae39c87fc0abc9d1e93821df5e942ac5ea25cb00fcf27da18ad7b - Sigstore transparency entry: 2540404633
- Sigstore integration time:
-
Permalink:
Xquik-dev/hermes-tweet@bf20781f4c4ee15e952efdbc9cb24e0f90b97791 -
Branch / Tag:
refs/tags/v0.1.13 - Owner: https://github.com/Xquik-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bf20781f4c4ee15e952efdbc9cb24e0f90b97791 -
Trigger Event:
workflow_dispatch
-
Statement type: