Use iHatePosting from your AI agent
Connect iHatePosting once and your AI agent can see your social accounts, check a post against each network's rules, and draft, schedule or publish it to 14 networks. Pick your agent for the exact setup — every one is different, and the pages below say how.
Coding agents and editors
Announce a release, a changelog or a launch without leaving your editor or terminal.
Autonomous agents
Agents that run on their own and can post on a schedule you set.
How each agent connects
Every one reaches the same iHatePosting server with your API key. What differs is where you add it and where the key is kept.
| Agent | How you add iHatePosting | Where your key goes |
|---|---|---|
| ChatGPT | A developer-mode app in ChatGPT on the web | Inside the app URL |
| Claude | A custom connector, or claude_desktop_config.json in the desktop app | Inside the connector URL, or an environment variable in the config file |
| Claude Code | One claude mcp add command in your terminal | An Authorization header the command writes |
| Cursor | mcp.json, for every project or one | An Authorization header in mcp.json |
| Codex | A block in config.toml | The IHATEPOSTING_API_KEY variable, in ~/.codex/.env |
| VS Code and GitHub Copilot | .vscode/mcp.json in your project | VS Code asks once and stores it encrypted |
| Gemini CLI | A block in ~/.gemini/settings.json | An Authorization header in settings.json |
| OpenClaw | openclaw.json, or openclaw mcp add | An Authorization header in openclaw.json |
| Claude Cowork | The same custom connector as Claude | Inside the connector URL, or a request header where the dialog offers one |
| Perplexity Computer | A custom connector under Account settings | Perplexity's API Key field |
| Grok Build | One grok mcp add command | A header in ~/.grok/config.toml, or an environment variable |
| Antigravity CLI | mcp_config.json, with serverUrl | An Authorization header in the file |
| Muse | Ask Muse to build a connector | Muse's secure credential prompt |
| NanoClaw | ncl commands on the NanoClaw host | The OneCLI vault |
| Paperclip | Connect your own MCP server, under Connectors | Paperclip's App key field |
| Amp | amp.mcpServers in your Amp user settings | An Authorization header in settings.json |
| Cline | One entry in cline_mcp_settings.json | An Authorization header in cline_mcp_settings.json |
| DeepSeek Harness | A dsh-mcp-client block in cordis.patch.yml | An Authorization header in the patch block |
| Freebuff CLI | .agents/mcp.json, for every project or one | An Authorization header in .agents/mcp.json |
| Hermes Agent | A block in ~/.hermes/config.yaml, or hermes mcp add | An Authorization header in config.yaml, or ~/.hermes/.env |
| Kilo Code | The mcp key in kilo.jsonc, global or per project | An Authorization header in kilo.jsonc |
| omp | .omp/mcp.json, or ~/.omp/agent/mcp.json for all projects | An Authorization header in that mcp.json |
| OpenHands CLI | ~/.openhands/mcp.json, or one openhands mcp add | An Authorization header in ~/.openhands/mcp.json |
| Warp | Settings → Agents → MCP servers → + Add | An Authorization header in the server's JSON |
| Devin Desktop | mcp_config.json, for every project or one | An Authorization header in mcp_config.json |
| Zed | A context_servers block in settings.json | An Authorization header in settings.json |
Using a different AI tool?
Anything that speaks MCP over Streamable HTTP can connect. Point it at this address and send your API key as a bearer token:
URL: https://ihateposting.com/mcp
Header: Authorization: Bearer YOUR_API_KEYIf your tool can only take a URL, add ?key=YOUR_API_KEY to the end instead — and treat that URL like a password, because a key inside a link is easier to leak than one in a header. The full walkthrough is in the guide to posting to social media from an AI agent.
What your agent can do
15 tools, each marked with what it does to your account. The ones that post, reschedule, retry or delete are marked as changes, so agents that respect those markings ask you before running them.
- Show the signed-in iHatePosting accountReads only
- Get each platform's posting rulesReads only
- Check a post before sendingReads only
- Create a postChanges your posts
- List recent postsReads only
- List connected social accountsReads only
- List Pinterest boardsReads only
- Get post analyticsAdds, never removes
- Reschedule a postChanges your posts
- List the media libraryReads only
- Upload media to the libraryAdds, never removes
- Get one post's detailsReads only
- Replace a draft or scheduled postChanges your posts
- Retry a failed postChanges your posts
- Delete a post from iHatePostingChanges your posts
Frequently asked questions
Which AI agents can post with iHatePosting?
Any tool that speaks MCP over Streamable HTTP. The pages above give the exact setup for 26 of them; for any other, point it at https://ihateposting.com/mcp and send your API key as a bearer token.
Will my agent publish a post without asking me?
Every post an agent writes is saved as a draft unless you ask for it to go out now or at a set time. The tools that publish, reschedule, retry or delete are marked as changes, so agents that respect those markings ask you before running them.
Does deleting a post in iHatePosting remove it from the network?
No. Deleting removes iHatePosting's record only. A post that is already live on a network stays there until you remove it on that network.
How do I stop an agent using my account?
Create a new key in Settings → Developers. Each account has one key, so the old one stops working at once for every tool that still uses it.
Do I need a paid plan to connect an agent?
No. The API key and the MCP server work on every plan, the 90-day free trial included.
Ready to let your agent do the posting?
Start your 90-day free trial — no credit card, about a minute to your first post.
Sign Up