NanoClaw runs AI agents in containers on your own machine — Claude Code by default — and you talk to them from WhatsApp, Telegram, Slack and other chat apps. Add iHatePosting to an agent group and you can ask for a post from your phone and have it scheduled.
How do I connect iHatePosting to NanoClaw?
It takes about a minute. Nothing here needs a download, and the only thing you carry between the two apps is a key you can revoke whenever you like.
- 1Step 1
Create an iHatePosting API key
Sign in, open Settings → Developers and create a key. It starts with pk_live_, and the same page can show it again whenever you need it.
- 2Step 2
Add iHatePosting to NanoClaw
Run this in a terminal on the NanoClaw host, not in a chat. It needs NanoClaw 2.2.0 or later, on macOS, Linux or WSL2. Run ncl groups list first, and put the id it prints on the GROUP_ID line before you run the rest. Replace YOUR_API_KEY with your key.
NanoClaw — connector# 1. Find your agent group, and put its id on the next line ncl groups list GROUP_ID=your-group-id # 2. Add the hosted server to that group ncl groups config add-mcp-server --id "$GROUP_ID" --name ihateposting --url https://ihateposting.com/mcp?client=nanoclaw # 3. Keep the key in the OneCLI vault, which adds the header on the way out onecli secrets create --name iHatePosting --type generic --value YOUR_API_KEY --host-pattern ihateposting.com --header-name Authorization --value-format 'Bearer {value}' # Newer OneCLI only (if it has 'agents grants'): every agent is selective there, so attach # the secret — ids from: onecli agents list, onecli secrets list # onecli agents grants attach-secret --id AGENT_ID --secret-id SECRET_ID # 4. Restart the group so it loads the server ncl groups restart --id "$GROUP_ID" - 3Step 3
Ask it to post
Tell NanoClaw what you want to say and where. It saves a draft in iHatePosting unless you ask for the post to go out now or at a set time.
What is different about NanoClaw
Every client reaches the same server, and then behaves like itself. These are the things that are true here and not somewhere else.
MCP servers belong to an agent group, so run ncl groups list first and use that group's id. Run the commands in a terminal on the NanoClaw host: there they run at once, with no admin approval, and the group loads the server when it restarts.
The key goes in the OneCLI vault, not in NanoClaw's config. The vault adds the Authorization header to requests bound for ihateposting.com, so the key never sits in the group's container.json, where the agent itself could read it.
Passing --value leaves the key in your shell history. OneCLI's --file option, or its dashboard, avoids that.
Restart the group, then ask the agent to call whoami. If the tools answer No API key, the vault is not adding the header for this agent. Find the agent whose identifier is your group id with onecli agents list, and the new secret's id with onecli secrets list. If your onecli has the agents grants command (newer OneCLI, where every agent is selective), run onecli agents grants attach-secret --id AGENT_ID --secret-id SECRET_ID. On the older OneCLI that NanoClaw pins, only an agent whose secretMode is selective needs a grant: there onecli agents set-secrets replaces the whole list, so pass the ids that onecli agents secrets --id AGENT_ID prints plus the new one, and never run it on an agent in all mode.
If the vault still will not authenticate, put the header on the server itself: run ncl groups config add-mcp-server --id "$GROUP_ID" --name ihateposting --url https://ihateposting.com/mcp --headers '{"Authorization":"Bearer YOUR_API_KEY"}', which replaces the entry of the same name, then restart the group. That works, but stores the key in container.json, where the agent can read it.
Asking the agent to add the server from a chat needs an admin's approval, and the add_mcp_server tool it uses takes only a URL — so the key still has to come from the vault. Never paste the key into a chat.
Limits. NanoClaw is free, open source (MIT) and self-hosted, on macOS or Linux — Windows only through WSL2 — with Docker. Streamable HTTP servers need NanoClaw 2.2.0 or later, so update older builds first. The server address must use HTTPS.
NanoCo's own documentation: NanoClaw documentation
Nothing goes out unless you say so
Every post NanoClaw writes is saved as a draft in iHatePosting unless you ask for it to be published now or at a set time. Publishing, rescheduling, retrying and deleting are marked as actions that change things, so clients that honour those markings ask you before they run them. Deleting a post in iHatePosting never removes one that is already live on a network.
What is the iHatePosting MCP?
MCP — the Model Context Protocol — is the standard way an assistant plugs into an app it does not own. Our server exposes the accounts you have connected to NanoClaw as tools, so it can draft, check and schedule without you opening a dashboard.
How NanoClaw uses it
- You add the connector once — by signing in, or with a key you create
- NanoClaw reads which accounts you have connected, and each network's rules
- It writes a version per network and checks it against those rules before sending
- It saves a draft, schedules it, or publishes — exactly as your message said
- It works alongside whatever other tools NanoClaw already has
# read and check (9)
whoami list_accounts
list_posts get_post
get_analytics get_platform_rules
list_media list_pinterest_boards
validate_post
# write (7)
create_post update_post
reschedule_post delete_post
retry_post upload_media
open_upload_widgetCost, access and what to do when it breaks
What does it cost?
The connector costs nothing on top of iHatePosting. iHatePosting has one plan: $15/month billed annually, or $19/month billed monthly, with unlimited social accounts. It is free for 90 days, no credit card needed, and everything is included during the trial: unlimited accounts, unlimited posts, every feature.
How is access secured?
Either you sign in to iHatePosting and approve access, or you create an API key in Settings → Developers. That page can show your key again whenever you need it. Whichever route you take, it reaches only the accounts you have already connected, and you can revoke it at any time without touching the accounts themselves.
Something not working?
- It cannot see any accounts: connect them in iHatePosting first, then ask it to list them again.
- You regenerated your key and it still fails: Regenerate revokes the old key the moment you press it, and a client that is already running keeps sending the old one until you genuinely restart it.
- A post failed: open it in iHatePosting — the failure names the network and repeats what that network actually said.
Frequently asked questions
Where does the key go in NanoClaw?
In the OneCLI vault, not in NanoClaw's config. The vault adds the Authorization header to requests bound for ihateposting.com, so the key never sits in the group's container.json, where the agent itself could read it.
Why do the tools answer No API key?
The vault is not adding the header for this agent. Find the agent whose identifier is your group id with onecli agents list, and attach the new secret to it, as the steps on this page describe for your OneCLI version.
Can I ask the agent to add iHatePosting from a chat?
Only with an admin's approval, and the add_mcp_server tool it uses takes only a URL, so the key still has to come from the vault. Never paste the key into a chat.
Is the NanoClaw connector free?
Yes. The connector costs nothing on top of iHatePosting, and iHatePosting is free for 90 days, no credit card needed. After that it is $15/month billed annually, or $19 month-to-month, with unlimited accounts.
Which networks can NanoClaw post to?
Any account you have connected in iHatePosting, across 15 networks: Instagram, Facebook, LinkedIn, X, Threads, TikTok, YouTube, Pinterest, Bluesky, Mastodon, Telegram, Discord, Slack, Tumblr and Google Business Profile.
Can NanoClaw schedule posts for a specific date and time?
Yes. Put the date and time in the prompt — for example "schedule this for Friday at 9:00 AM" — and NanoClaw schedules the post for then. iHatePosting reads the time in your account's timezone, and you can ask NanoClaw to move a scheduled post to a new time.
One connection reaches every network
Connect your accounts in iHatePosting once. From then on NanoClaw can post to any of them, and we publish at the time you set — even after you close the chat.
- Bluesky
- X
- Threads
- TikTok
- YouTube
- Mastodon
- Telegram
- Discord
- Tumblr
- Google Business
- Slack
Ready to post everywhere from NanoClaw?
Start your 90-day free trial — no credit card, about a minute to your first post.
Sign UpOther AI agents
New to this? Read how to post to social media from an AI agent, or see iHatePosting pricing: unlimited accounts for $15/month, billed annually.