Example prompt
“Summarise the changes in this branch as a Facebook Page post for customers, not developers. Use the hero image at its public link and hold the schedule for review.”
Codex + Wahlu
Connect Codex to Wahlu once, then plan, draft and schedule posts for Facebook Pages connected to Wahlu from the Codex CLI, IDE extension and app. Every schedule can wait for your approval.
Page post
One image or video with a caption.
Reel
One vertical video.
Story
One image or video. Stories don't take a caption.
Example prompts and the steps to expect. These are illustrations, not recorded conversations.
Example prompt
“Summarise the changes in this branch as a Facebook Page post for customers, not developers. Use the hero image at its public link and hold the schedule for review.”
Example prompt
“Draft a Facebook Reel from the walkthrough video linked in the changes in this branch, then run a readiness check and tell me what needs fixing.”
Example prompt
“Before drafting anything about the changes in this branch, show me what's already on the Facebook calendar this week.”
Codex works through Wahlu's tools, so it can set the Facebook options Wahlu supports.
Wahlu posts to Facebook Pages, not personal profiles or groups, and a Page post carries one image or video rather than an album.
list_targetsFinds the brand's connected Facebook account and checks it's ready.
upload_media, import_media_from_url or list_mediaBrings in the image or video, or picks one from your media library.
create_draftCreates the draft with its caption and facebook_settings, such as the post type.
preflight_draftChecks the draft against Facebook's rules without changing it.
create_schedulePuts it on the calendar at pending_review, held for your approval.
Wahlu checks these before a post is scheduled, so the agent finds out early.
Page photos can be JPEG, BMP, PNG, GIF or TIFF, up to 10 MB.
Graph API: Page photosReels are 9:16 video between 3 and 90 seconds. Wahlu keeps Reel captions to 2,200 characters.
Meta: Reels publishingStory videos are 9:16, at least 540 × 960, between 3 and 60 seconds.
Meta: Page Stories APIMeta documents no caption limit for Page posts through the API; Wahlu uses Facebook's own composer limit of 63,206 characters.
Graph API: Page photosThe agent can read a file in your project and upload it with upload_media. Files over 8 MB, including most video, go to a short-lived upload link the agent sends the file to. Public links and your media library work too.
Set this up once and Codex can work on every network you've connected, not just Facebook.
Run codex mcp add to add Wahlu. It's saved in ~/.codex/config.toml, which the Codex CLI, IDE extension and app share.
Run codex mcp login wahlu and sign in to Wahlu in the browser that opens.
Start a new Codex session so it picks up Wahlu's tools.
Checked against the Codex docs on 27 September 2026. Menus can change; if a step doesn't match what you see, follow the vendor's current instructions.
codex mcp add wahlu --url https://mcp.wahlu.com/mcp
codex mcp login wahluIn the Codex IDE extension or app you can add it from the gear menu instead: MCP servers → Add server, choose Streamable HTTP and paste the URL, then restart. Codex signs in with a Client ID Metadata Document, which is what Wahlu uses.
Every Wahlu plan includes agent access, through MCP and the API. You choose the workspace, brands and permissions each connection gets, and can disconnect it at any time.
Agents create schedules at pending_review unless you've told them to publish. A held schedule can't publish until you approve it in the Wahlu calendar.
Publish to social accounts is separate from Manage your schedule. Leave it unticked and nothing your agent schedules can go out on its own.
preflight_draft reports anything that would stop a post, such as media the network won't accept or a caption that's too long, without changing anything.
Queues, general edits to existing drafts, approvals and connecting social accounts happen in the Wahlu app, not through your agent.
Connect your Facebook account in Wahlu, then give Codex a specific brief.