Skip to content
BuzzTake
MenuClose

Codex by OpenAI

Codex announces the release it just built

Two lines in config.toml give Codex your social accounts. It can post the release notes from a CI job, read the mentions every morning, and plan launch week for review.

Connects through
Remote MCP, OAuth sign-in
Config
~/.codex/config.toml
Also used by
The IDE extension and ChatGPT desktop
Runs headless
codex exec
Codex, sample run. A terminal runs codex exec. Codex reads the changelog section for version 3.1, calls the BuzzTake post tool for Mastodon and X, and both posts go live at 10 credits each.

What Codex can do in your social accounts

The Codex CLI, the IDE extension and the ChatGPT desktop app read the same ~/.codex/config.toml, so one BuzzTake entry serves all three. ChatGPT on the web does not read it; the ChatGPT page has its own steps.

codex exec runs Codex without a person, which suits a release job: it reads the changelog for the new tag and posts it. The sandbox does not filter MCP connections, so BuzzTake needs no network exception.

Codex decides per tool whether to ask. tools.<tool>.approval_mode sets it, and a tool marked destructive, such as delete_post, always needs your approval.

It works on X, Mastodon, Bluesky, LinkedIn and Reddit, and on every other platform BuzzTake connects. Each action is one tool, named as in the actions reference.

Jobs for Codex

Say it in plain words. These are prompts that work, and the calls they make.

  1. Post the release from CI

    A job after each tag runs codex exec, which reads the changelog section and posts it to X and Mastodon.

    codex exec "Read the CHANGELOG.md section for the newest tag and post a short summary to our X and Mastodon accounts with BuzzTake."

    2 × post20 credits ($0.20)

  2. A morning digest of mentions

    A scheduled task reads notifications and searches for the project name, then writes the digest to a file in the repo.

    Read our X and Bluesky notifications and search X for acme-api. Write the questions and bug reports to notes/mentions.md.

    2 × read_notifications, 1 × search12 credits ($0.12)

  3. Answer a question with the code

    Codex finds the answer in the repo and replies to the post that asked, after you approve the text.

    Reply to https://x.com/dev_demo/status/1 with how to enable retries in acme-api, from the code. Show me the reply first.

    1 × read_post, 1 × reply12 credits ($0.12)

  4. Plan launch week for review

    From the launch doc, Codex plans posts on two platforms as drafts and submits them for review.

    From docs/launch.md, plan three posts each for LinkedIn and X next week as BuzzTake drafts, and submit them for review.

    6 × create_content10 credits for each draft that goes out

  5. Keep the profile links current

    After the docs move, Codex updates the website link in the profiles.

    Our docs moved to docs.acme.example. Update the website on our X and Mastodon profiles.

    2 × update_profile20 credits ($0.20)

Set up Codex

Codex runs on your computer or in CI and reaches BuzzTake over the internet.

  1. Add the server

    Or run codex mcp add buzztake --url https://mcp.buzztake.com/mcp, which starts the sign-in when it sees OAuth. A trusted project can also have its own .codex/config.toml.

    ~/.codex/config.toml
    [mcp_servers.buzztake]
    url = "https://mcp.buzztake.com/mcp"
  2. Sign in

    BuzzTake opens in your browser. Sign in, check the permissions and select Allow. Add --no-browser on a machine without one.

    Terminal
    codex mcp login buzztake
  3. Give actions time

    An action tool waits up to 120 seconds for its result, and Codex stops a tool call after 60 by default.

    ~/.codex/config.toml
    [mcp_servers.buzztake]
    url = "https://mcp.buzztake.com/mcp"
    tool_timeout_sec = 150
  4. Choose what asks

    Make posts and replies ask in interactive sessions. Leave this out for jobs that run with nobody to answer.

    ~/.codex/config.toml
    [mcp_servers.buzztake.tools.post]
    approval_mode = "prompt"
    
    [mcp_servers.buzztake.tools.reply]
    approval_mode = "prompt"
  5. Run it

    Start with a read, which changes nothing.

    Terminal
    codex exec "List my BuzzTake accounts and read the latest X notifications."

Ways to connect Codex

The routes that reach BuzzTake from Codex, and how well each one fits.

Remote MCP, OAuth sign-inBest fit

codex mcp login signs in once and renews the token. Works in the CLI, the IDE extension and the desktop app.

Remote MCP, API keyWorks

For CI, where nobody can sign in through a browser: Codex sends the key from an environment variable as a Bearer token.

~/.codex/config.toml
[mcp_servers.buzztake]
url = "https://mcp.buzztake.com/mcp"
bearer_token_env_var = "BUZZTAKE_API_KEY"
REST APIWorks

Codex can run curl, but the sandbox blocks network calls from its shell unless you allow them. MCP needs no such exception.

POST /v1/accounts/{id}/actions
curl https://api.buzztake.com/v1/accounts/$ACCOUNT_ID/actions \
  -H "Authorization: Bearer $BUZZTAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "post", "text": "Version 2.4 is out.", "wait": 60}'

What it costs

BuzzTake charges in prepaid credits for the actions it runs. One credit is one US cent.

Credits for each job on this page
JobCreditsUSD
Post the release from CI20$0.20
A morning digest of mentions12$0.12
Answer a question with the code12$0.12
Plan launch week for review10 per post$0.10 per post
Keep the profile links current20$0.20

A post, a quote or a message is 10 credits, a reply 8, a like or a follow 3, and a read or a search 4. A planned post costs nothing until it goes out. Reads are charged when they succeed, and a write that fails before the page changes is refunded.

Codex's model use is billed by OpenAI, not by BuzzTake. Every price is on the pricing page, and the rules are in Credits.

Approvals and safety

A person can approve before anything goes out, and every action is recorded.

approval_mode per tool, or default_tools_approval_mode for the server, sets whether Codex asks. A tool marked destructive always asks; in BuzzTake that is delete_post.

In codex exec, a tool call that needs approval is cancelled, because nobody can answer. For unattended jobs, leave the posting tool on its default, or let the job plan drafts that a reviewer approves in BuzzTake.

  • Ask for drafts when a person must check first. create_content puts the post on the calendar, submit_for_review sends it to a reviewer, and it goes out only after the approval.
  • Give the agent an API key without the content_publish permission. It can then plan drafts and send them for review, and it cannot post by itself.
  • BuzzTake records every action: who asked, through which key, on which account, what the page returned and what it cost.
  • A sign-in step that BuzzTake cannot finish, such as a 2FA code, becomes a challenge. The agent asks you for the code, or gives you a link to a live browser where you answer it.
  • Only an owner or an administrator can allow an OAuth client. Disconnect it under Developers in the app, and its token stops working.

More in Approvals and Reports and audit.

Limits

  • Codex stops a tool call after tool_timeout_sec, 60 seconds by default. Set 150 for BuzzTake.
  • Codex cloud tasks are not documented to use MCP servers. Use the CLI, the IDE extension or the desktop app.
  • Scheduled tasks are in the ChatGPT desktop app, under Scheduled. Local ones need the computer on and the app running.
  • An action tool waits up to 120 seconds for its result. A longer action comes back with its id, and get_action follows it to the end.
  • The MCP server runs up to 8 requests at a time for one key or sign-in. Above that it answers 429 with Retry-After, and the client tries again.
  • One organization connects up to 200 accounts.
  • The platforms set their own pace. When one asks an account to slow down, the action ends with rate_limited, and a write that failed before the page changed is refunded.

Troubleshooting

Every error code and its fix is in Errors and challenges.

A post in codex exec was cancelled
The tool is set to ask, and nobody could answer. Remove approval_mode = "prompt" for that job, or plan drafts.
A tool call times out after 60 seconds
Raise tool_timeout_sec to 150 in the server's table.
The client says the server refused the token (401)
The sign-in expired or was revoked, or the API key is wrong. Sign in again from the client, or make a new key under Developers.
An action stops at needs_input
The platform asked for a code. Give the code to the agent so it calls answer_challenge, or open the challenge's sign_in_url and answer in the live browser.
The answer is insufficient_credits
The balance is lower than the price, and nothing was queued. A post needs 10 credits. Top up, then ask again.
The answer is unsupported
The platform has no such action. The error lists the actions it has, and the generic browser action can do the rest step by step.
An account shows signed_out
Its session ended and no stored password could sign it in again. Ask the agent for a sign-in link with get_sign_in_link and open it, or reconnect the account in the app.

Codex questions

Can Codex post to social media?
Yes. With BuzzTake in config.toml, Codex posts, replies and reads your accounts on 12 platforms from the CLI, the IDE extension, the desktop app and codex exec.
Can Codex post from a GitHub Actions job?
Yes. Use an API key from a secret with bearer_token_env_var, and run codex exec with the post tool on its default approval, since nobody can answer a prompt there.
Does ChatGPT on the web use the Codex config?
No. ChatGPT on the web adds BuzzTake as a custom MCP plugin. The desktop app, the CLI and the IDE extension share config.toml.
What does a release post cost?
10 credits per platform, so X and Mastodon are 20 credits. Codex's own use is billed by OpenAI.

All AI agents, the MCP server docs, the quickstart, and the platforms: X Mastodon Bluesky LinkedIn Reddit

Codex is a trademark of OpenAI. Platform names belong to their owners. BuzzTake is not affiliated with or endorsed by OpenAI or any platform.

Give Codex your social accounts.

Add an account with a password, cookies or a sign-in link, then connect the MCP server and ask.