Skip to main content

The difference one file makes

An agent without her skill guesses. It invents a flag that looks plausible and passes a local file path where a URL belongs, and you spend the next ten minutes reading error JSON with it. An agent that has read her skill starts with integrations:list to learn your real channel IDs. It checks what each channel accepts before writing a word, runs your image through postqueen upload because raw paths get rejected, then schedules with a proper ISO 8601 date. Same model, same prompt, completely different first attempt. Installing it is one command. This page covers both ways to run that command, and the API key that makes either one work.

What the skill actually is

A single SKILL.md file from the postqueen-agent repository. It registers under the name postqueen and declares Bash(postqueen:*) as the only tool it needs, so it asks for nothing beyond permission to run her CLI. Inside, it is a playbook rather than a manual page:
  • Two hard rules up top. Authenticate before anything, and put every media file through postqueen upload first. Raw filesystem paths and external URLs are rejected by the publishing pipeline, and most providers only accept a PostQueen-verified URL.
  • A seven-step core workflow. It runs from authenticate through discover and post to analyze, ending with the fix for a missing release ID when analytics comes back {"missing": true}.
  • Worked patterns. Fetching Reddit flairs and Pinterest boards, building a thread, scheduling a week in a loop.
  • A gotchas list. ISO 8601 dates are required, JSON goes in single quotes, character limits come from integrations:settings.

Two routes in

Both land the same skill. Pick by which agent you are teaching. If you are not sure, take the registry route. It is one line, it works from Codex to Cursor to Hermes, and nothing stops you adding the plugin later on the machines where you use Claude Code.

Route 1: the skills registry

1

Install the skill

The skills CLI writes into ~/.agents/skills, where agents that support the registry look for it. Most pick it up on their next start.
2

Install the CLI

The skill tells your agent to install the CLI if it is missing, and it is one command either way:
Or with pnpm:
Hermes loads skills from ~/.hermes/skills/ plus any directory listed under skills.external_dirs, so it needs one line of config pointing at ~/.agents/skills. That step is written out on the Hermes page.

Route 2: the Claude Code plugin

The repository ships a plugin manifest at .claude-plugin/plugin.json and a marketplace catalog at .claude-plugin/marketplace.json. That makes the repo itself a Claude Code marketplace with exactly one plugin in it, named postqueen. Why bother, when route 1 is shorter? Because the plugin carries a version, so you pick up updates deliberately rather than by accident. It installs at a scope you choose, including project scope, which writes into .claude/settings.json so everyone working in that repository gets the same skill. And it shows up in /plugin alongside everything else you have installed, ready to disable or remove in one place.
1

Add the marketplace

Inside Claude Code:
This registers the catalog. Nothing is installed yet.
2

Install the plugin

The identifier is plugin-name@marketplace-name: postqueen from the plugin entry, postqueen-agent from the marketplace. Claude Code then asks for a scope:To skip the interactive step, for example in a setup script, use the shell form instead. It installs to user scope unless you pass --scope:
3

Activate it

This picks up the new plugin without restarting your session.
4

Install the CLI

The plugin carries her instructions. The commands themselves still come from the npm package.
Later on, /plugin list shows what you have, /plugin marketplace update postqueen-agent refreshes the catalog, and /plugin uninstall postqueen@postqueen-agent removes it.
Plugins run with your user privileges, so only add marketplaces you trust. This one is the same public repository the npx skills add route reads from, and you can read every line of it before you install.

Her API key

The skill teaches your agent what to run. The key is what lets it run anything at all.
1

Reveal your key

Open app.postqueen.ai, go to Settings > Developers > Public API, and click Reveal. Self-hosting? The same screen lives in your own instance.
2

Export it

Put it in your shell profile, ~/.zshrc or ~/.bashrc, so it survives a new terminal. If an always-on agent will be using it, export it in the environment that process starts in rather than the one you happen to be typing in.
3

Point at your own instance, if you have one

Self-hosted PostQueen needs one more variable: your backend URL, the same value as NEXT_PUBLIC_BACKEND_URL. The CLI appends /public/v1/... to whatever you set, and most single-domain setups serve the backend under /api:
Keep the key secret: it grants full access to your account. You can revoke or rotate it any time from the same screen.
postqueen auth:login runs an OAuth2 device flow that needs an auth server to mediate it, and PostQueen does not currently host one. On the hosted service the API key is the route to take. Running your own auth server is written out in full on the Authentication page.

Verify it works

One command tells you the skill, the CLI and the key are all in place:
A JSON array of your connected channels means everything is wired. Each entry carries the id your agent will pass to -i, next to the account name and the platform it belongs to:
If the array comes back empty, the key is valid but no channels are connected yet. Connect one in the app first.
The data commands print a one-line header before the JSON. Drop it with tail -n +2 before piping into jq:
To check credentials on their own, without touching your channels:

When it does not work

More on this in CLI troubleshooting.

๐Ÿ‘‘ First post from the skill

Now ask your agent in plain words:
โ€œSchedule a post about our new espresso tonic for tomorrow at 9am on Instagram and X.โ€
It runs the loop the skill taught it: find the channels, check what each one accepts, then upload the image before scheduling.
She puts the post on your calendar at app.postqueen.ai and sends it at nine, on time, without another word from you. Prefer to write it now and schedule it later? Add -t draft and the post is created in the draft state, which sits on the calendar without being queued. Nothing publishes until you turn it into a scheduled post:

Learn more

CLI introduction

Everything your agent runs on your behalf, with flags and JSON output.

Command reference

Every command and every flag, in one page.

Why agents love her

Why an agent can drive her without guesswork, and the two rules that matter most.

Agents overview

Every way to put an agent in front of PostQueen, from coding assistants to chat apps.