Skill v1.0.0
currentLLM-judged scan90/100version: "1.0.0" name: buffer-publisher description: Use Buffer's GraphQL API to inspect Buffer accounts, organizations, channels, queues, posts, daily limits, and to create Buffer Ideas, drafts, scheduled posts, queued posts, or media posts. Use when the user asks to draft, schedule, queue, publish, edit, delete, review, list, or manage social posts through Buffer, or asks what is connected in their Buffer account.
Buffer Publisher
Use this skill to operate Buffer through the GraphQL API. Prefer the bundled helper script for repeatable requests:
python3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py <command> [options]
The helper reads credentials in this order:
BUFFER_API_KEY- Optional macOS Keychain lookup configured with
BUFFER_KEYCHAIN_SERVICEandBUFFER_KEYCHAIN_ACCOUNT
Never print, paste, or commit the API key. If authentication fails, ask the user to refresh the Buffer key and store it again.
Default Workflow
- Run
accountto confirm access and find organizations. - Run
channels --organization-id <id>to select the target channel. - For posts, use
preview-postfirst unless the user explicitly asked to create something immediately. - For publish-affecting actions, show a concise preflight summary: organization, channel, service, text, assets, mode, and time.
- Require explicit confirmation before
shareNow,customScheduled,edit-post, ordelete-post. - Prefer
create-ideaorcreate-post --draftwhen the user wants to save content but has not clearly asked to publish or schedule.
Common Commands
# Account and orgspython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py account# Channels in an orgpython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py channels --organization-id ORG_ID# Scheduled posts for one channelpython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py posts --organization-id ORG_ID --channel-id CHANNEL_ID --status scheduled --limit 20# Daily posting limitspython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py daily-limits --channel-id CHANNEL_ID --date 2026-04-22# Create an ideapython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py create-idea --organization-id ORG_ID --title "Idea title" --text "Idea body"# Save a draft postpython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py create-post --channel-id CHANNEL_ID --text "Post copy" --draft# Add to queuepython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py create-post --channel-id CHANNEL_ID --text "Post copy" --mode addToQueue# Schedule for an exact UTC timepython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py create-post --channel-id CHANNEL_ID --text "Post copy" --mode customScheduled --due-at 2026-04-24T17:00:00.000Z# Delete requires an explicit CLI confirmation flag after user confirmation in chatpython3 $HOME/.codex/skills/buffer-publisher/scripts/buffer_cli.py delete-post --id POST_ID --yes
Capabilities
- Read account, organization, and channel state.
- List posts with filters for status, channel, date, due date, created date, tags, pagination, and sorting.
- Fetch a single post by ID.
- Check daily posting limits for channels.
- Create Ideas with title, text, services, target date, and media URLs.
- Create text, image, video, document, and link posts from public URLs.
- Save posts as drafts, add to queue, share next, share now, or schedule for a fixed UTC time.
- Edit or delete posts only after explicit user confirmation.
Safety Rules
- Do not use
shareNowunless the user explicitly asks to publish immediately. - Do not use
customScheduleduntil the requested local time has been converted to a concrete UTC ISO-8601dueAt. - Do not delete or edit without repeating the target post ID and receiving confirmation.
- Do not attempt to upload local media files directly; Buffer post assets require reachable URLs.
- Do not post to locked or disconnected channels; pick another channel or ask the user to reconnect it in Buffer.
- Include
MutationError { message }or equivalent error fragments in mutations. - Keep queries flat and paginated. Use
firstaround 20-50 for list operations.
References
Read references/buffer-api.md when you need endpoint details, allowed enums, supported platforms, rate limits, or GraphQL input shapes.