<< All versions

Skill v1.0.0

currentAutomated scan100/100
thisuxhq/dunsocial-skills/dunsocial
──Details
PublishedOctober 24, 2026 at 04:37 AM
Content Hashsha256:8c7103b99f51e6a2...
Git SHA482e77da1ac9
──Files
Files (1 file, 3.6 KB)
SKILL.md3.6 KBactive
SKILL.md · 177 lines · 3.6 KB

version: "1.0.0" name: dunsocial description: Schedule, publish, and manage DunSocial posts, drafts, media, and memory from the shell via the dun CLI (npm package dunsocial). Use when the user wants to post or schedule to X/LinkedIn/Bluesky/Threads/Reddit/Pinterest/Instagram/YouTube through DunSocial, manage drafts or media uploads, search workspace memory, or wire social publishing into CI/agent workflows.


DunSocial CLI

Use the dun binary from the npm package dunsocial.

bash
npm install -g dunsocial
bash
npx dunsocial …

Prefer --json on every command so output is machine-parseable.

Remote hosts (ChatGPT web, Claude web) keep using DunSocial MCP. This CLI is for local agents, terminals, and CI.

Env vars override ~/.config/dunsocial/config.json.

Setup

Always: authenticate → select workspace → verify → list accounts → act.

Do not invent social account IDs. Do not treat drafts create as a successful publish.

Interactive auth

Browser approve at app.dunsocial.com/cli/authorize:

bash
dun auth login

Headless auth (CI)

Create a PAT in the app under Settings → CLI (dun_pat_…), then:

bash
export DUN_TOKEN="dun_pat_…"
export DUN_API_URL=https://api.dunsocial.com

DUN_API_URL is optional (defaults to production).

PAT rules:

  • Bound to one workspace; missing scope → exit 3 / forbidden
  • Cannot manage other tokens, billing, or team
  • Prefer PAT over browser session tokens in CI

Workspace

Interactive:

bash
dun workspace list --json
dun workspace use <id-or-slug> --json

Headless (required with PAT):

bash
export DUN_WORKSPACE_ID="…"

Verify

bash
dun auth status --json
dun workspace current --json

Discovery order

  1. dun auth status --json
  2. dun workspace current --json (or list + use)
  3. dun accounts list --json — capture social account ids
  4. Act (schedule / publish / draft / media / memory)

Schedule a post

bash
dun posts schedule \
--text "Shipped from the DunSocial CLI." \
--accounts acc_x,acc_li \
--in 1h \
--json

Absolute time: --at 2026-06-01T09:00:00Z.

Publish now

bash
dun posts publish --text "Hello from dun" --accounts acc_x --json

Media

Upload first, then attach the returned asset id:

bash
dun media upload ./shot.png --alt "Product screenshot" --json
bash
dun posts schedule --text "…" --accounts acc_x --media <assetId> --in 30m --json

Drafts, memory, threads

bash
dun drafts create --text "WIP" --platforms x,linkedin --json
bash
dun memory collections list --json
dun memory save --collection <id> --text "…" --json
dun memory search --prompt "…" --collections <id> --json

Thread file shape: [{"content":"1"},{"content":"2"}]

bash
dun posts schedule-thread --account acc_x --file ./thread.json --in 2h --json

Destructive ops

Require --yes (or CI=1) for delete.

Exit codes

CodeMeaning
0ok
1usage
2auth
3forbidden / missing scope
4validation
5not found
6rate limited
7network

Failure JSON:

json
{
"ok": false,
"error": {
"code": "validation",
"message": "…",
"details": null
}
}

Pitfalls

  • Need a workspace: workspace use, --workspace, or DUN_WORKSPACE_ID
  • --accounts expects DunSocial social account ids, not handles
  • Upload local files with media upload before attaching
  • Platform-specific options: --meta '{"reddit":{…}}' when needed
  • MCP OAuth and CLI tokens are different systems

Help

bash
dun --help
dun posts --help
All versions