Shapeless

com.shapelessaiv0.3.0更新于 Sep 29, 2026

AI social media team for founders: make and publish posts, carousels and short video to 9 networks.

概览

AI 生成的概览

让助手起草、排期并发布社交媒体帖子、轮播图和短视频到已连接的平台,并运行持久化内容任务。

功能
Shapeless 提供 posts_create、posts_approve、posts_publish、jobs_create、jobs_continue、brain_write、assets_upload 等工具。助手可以撰写并排期发布到已连接账号的帖子、管理待审帖子队列、启动或恢复长时间运行的任务,并读取或编辑账号的品牌记忆。它还能管理按计划持续工作的常驻代理。
适用场景
当助手需要运营或协助社交媒体账号时使用:规划并发布内容、推动内容队列,或在多个平台上运行周期性的内容任务。适合希望由代理完成起草和排期、而非手动发帖的创始人和小团队。
运行要求
远程 MCP 端点 MCP 的客户端,通过 OAuth 登录,无需密钥。本地 stdio 方式通过 npx shapelessai mcp 运行,需要 Node 20 或更高版本,以及来自 shapeless login 或 SHAPELESS_API_KEY 环境变量的 API 密钥。密钥带有 read、write 或 publish 权限范围。
安装前请注意
发布、消费和覆盖类操作被标记为破坏性,客户端应先向用户确认。只有 publish 权限范围才能对外发布内容,应只授予所需的最小范围。免费方案按 UTC 每日限制发帖数量并返回 free_daily_cap 错误,付费方案和代理工作会消耗额度。API 密钥属于机密,一旦泄露应在工作室中撤销。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Shapeless,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "shapeless": {
      "type": "http",
      "url": "https://shapelessai.com/mcp"
    }
  }
}

README

Shapeless

Shapeless runs your social presence: it drafts, schedules, and publishes content across your connected platforms, holds your Brand Memory, and keeps standing agents working while you sleep.

This repo is the public home of the agent surface: the shapeless CLI, the MCP server, the Claude Code plugin, and the issue tracker. Your agent or script drives a Shapeless account: write and schedule posts, create jobs and resume stuck ones, approve and publish, edit Brand Memory, manage the standing agents.

The documentation lives at shapelessai.com/docs - routes, scopes, platform limits, refusal codes, one page per subject. Every page also answers raw Markdown: append .md to its path (https://shapelessai.com/docs/posts.md) or send Accept: text/markdown. An agent that wants all of it in one fetch should read shapelessai.com/llms-full.txt.

Install

bash
npx shapelessai --help      # one-offnpm i -g shapelessai        # keeps `shapeless` on your PATH

Node 20 or newer.

Authenticate

Mint a key in the studio: Settings -> API keys (/studio/api-keys). Give it only the scopes the caller needs - read, write, or publish. Only publish can put content out.

bash
shapeless login             # paste the key; we verify it and store it 0600export SHAPELESS_API_KEY=slk_...   # or: env var, beats the stored key

Config lives in ~/.config/shapeless/config.json. SHAPELESS_BASE_URL overrides the API host (default https://shapelessai.com). shapeless logout forgets the local copy; revoke the key itself in the studio.

Every command takes --json to print the raw API response, and --help.

Post

Write it yourself and put it on the rail - now, at a time, or in the account's next free queue slot. Needs the publish scope.

bash
shapeless connections                     # the accounts and their idsshapeless platforms                       # limits, media rules, settings schema (no key needed)
shapeless posts create --to <connectionId> --text "Shipping day."                       # nowshapeless posts create --to <connectionId> --text "..." --at 2026-09-21T09:00:00+03:00  # at a timeshapeless posts create --to <connectionId> --text "..." --queue                         # next free slotshapeless posts create --to <connectionId> --text "..." --media k1,k2 \  --first-comment "Link: https://..."      # LinkedIn, X, Blueskyshapeless posts create --to <youtubeConnectionId> --text "..." --media <clip.mp4 key> \  --title "The video title" --settings '{"privacyStatus":"unlisted"}'

The MCP tool is posts_create with the same arguments: connectionId, text, mediaKeys, title, scheduledAt or queue: true, settings, firstComment. Read platforms_list first for the platform's limits and its settingsSchema.

Free plan: ten posts a day on the rail, counted on the UTC day each post goes out on, so a week planned ahead is ten a day rather than ten in total. The eleventh answers 402 {code: "free_daily_cap", limit, day, resetsAt}, which names the day that is full. Composing, scheduling and publishing never spend credits, and Free also carries $5 of credits a month for the agent team. Paid plans have no cap. Details: shapelessai.com/docs/posts.

Jobs: durable runs

A job is a run the server keeps going whether or not you stay connected - the right shape for agents and cron.

bash
# Fire and forgetshapeless jobs create draft three posts about our beta launch
# Watch it live (tails the event stream, falls back to polling)shapeless jobs create plan this week --label "Weekly plan" --budget 2.50 --watch
# Come back latershapeless jobs list               # 200 newest; prints a cursor if older jobs existshapeless jobs list --before <cursor>   # the next page backshapeless jobs show <id>          # transcript summary + outputsshapeless jobs tail <id>          # re-attach to the live stream
# Put files on the message - the agent sees the image, not just its nameshapeless jobs create does this thumbnail work? --attach ./thumb.png --attach ./notes.mdshapeless jobs continue <id> and this one --media-key workspace-assets/<account>/logo.png
# Resume a stuck or failed run - history is rebuilt server-sideshapeless jobs continue <id> keep going, but make the second post shorter --watch
shapeless jobs stop <id>

Posts: the queue

bash
shapeless posts list --status proposedshapeless posts show <id>shapeless posts approve <id> <id> <id>    # proposed -> scheduled  [publish]shapeless posts dismiss <id>shapeless posts publish <id>              # out, now  [publish]shapeless posts mark-posted <id> --url https://...

Agents, Brand Memory, assets

bash
shapeless agents listshapeless agents create --name "Daily reach" --prompt "..." --days mon,thu --hours 9shapeless agents edit <id> --status paused        # or: shapeless agents pause <id>shapeless agents wake <id>                        # run it now  [publish]
shapeless brain lsshapeless brain get positioning.mdshapeless brain put voice.md --file ./voice.md    # or pipe on stdinshapeless brain import ./pitch-deck.pdfshapeless brain export --out brain.zip
shapeless assets listshapeless assets upload ./logo.pngshapeless connections

MCP server

The hosted server is https://shapelessai.com/mcp. Add that URL to any host that speaks remote MCP - Claude (Settings -> Connectors -> Add custom connector), ChatGPT (Developer mode), Claude Code, Cursor, Codex, VS Code, Gemini CLI - and it opens a Shapeless tab to sign in and allow. OAuth, no key. The steps for each host, in the vendor's words, are at shapelessai.com/connect.

bash
claude mcp add --transport http --scope user shapeless https://shapelessai.com/mcp   # then /mcp -> Authenticatecodex mcp add shapeless --url https://shapelessai.com/mcp && codex mcp login shapelessgemini mcp add --transport http shapeless https://shapelessai.com/mcp

The same tools (posts_create, jobs_create, posts_approve, brain_write, ...) also run locally: shapeless mcp speaks MCP on stdio with the API key from shapeless login, and adds the tools that read your disk (assets_upload, brain_import, and files on a job message). Every tool carries a title and annotations - read-only tools run freely, anything that publishes, spends or overwrites is flagged destructive so a host asks you first - and each description names the scope it needs.

A job is a conversation, so work passes both ways between your terminal and the web app:

  • Every job result carries a url - https://shapelessai.com/studio/c/<id> - so an agent can hand the human back a link to what it just did.
  • jobs_brief <id> is the cheap read before replying: the last 30 messages clipped, reasoning and tool-activity dropped, an artifact inventory and post counts per queue status. Deterministic, no model in the loop. jobs_get still gives the full transcript.
  • jobs_list answers 200 jobs at a time, newest first, with a nextCursor; pass it back as before to walk further into the history.
  • jobs_tail <id> watches a job's run (60 seconds max, 200 events) and returns the events plus a cursor to resume from; a job with no run stream to attach to answers {live: false} instead of erroring.
  • jobs_create and jobs_continue take files: files (absolute local paths - .md/.txt ride inline, images, video, audio and PDF are uploaded here) and mediaKeys (anything already in the account, e.g. what assets_upload returned). Up to 6 per message. They land on the message the human sees in the studio, and the agent reads them for real - an image's pixels are inlined for that turn, not just its filename.

There is one prompt, continue (argument: id), which Claude Code surfaces as a slash command: it loads that conversation's brief and tells the agent to reply into the same thread with jobs_continue.

Running the stdio server instead of the hosted one - Claude Code:

bash
claude mcp add shapeless -e SHAPELESS_API_KEY=slk_... -- npx shapelessai mcp

Claude Desktop (claude_desktop_config.json), and other stdio-only hosts:

json
{  "mcpServers": {    "shapeless": {      "command": "npx",      "args": ["shapelessai", "mcp"],      "env": { "SHAPELESS_API_KEY": "slk_..." }    }  }}

Without the env var the server uses the key stored by shapeless login.

Agent Plugins (Cursor, Kiro, Copilot, Codex) and Gemini CLI

plugins/shapeless is also an Agent Plugins 1.0 package (plugin.json, mcp.json, skills/), so any client that loads that format installs the hosted MCP server and the skill from this repo. Gemini CLI reads gemini-extension.json at the root:

gemini extensions install https://github.com/FirstClassTree/shapelessai

Claude Code plugin

This repo is also a plugin marketplace. The shapeless plugin wires up the hosted MCP server and ships a skill that teaches Claude the ropes - scopes, the post queue, when to touch Brand Memory:

/plugin marketplace add FirstClassTree/shapelessai/plugin install shapeless@shapeless

Then run /mcp, pick shapeless and choose Authenticate - a browser tab signs you in once.

The API

Everything above rides one documented contract: shapelessai.com/docs/api - every route, the scope each needs, rate limits, and what deliberately refuses an API key. Machine-readable at /api/openapi.json.

PageWhat it answers
/docsStart here: key, MCP URL, CLI, the three moves
/docs/postsCreate, schedule, queue, media, first comment, every refusal
/docs/platformsLimits and rules per platform, live from GET /api/platforms
/docs/apiEvery route a key opens, and the scope it needs
/docs/cliThe shapeless command
/docs/mcpThe hosted MCP server and its tools
/docs/jobsDurable runs
/docs/brand-memoryThe account's durable knowledge
/docs/authKeys, scopes, OAuth, rate limits

Issues

Found a bug or hit a wall? Open an issue. The CLI is developed against the contract above; this repo is where it ships.

来源:README.md,提交 d7f516e

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.3.0最新Sep 29, 2026