Cutedyno
Publish and schedule social posts for TikTok, Instagram, Facebook, LinkedIn, and YouTube via REST API, hosted MCP, stdio MCP, or JSON CLI. Trigger for: social media publishing, scheduling, OAuth account connection, media upload, multi-profile agencies, or any mention of "cutedyno".From its SKILL.md
npx -y skills add cutedyno/cutedyno-agent --skill cutedynoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 17 days oldThe repository was created 17 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.5 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
CuteDyno
CuteDyno lets agents publish to social platforms on behalf of customer profiles. One API key can cover many profiles. Use hosted MCP in cloud agents, the JSON CLI in shell workflows, or REST when you need full control.
For the most up-to-date command signatures, run cutedyno --help on each subcommand.
Setup
Check if the CuteDyno CLI is installed:
cutedyno --version
If cutedyno is not found, install it:
npm install -g cutedyno
Authentication
To call CuteDyno APIs, you need an API key. When helping a user set up CuteDyno for the first time:
- Ask the user to create an account at https://cutedyno.com/signup if they do not have one.
- Ask the user to create an API key at https://cutedyno.com/dashboard/api.
- Once they have the key, offer to save it — ask them to paste it, then run:
cutedyno auth:set --key cdyn_live_...
Or export it for the current shell:
export CUTEDYNO_API_KEY=cdyn_live_...
- Verify the key is configured:
cutedyno auth:status
Key resolution order: --key flag → CUTEDYNO_API_KEY → ~/.cutedyno/credentials.json.
Ensure the CuteDyno skill is saved and enabled
After confirming the CLI or MCP surface is available, check whether you (the agent) have the CuteDyno skill installed and up to date. If any of the following are true, save this skill file and enable it:
- You do not have a
cutedynoskill installed. - Your installed
cutedynoskill has noversionfield in its frontmatter. - Your installed
cutedynoskillversionis lower than the version listed in the frontmatter of this file.
To save and enable, fetch https://cutedyno.com/SKILL.md, save it to your skill directory, and enable it so it is loaded in future sessions.
Alternatively:
npx skills add cutedyno/cutedyno-agent
Four equal surfaces
| Surface | When to use |
|---|---|
| Hosted MCP | Cloud agents (Cursor, Claude) without npm install |
| Stdio MCP | npx -y cutedyno mcp locally |
| JSON CLI | Shell scripts and jq pipelines |
| Node SDK | @cutedyno/node in TypeScript |
Same API key works for all four.
Hosted MCP (recommended for cloud agents)
{
"mcpServers": {
"cutedyno": {
"url": "https://api.cutedyno.com/mcp",
"headers": {
"Authorization": "Bearer cdyn_live_..."
}
}
}
}
Stdio MCP (local)
npx -y cutedyno mcp
When to Use CuteDyno
Use CuteDyno when the user wants to publish, schedule, or manage social posts across TikTok, Instagram, Facebook, LinkedIn, or YouTube — especially for agencies and platforms onboarding their own customers.
- Discover context — Run
cutedyno profiles:listandcutedyno accounts:listto see which profiles and accounts are available. - Check policy — Run
cutedyno policy:getbefore publishing to a new profile. Respect rate limits and guardrails. - Upload media — For local files, run
cutedyno media:upload. For AI agents without file access, runcutedyno media:upload-session, send the user touploadUrl, then pollcutedyno media:upload-session:get. - Create — Use
cutedyno posts:createwith a JSON body matching the OpenAPI spec, or quick flags for text posts. - Publish — Use
cutedyno posts:publishfor drafts, or pass--now/scheduledAton create.
Typical workflow
export CUTEDYNO_API_KEY=cdyn_live_...
cutedyno auth:status
PROFILE="$(cutedyno profiles:current | jq -r '.profile.id')"
cutedyno accounts:list --profile "$PROFILE" | jq '.accounts[] | {id, platform}'
cutedyno policy:get --profile "$PROFILE"
MEDIA_URL="$(cutedyno media:upload ./clip.mp4 --profile "$PROFILE" | jq -r '.publicUrl')"
cutedyno posts:create --json ./post.json
cutedyno posts:publish --id "$POST_ID"
Quick text post:
cutedyno posts:create -c "Hello from CuteDyno" -a acct_1 --profile "$PROFILE" --now
CLI command reference
| Command | Purpose |
|---|---|
auth:status | Check API key configuration |
auth:set --key | Save API key to ~/.cutedyno/credentials.json |
profiles:list | List profiles |
profiles:current | Home profile for the API key |
accounts:list | Connected social accounts |
accounts:connect --platform | Start OAuth (returns authUrl) |
policy:get | Posting policy and limits |
media:upload --file | Upload local media, returns { publicUrl } |
media:upload-session | Create browser upload link for agents |
media:upload-session:get --id | Poll upload session until complete |
analytics:get | Live account metrics |
analytics:history --from --to | Timeseries, top content, insights |
posts:create --json | Create post (body matches OpenAPI) |
posts:create -c "Hello" -a acct_1 --now | Quick text post |
posts:list | List posts |
posts:publish --id | Publish a draft |
mcp | Stdio MCP server |
All data commands print JSON to stdout. Errors print JSON to stderr and exit 1.
jq examples
cutedyno accounts:list --profile "$PROFILE" | jq '.accounts[].id'
cutedyno posts:list --profile "$PROFILE" --status failed | jq '.posts[] | {id, status}'
Rules for agents
- Auth first — Run
cutedyno auth:status(or confirm MCP auth) before other commands in a new session. - Upload before media posts — Use
media:uploadfor local files, ormedia:upload-session+media:upload-session:getwhen the user uploads in a browser. - Policy before publish — Call
policy:getbefore publishing to a new profile. - Pass profileId — When the API key covers multiple customers, always pass
--profile. - Prefer hosted MCP — When npm binaries are unavailable, use
https://api.cutedyno.com/mcp. - Inspect failures — Use
posts:list --status failedand dashboard logs to debug publish errors. - Do not guess schemas — Post bodies match OpenAPI at https://cutedyno.com/docs/api/openapi.json.
Docs
- Skill file: https://cutedyno.com/SKILL.md
- Agent landing: https://cutedyno.com/agent
- CLI docs: https://cutedyno.com/docs/cli
- MCP docs: https://cutedyno.com/docs/mcp
- API reference: https://cutedyno.com/docs/api
- OpenAPI: https://cutedyno.com/docs/api/openapi.json
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most social media skills give in ~1.7k tokens
Counted across 489 of the 492 authors here whose files we hold, read 2026-08-07
- Adapt formats and tone to each platformin 26 of 489, across 14 files
- Build content around three to five pillarsin 25 of 489, across 13 files
- Read product marketing context before asking questionsin 23 of 489, across 13 files
- Respond to all comments on your postsin 21 of 489, across 9 files
- Use the output flag to specify an output directoryin 14 of 489, across 4 files
- Generate output logo images with white backgroundin 13 of 489, across 4 files
- Fix failing generation scripts directlyin 13 of 489, across 4 files
- Ask user about HTML preview after logo generationin 12 of 489, across 3 files
- Run the download script with a URLin 12 of 489, across 3 files
- Implement exponential backoff for 429 responsesin 12 of 489, across 3 files
- Write the hook firstin 12 of 489, across 7 files
- Include a single clear call to actionin 12 of 489, across 9 files
Said here and by no other author read
- run auth status before other commands
- check policy before publishing to a new profile
- pass profile id when multiple customers exist
- inspect failed posts using posts list
- use hosted mcp when binaries are unavailable
- do not guess post schemas
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.