How to Automate Social Media with Hermes Agent
Install the Postproxy skill in Hermes Agent, add your API key to ~/.hermes/.env, and let Hermes publish to 11 platforms from any chat app or on a schedule.
What Hermes Agent is
Hermes Agent is an open-source, self-hosted AI agent from Nous Research — “the agent that grows with you.” It runs on your own server, keeps persistent memory across sessions, runs scheduled work over cron, and reaches you through the channels you already use — Telegram, Discord, Slack, WhatsApp, Email, Matrix, and more. You extend it with skills: portable SKILL.md documents that teach the agent a capability, compatible with the agentskills.io open standard.
The Postproxy skill gives Hermes the full Postproxy API: publishing, scheduling, drafts, queues, comments, DMs, and stats across Facebook, Instagram, TikTok, LinkedIn, YouTube, X (Twitter), Threads, Pinterest, Bluesky, Telegram, and Google Business.
Quick reference
| Detail | Value |
|---|---|
| Skill name | postproxy |
| Skill source | github.com/postproxy/postproxy-skill |
| Install command | hermes skills install https://raw.githubusercontent.com/postproxy/postproxy-skill/main/SKILL.md |
| Authentication | Bearer token via POSTPROXY_API_KEY |
| API key location | app.postproxy.dev/api_keys |
| Config files | ~/.hermes/config.yaml (settings), ~/.hermes/.env (secrets) |
| Base URL | https://api.postproxy.dev |
Setup
This assumes Hermes is already installed and configured (hermes setup). If not, install it first:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bashhermes setup1. Install the skill
hermes skills install https://raw.githubusercontent.com/postproxy/postproxy-skill/main/SKILL.mdThis adds the skill to Hermes’ skills directory. Because the skill follows the agentskills.io standard, you can also install it from the community registry or with the cross-agent installer npx skills add postproxy/postproxy-skill. The SKILL.md is plain instructions and API reference — nothing executable — so you can read it on the skill repo before installing.
2. Configure the API key
Create an API key at app.postproxy.dev/api_keys, then add it to Hermes’ environment file:
echo 'POSTPROXY_API_KEY=pp_live_your_key_here' >> ~/.hermes/.envHermes also prompts you for any secrets a skill declares the first time it loads, so hermes skills config postproxy will ask for the key if you’d rather set it interactively. Either way it lands in ~/.hermes/.env. All platform authentication (Instagram OAuth, TikTok tokens, LinkedIn pages) lives in your Postproxy account — Hermes only ever holds this one key.
3. Restart Hermes
Environment changes are picked up when the agent restarts:
hermes restart4. Verify
Message your agent on any connected channel:
List my connected Postproxy profiles.
It should reply with the social accounts connected to your Postproxy workspace. If it doesn’t, see Common issues.
Usage
Message Hermes in plain language:
Post “We just shipped scheduled DMs — details in the changelog” to X, LinkedIn, and Threads.
That’s it — Postproxy handles per-platform formatting rules, media processing, rate limits, and retries, and Hermes reports the per-platform results back in chat.
What you can ask for:
| Prompt | What happens |
|---|---|
| ”Schedule this for tomorrow 9am” | Post goes out at 9am, confirmation in chat |
| ”Save it as a draft first” | Draft waits in your dashboard until you say publish |
| ”Add it to the content queue” | Post takes the next free slot in your posting schedule |
| ”Attach this image” | Media you share in chat goes out with the post |
| ”Any new comments on the launch post?” | Comments from every platform, in one reply |
| ”Reply to that review” | Your response lands on the Google Business review |
| ”How did last week’s posts do?” | Post and follower stats summarized in chat |
Platform-specific fields work too — Instagram Reels format, TikTok and YouTube privacy_status, Pinterest boards — the skill knows where each applies.
Schedule posts with cron
Hermes ships scheduling as a first-class feature: cron jobs run in fresh agent sessions and can carry skills with them. Point one at the Postproxy skill and Hermes publishes while you sleep. A realistic setup:
Every weekday at 8am, read my changelog at example.com/changelog, and if there’s a new entry, draft a short post about it and send it to me on Telegram for approval before publishing.
The job runs on its own, drafts the post, and waits for your reply in chat — nothing goes out without a human look.
Get publish results pushed back
Postproxy can send webhooks when a post finishes processing. Point them at Hermes so the agent tells you the outcome instead of you asking — register your gateway URL as a webhook endpoint in the Postproxy dashboard, and have Hermes summarize the payload back to your preferred channel. When a scheduled post publishes (or a platform fails), you get the per-platform result in chat.
Advanced workflows
Blog-to-social. A cron job watches your RSS feed, summarizes new posts, adapts the copy per platform, and publishes through Postproxy.
Content calendar from chat. A realistic multi-step request:
Read this week’s changelog at example.com/changelog, write three short posts about the highlights, and schedule them Monday, Wednesday, and Friday at 10am on X and LinkedIn. Show me the drafts before scheduling.
Hermes fetches the page, drafts the posts, sends them for approval in chat, then makes three scheduled Postproxy calls. Approval stays in the conversation — no dashboard round-trip.
Draft-first for autonomous instances. The skill posts with the full permissions of your API key. Since Hermes runs cron jobs and acts autonomously, prefer “create a draft and send it to me for review” prompts so nothing publishes without a human look — the skill itself asks for confirmation before anything public or irreversible. A wrong post is recoverable too: “delete that last post” works.
Common issues
| Issue | Fix |
|---|---|
| Skill doesn’t trigger | Confirm it installed (hermes skills list); ask explicitly (“use the Postproxy skill to…”) once |
401 Unauthorized | Key missing from ~/.hermes/.env, copied with whitespace, or Hermes wasn’t restarted after the edit |
Profile not found for X | The platform isn’t connected in your Postproxy account, or the agent used an unrecognised network name |
Missing privacy_status (TikTok/YouTube) | These platforms require it — tell the agent “public” or “private” |
Post stuck in processing | Long video uploads take time; ask the agent to check status, or watch the Postproxy dashboard |
| Rate limit errors | Stagger bulk requests — ask Hermes to queue posts instead of firing them at once |
Hermes skill vs MCP server
Postproxy also ships a remote MCP server. The difference: MCP is a protocol-level integration for MCP-capable clients (Claude, Claude Code, IDEs); the Hermes skill is plain instructions over the REST API, so it works with whatever model your Hermes instance runs. If you use both, they hit the same account and the same API.
Running a different agent? The same skill installs into OpenClaw too — the SKILL.md format is portable across both.
Community walkthrough
Here’s a community video walking through Hermes Agent: