Connect Codex to social media
Add four lines to config.toml and Codex can turn the pull request it just finished into launch posts, scheduled across all top platforms from your terminal. Everything it books appears in your PostEverywhere calendar for the rest of the team.
$0 due today, cancel anytime
Used by 2,831 happy customers
Look at the PR we just merged, write a short launch post for X (Twitter) and a fuller one for LinkedIn, and schedule them for Wednesday at 11am UK time.
Used PostEverywhere
list_accountsX and LinkedIn foundget_platform_rulesLimits loadedcreate_post×2Scheduledget_postStatus: Scheduled
Done: both posts are scheduled for Wednesday 11:00 BST (10:00 UTC). I kept the API example out of the X version to stay under the limit.
Mon
8:30 AM
Tue
5:00 PM
Wed
11:00 AM
Setup in config.toml
Add the PostEverywhere MCP server to Codex CLI
Codex keeps its MCP servers in a TOML file, not JSON, which is where most setup mistakes come from. The block below starts the open-source PostEverywhere server through npx with your API key. Codex reads it when a session starts.
- 1
Create an API key.
In PostEverywhere, open Developers in the sidebar and create a key starting with pe_live_. Copy it straight away, because it is only shown once. Make sure the profiles you want to post to are linked under Accounts.
- 2
Open your Codex config.
Open ~/.codex/config.toml in any editor. Create the file if it does not exist yet; Codex reads it from your home folder.
- 3
Add the PostEverywhere block.
Paste this at the end of the file and put in your key. The header needs an underscore, mcp_servers, and the env line is a TOML inline table with braces and an equals sign.
[mcp_servers.posteverywhere] command = "npx" args = ["-y", "@posteverywhere/mcp"] env = { POSTEVERYWHERE_API_KEY = "pe_live_YOUR_KEY" } - 4
Start Codex and test.
Start a new Codex session and type /mcp to see PostEverywhere in the list of servers. Then ask “Show me my connected social accounts on PostEverywhere.” Codex calls list_accounts and prints your profiles.
What you need to connect Codex to social media
Codex CLI installed and signed in, Node.js 18 or newer so npx can start the server, and a PostEverywhere account with an API key from the Developers page. MCP and API access are included on every PostEverywhere plan.
What you can ask
Codex prompts to schedule social media posts from the CLI
Codex works best on jobs that start from code: a pull request, a tagged release, a docs change. These requests use real PostEverywhere tools, and they can sit in the same session as the engineering work that prompted them.
“Read the release notes for v3.1 and save a LinkedIn post and an X (Twitter) post as drafts for the team to review.”
Drafts appear in the calendar; nothing is scheduled yet.
“Split docs/migration.md into a short series of posts and schedule them across Tuesday and Wednesday mornings.”
Splits the doc into separate posts and books each one.
“Post a short note to our Discord channel and Telegram channel that the maintenance window starts at 6pm UTC.”
One request, two community channels.
“Create a campaign called “v3.1 launch” and attach this week’s release posts to it.”
Campaigns are assigned through the API and MCP only.
“List posts that failed in the last seven days and retry the ones that failed on token errors after I reconnect the account.”
Reads results, then retries in bulk.
“Register a webhook for post failures pointing at our alerts endpoint, and send a test.”
Creates the webhook and fires a test delivery.
Skills for Codex
Add the PostEverywhere skills to Codex with npx
One npx command adds the PostEverywhere skills to Codex. With them, Codex follows the playbook a social media manager would: look at the queue for gaps, write in your voice, retry what failed, then tell you exactly what it scheduled and when.
Install for Any agent
For any other agent that reads skills, add them with one npx command.
npx skills add posteverywhere/claude-pluginRepurpose content
Turn a blog post, transcript or newsletter into a set of posts.
Launch announcement
Teaser, launch-day, reminder and last-call posts for a launch, event or sale.
Write an X thread or Article
Write an X thread or long-form X Article and post it.
Write a blog post
Write a WordPress post and publish or save it as a draft.
Schedule social posts
Write, schedule or publish a post to any connected account.
Fix failed posts
Find posts that didn't go out, explain why, and fix them.
Prompts to try in Codex
See all skills and prompts“Read the pull requests merged this week and write a what-shipped post for LinkedIn and X, then schedule both in PostEverywhere for Friday at 3pm.”
Skill: Repurpose content“Turn the v3 migration guide into a WordPress post with PostEverywhere and save it as a draft in the Engineering category.”
Skill: Write a blog post“Look at my PostEverywhere queue for the next two weeks and fill any empty weekday with a tip from our docs folder.”
Skill: Plan a content calendar
Pull request to post
Turn a pull request into a launch post with Codex
The best time to write a launch post is while the change is still in front of you. Ask Codex to read the diff and the PR description, write posts for each network and schedule them, then hand off: the posts sit in the PostEverywhere calendar where anyone can edit the wording or the time before they go out. Codex never needs to be running when they publish.
- Grounded in the diff.
- Codex reads the changes and the PR text you point it at, so the post says what actually changed.
- Campaigns for launches.
- Group a launch’s posts into a campaign through MCP, which the composer cannot do.
- Hand off to the team.
- Drafts and scheduled posts are editable in the app by people who never open a terminal.
Mon
9
8:30 AM
Release week: v3.1 preview
Tue
10
5:00 PM
Maintenance window tonight
Wed
11
11:00 AM
v3.1: faster exports
Post from Codex to every top platform from your repo
Developer communities often live on Discord and Telegram as much as on LinkedIn or X (Twitter). Codex reaches every profile you connect to PostEverywhere through one server, and each post goes out through that network’s official API.
Instagram
Instagram Graph API
Facebook
Meta Graph API
X
X API v2
LinkedIn
LinkedIn Marketing API
TikTok
Content Posting API
Threads
Meta Threads API
Bluesky
AT Protocol
Telegram
Telegram Bot API
Discord
Discord webhooks
YouTube
YouTube Data API v3
Pinterest
Pinterest API
WordPress
WordPress REST API
Codex limits and troubleshooting in config.toml
By platform
- Instagram64 sent
- LinkedIn48 sent
- X40 sent
- Facebook31 sent
- TikTok1 of 22 failed
- YouTube12 sent
Why posts failed
Grouped by cause, most common first
This video is outside the length TikTok allows for this account.
Example data
Codex starts but has no PostEverywhere tools. Check the table header reads exactly [mcp_servers.posteverywhere] with an underscore. A misspelt header starts cleanly and loads nothing, with no error.
The env line will not parse. TOML inline tables use braces and an equals sign: env = { POSTEVERYWHERE_API_KEY = "pe_live_..." }. JSON-style colons, or quotes around the key name in the wrong place, break the whole file.
The server times out on first run. The first npx run downloads the package, which can be slow on some networks. Run npx -y @posteverywhere/mcp once in a shell to warm the cache, or raise startup_timeout_sec in the server’s block.
Unauthorized errors. The key is mistyped, revoked or has a stray space. Copy a fresh one from the Developers page and restart the session.
Media must come from a URL. The server imports images and MP4 video from a public link with upload_media_from_url. It cannot read a file from your disk, so publish the asset somewhere reachable first.
Big batches and rate limits. Each key is allowed 60 requests a minute and 1,000 an hour. Use bulk_create_posts for batches of up to 50 posts per call, and read the rate limits reference for how bulk calls are counted.
The config, explained
Codex config.toml for the PostEverywhere MCP server
POST /api/v1/posts
{ "content": "Launch week is here",
"account_ids": [101, 102, 103, 104, 105],
"scheduled_for": "2026-10-06T09:00:00Z" }- northwind.coffeedoneviews 1,204 · likes 87
- Northwind Coffeedoneimpressions 612
- northwindverifyingattempts 1
- northwindcoffeeuploadingattempts 1
- Northwind Coffeeretry_schedulednext_retry_at 09:05
One request, one result per accountExample data
Because the key sits in a plain file in your home folder, treat config.toml like a .env file. Keep it out of dotfile repos, and if you sync your Codex settings between machines, use a separate key per machine so you can revoke one without breaking the rest.
Prefer the hosted server? Codex can also talk to a remote MCP server. Replace command, args and env with url = "https://mcp.posteverywhere.ai" and bearer_token_env_var = "POSTEVERYWHERE_API_KEY", then export that variable in your shell. Nothing runs locally and Node.js is not needed. The Codex IDE extension reads the same config.toml, so one block covers both.
For release posts that never need judgement, such as “every tagged release goes to the same three accounts”, a CI step calling the social media API or the CLI is more predictable than an agent. Codex earns its place on the posts that need reading and writing, while the pipeline handles the repeatable parts.
$0 due today, cancel anytime
Connect another AI agent
One PostEverywhere key and calendar work across every other assistant and editor.
Pricing
Simple pricing, unlimited posts on every plan
Every plan posts to all top platforms and includes the API and hosted MCP server for your AI agent.
7-day free trial on every plan. Card required, $0 due today, cancel anytime. Compare every plan
FAQ
Codex social media FAQ
Straight answers about plans, platforms and how scheduling works.
How do I add an MCP server to Codex?
Add a table named [mcp_servers.<name>] to ~/.codex/config.toml with the command, args and env for the server, then start a new Codex session. For PostEverywhere, the four-line block on this page is all you need.
Is there a PostEverywhere plugin for Codex?
PostEverywhere connects to Codex as an MCP server, configured in config.toml. That is the supported route today; there is no separate package to install beyond the npx command in the config.
Does Codex need an API key for PostEverywhere?
Yes. Create one on the Developers page and put it in the env line, or in an environment variable if you use the hosted address. Revoking the key immediately stops Codex from posting.
Can Codex schedule posts for later?
Yes. Tell it the day, time and time zone and it schedules the post; the API stores times in UTC and Codex does the conversion. It can also save drafts for someone else to schedule.
Does this work in the Codex IDE extension as well as Codex CLI?
The CLI and the IDE extension read the same config.toml, so the block you add for one is picked up by the other. Restart the session after editing the file.
How many tools does Codex get?
All 38 on the full server: posts and scheduling, bulk creation, accounts and account health, media import, campaigns, webhooks, the posting queue, platform rules, and caption and image generation.
Is there a free trial?
Every plan starts with a 7-day free trial. It needs a card on file, $0 is due today, and cancelling during the week means you are never charged. There is no free plan; every plan includes the API key Codex uses.
Still have questions?
Contact us or browse the full FAQ.
$0 due today, cancel anytime
Merge the PR, schedule the launch
Create a key, add four lines to config.toml, and let Codex write the announcement.
$0 due today, cancel anytime
More for developers
Explore related features and guides to get the most out of PostEverywhere.
AI agents
Every assistant PostEverywhere works with, and the full tool list.
Developers
API keys, the Node SDK and the REST reference.
CLI
Post from the shell or CI without an agent.
MCP setup reference
Hosted and local configs, environment variables and fixes.
Webhooks
Get told when posts publish or fail.
Build a social media agent
The API-first version of this workflow.

“This tool has truly made my content posting so much easier, I can't work without it. I can schedule my posts days in advance while working on other projects. Set it and forget it.”