For terminals and agents
JSON on stdoutRuns with npxSame key as the API

Social publishing from the command line

Post, schedule, and check delivery on TikTok, Instagram, Facebook, and LinkedIn without opening a browser. Every command prints JSON, so shell scripts, CI jobs, and AI agents can read what happened.

7-day trial · card required · $0 today · CLI, REST API, and MCP on every paid plan

Get started in two commands

Install it, point it at your API key, and publish.

# Install
npm install -g cutedyno

# Or run it without installing
npx -y cutedyno auth:status
# Point the CLI at your account
export CUTEDYNO_API_KEY=cdyn_live_...

# See what you can publish to
cutedyno accounts:list --profile "$PROFILE"

# Post to several accounts at once
cutedyno posts:create \
  -c "Spring collection drops Friday." \
  -a acct_instagram,acct_tiktok,acct_linkedin \
  --profile "$PROFILE" --now

Create a key under Dashboard, then API. Key resolution runs --key, then CUTEDYNO_API_KEY, then ~/.cutedyno/credentials.json.

Built for automation

Made to be run by something other than a person

Agent ready

Every data command prints JSON to stdout and errors to stderr with exit code 1, so an agent can branch on the result instead of parsing prose.

One shape per platform

The same command publishes to TikTok, Instagram, Facebook, and LinkedIn. Per-platform options ride along in the same request when a network needs them.

Publish now or schedule

Pass --now to go out immediately, or -s with an ISO 8601 timestamp to queue it. The same queue the dashboard shows.

Media from disk or browser

Upload a local file with media:upload, or hand the user a browser upload link when your agent cannot read their filesystem.

Safe to retry

Writes carry idempotency keys, so a retried command after a timeout does not publish the post twice.

Same key everywhere

One CuteDyno API key works across the CLI, the REST API, and the MCP server, against the same connected accounts.

How it works

Three commands from nothing to a published post

01

Find your accounts

List the profiles you can act on, then the accounts connected to one. Both print JSON you can pipe into jq.

cutedyno profiles:list
cutedyno accounts:list --profile "$PROFILE"
02

Create the post

Pass content and account ids inline for a quick post, or hand it a JSON body matching the OpenAPI schema for anything richer.

cutedyno posts:create \
  -c "How we roast our house blend." \
  -a "$ACCOUNTS" -s 2026-08-01T12:00:00Z

cutedyno posts:create --json ./post.json
03

Publish and check

Publish a draft when you are ready, then read analytics back per account over any date range.

cutedyno posts:publish --id "$POST_ID"
cutedyno analytics:get --profile "$PROFILE"
Hand it to an agent

The CLI is also an agent interface

Local agents can call the CLI directly. Cloud agents can use the hosted MCP server instead, and either way it is the same API key and the same connected accounts.

# Give an agent live CuteDyno tools
cutedyno mcp

# Or install the skill into a compatible agent
npx skills add cutedyno/cutedyno-agent

Publish from your terminal

Connect your accounts once, then script the rest.