ShapelessAI← ChatGPT

ChatGPTX

Connect ChatGPT to your X

About a minute, three moves. Then ChatGPT writes, designs, schedules and publishes your X posts, and you approve each one. Works in chatgpt.com and the desktop apps.

Or another network

Add Shapeless to ChatGPT

In ChatGPT, add Shapeless with the URL below. A Shapeless tab opens: sign in (or create an account) and allow. That is the whole install; nothing to download, no API key.

  1. 1

    Once: open Settings, then Security and login, and switch Developer mode on.

  2. 2

    Open chatgpt.com/plugins and press + (Create). A New Plugin dialog opens.

  3. 3
    Name
    NameShapeless
  4. 4
    Server URL
    Server URLhttps://shapelessai.com/mcp
  5. 5

    Authentication: OAuth. Tick "I understand and want to continue", then Create. A Shapeless tab opens: sign in and allow the connection.

ChatGPT's New Plugin dialog with the name Shapeless, the server URL https://shapelessai.com/mcp and OAuth authentication

Steps read from Building MCP servers for ChatGPT and API integrations and Authentication for plugins on . Vendors move menus; if a step no longer matches, the source is the place to check and hello@shapelessai.com is where to tell us.

Connect X to Shapeless, once

In Shapeless, open Accounts and connect your X account through X's own sign-in. Shapeless keeps that connection; ChatGPT never sees a password or token for it.

Open Accounts in Shapeless →

Ask ChatGPT in plain words

In a new chat, type @Shapeless or pick Shapeless from the + menu. Then ask in plain words. Every draft lands in your Shapeless queue for approval unless you say otherwise, and you are asked before anything goes out.

  • Draft a thread on X about why we rebuilt onboarding, six posts, with the demo GIF on the first.
  • Post this to X now: [paste]. Keep it under 280 characters and add the screenshot.
  • Queue three X posts for the launch tomorrow: 8am, noon, 5pm.

X allows 280 characters per post and 4 images, 1 video up to 2 min 20 s, from X's own documentation as read on 2026-07-21. Shapeless enforces that table before a draft is queued. The full table is on the X spec page; check a draft yourself with the free X character counter.

Questions

Which ChatGPT plans can add Shapeless?
Plus, Pro, Business, Enterprise and Edu. Developer mode is what lets a personal account add its own plugin; a workspace admin can switch it off.
Do I need a X developer app or API key?
No. You connect your X account to Shapeless once, under Accounts, through X's own sign-in. Shapeless holds that connection; ChatGPT never sees a X token, and you never paste a key into ChatGPT either - it signs in to Shapeless with OAuth.
Will ChatGPT post to X without asking me?
Not unless you set a standing agent to auto-publish. A job proposes drafts and waits for your approval in Shapeless or in the chat; the tools that approve, publish or spend are flagged, so ChatGPT asks you before running one.
Can it make the X media, not just the words?
Yes - that is the point. We publish text, images and video here; PDF documents we do not deliver to X yet. X takes one video up to 2 min 20 s. You brief it in the chat; Shapeless designs the images or renders the narrated video with your actor and captions, and hands the draft back for approval.
What does X allow in a post?
280 characters and 4 images, 1 video up to 2 min 20 s, per X's own documentation as we last read it on 2026-07-21. Shapeless enforces the same table its publishing engine does, so a draft that breaks a limit is fixed before it is queued.
How do I disconnect it?
Settings → API keys → Connected apps in Shapeless lists ChatGPT with a Disconnect button; revoking there ends its access at once. ChatGPT also lets you remove the connector on its side.

Also

Post to X from Claude · X MCP server, for developers

For developers and agents: the MCP server, the tools, the CLI
Remote MCP server URL
https://shapelessai.com/mcp

A remote MCP server over streamable HTTP. Sign-in is OAuth 2.1 with dynamic client registration and PKCE, so any host - ChatGPT or your own agent - registers itself and opens a Shapeless tab to sign in and allow; the resource metadata is at /.well-known/oauth-protected-resource. Read tools run freely; anything that publishes, spends or overwrites is flagged destructive so the host asks first. The token is revocable under Settings → API keys → Connected apps.

ToolWhat it doesRuns
meWho this credential belongs to: email, plan, credit balance.reads
connections_listConnected social accounts (identity only, no tokens).reads
jobs_createStart a durable job from a goal, optionally with files attached. The run keeps going server-side; returns the job id and its web url to poll or continue.drafts
jobs_listList jobs with liveness and the web url of each, 200 per page, newest first. A non-null nextCursor means older jobs exist: pass it back as before.reads
jobs_getOne job in full: transcript, running/idle status, outputs (posts with queue state, media) and its web url. Use jobs_brief when you only need enough to reply.reads
jobs_briefCompact context for continuing a conversation: the last messages clipped, an artifact inventory, post statuses, and the web url. Use jobs_get for the full transcript, jobs_continue to reply.reads
jobs_tailWatch a job's run: replays its events from the cursor, then follows live until the run ends, 60 seconds pass, or 200 events. Returns {live, cursor, events} - resume with that cursor. {live: false} means no run stream to attach to; the job may still have finished work, so read jobs_get.reads
jobs_continueSend another message to a job, optionally with files attached - also the way to resume a stuck or failed run with full history.drafts
jobs_stopStop a running job.asks you first
posts_listThe post queue: proposed drafts, scheduled posts, published history.reads
posts_getOne post's live state.reads
posts_approvePUBLISHES CONTENT: approving moves proposals to the schedule, and they will go out.asks you first
posts_dismissDismiss proposed posts - nothing goes out.asks you first
posts_publishPUBLISHES CONTENT NOW: pushes a queued post to the platform immediately.asks you first
characters_listThe account's actors: who they are, what their voice is, and which parts are locked. voiceDescription is the casting direction a designed voice was written from - read it before designing another one, and reuse the actor that already fits.reads
characters_voiceSPENDS CREDIT: gives an actor a voice. description designs one from casting direction (kept on the character, so later runs can reuse the actor); sampleMediaKey clones a real voice and requires consent: true - the user's own attestation that they hold the rights. Returns the voice id, a preview clip and what it cost.asks you first
brain_treeBrand Memory's file list with the completion ring.reads
brain_readRead one Brand Memory file.reads
brain_writeWrite one Brand Memory file (.md paths only) - the agent grounds future posts in it.asks you first
assets_listThe media library: brand uploads and generated media.reads
agents_listThe agent roster (the API calls them strategies).reads
agents_saveCreate an agent (no id) or edit one (with id). Setting autoPublishPosts arms publishing without human approval and needs the publish scope; everything else needs write.asks you first
agents_wakePUBLISH-SCOPED: wake an agent now; it plans and proposes (or with auto-publish, posts) immediately. Returns the conversation it woke into and its web url.asks you first

The same account is driveable from a terminal or a script with a scoped API key: npx shapelessai --help, or the REST API documented in the public agent repo. Keys are minted under Settings → API keys.