ChatGPTThreads
Connect ChatGPT to your Threads
About a minute, three moves. Then ChatGPT writes, designs, schedules and publishes your Threads 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
Once: open Settings, then Security and login, and switch Developer mode on.
- 2
Open chatgpt.com/plugins and press + (Create). A New Plugin dialog opens.
- 3NameName
Shapeless - 4Server URLServer URL
https://shapelessai.com/mcp - 5
Authentication: OAuth. Tick "I understand and want to continue", then Create. A Shapeless tab opens: sign in and allow the connection.

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 Threads to Shapeless, once
In Shapeless, open Accounts and connect your Threads account through Threads's own sign-in. Shapeless keeps that connection; ChatGPT never sees a password or token for it.
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.
Post a short Threads take on today's launch, one hashtag at most.Draft five Threads posts from this article, one idea each, and queue one per day.Show me what is proposed for Threads and dismiss anything that sounds like an ad.
Threads allows 500 characters per post and 20 images, 1 video up to 5 min, from Threads's own documentation as read on 2026-07-21. Shapeless enforces that table before a draft is queued. The full table is on the Threads spec page; check a draft yourself with the free Threads 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 Threads developer app or API key?
- No. You connect your Threads account to Shapeless once, under Accounts, through Threads's own sign-in. Shapeless holds that connection; ChatGPT never sees a Threads token, and you never paste a key into ChatGPT either - it signs in to Shapeless with OAuth.
- Will ChatGPT post to Threads 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 Threads media, not just the words?
- Yes - that is the point. We publish text, images and video here; PDF documents we do not deliver to Threads yet. Threads takes one video up to 5 min. 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 Threads allow in a post?
- 500 characters and 20 images, 1 video up to 5 min, per Threads'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 Threads from Claude · Threads MCP server, for developers
For developers and agents: the MCP server, the tools, the CLI
https://shapelessai.com/mcpA 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.
| Tool | What it does | Runs |
|---|---|---|
| me | Who this credential belongs to: email, plan, credit balance. | reads |
| connections_list | Connected social accounts (identity only, no tokens). | reads |
| jobs_create | Start 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_list | List 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_get | One 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_brief | Compact 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_tail | Watch 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_continue | Send another message to a job, optionally with files attached - also the way to resume a stuck or failed run with full history. | drafts |
| jobs_stop | Stop a running job. | asks you first |
| posts_list | The post queue: proposed drafts, scheduled posts, published history. | reads |
| posts_get | One post's live state. | reads |
| posts_approve | PUBLISHES CONTENT: approving moves proposals to the schedule, and they will go out. | asks you first |
| posts_dismiss | Dismiss proposed posts - nothing goes out. | asks you first |
| posts_publish | PUBLISHES CONTENT NOW: pushes a queued post to the platform immediately. | asks you first |
| characters_list | The 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_voice | SPENDS 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_tree | Brand Memory's file list with the completion ring. | reads |
| brain_read | Read one Brand Memory file. | reads |
| brain_write | Write one Brand Memory file (.md paths only) - the agent grounds future posts in it. | asks you first |
| assets_list | The media library: brand uploads and generated media. | reads |
| agents_list | The agent roster (the API calls them strategies). | reads |
| agents_save | Create 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_wake | PUBLISH-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.
