Skip to content
rctrl Docsrctrl Docs

CLI reference

Every rankcontrol command, grouped by area, with flags and examples.

All commands print JSON. Authenticate once with rankcontrol login or export RANKCONTROL_API_KEY. Commands marked dry run do nothing until you add --confirm. Removals and team changes print an approval link instead: the workspace owner approves them in RankControl.

Setup

Command What it does
login Browser device authorization; saves a key with full access to your workspace to ~/.rankcontrol.
logout Remove the locally stored key.
mcp Start the MCP server on stdio, for Claude, Cursor, and other agents.

Overview and reports

Command What it does
funnel AI pipeline, last 30 days: crawler hits, AI-referred visits.
expedition The workspace’s expeditions on the Overview: the current expedition, each step’s name and whether it is done, and the next step.
report Executive summary: last 30 days vs the 30 before.
wins Biggest wins: most-cited page, cite-rate jump, ranking climb, best backlink.
agent-activity Recent runs per agent lane. --per-agent <n>, --since-days <n>.
jobs Recent agent runs, async job status. --limit <n>.
traffic Page views, visitors, sessions, bounce rate. --days 7|30|90. --scope site: the whole site from Google Analytics, when connected.
engagement Per-page views and citations with 30-day sparklines.
rankings Google and Bing positions per keyword, Search Console clicks and impressions, and how often Google’s AI Overview shows above each keyword and names you. --scope ours|site.

Analytics

Command What it does
analytics-sources Per-org analytics sources: selections, qualified options, Cloudflare/plugin/embed install state.
analytics-set-source <dataType> <source> Select the writer for a data type (validated against what the setup supports).
analytics-activate <screen> Turn on the Analytics or Reports screen for this workspace.

Visibility

Command What it does
score Composite visibility score with per-pillar subscores.
visibility Daily AI visibility trend. --days 30|60|90.
sov Share of voice vs competitors. --days <n>.
competitors Tracked competitors with visibility score, 30-day citations of checks, domain metrics and positioning analysis.
competitor-add <name> [websiteUrl] Track a competitor (max 10); the site is resolved from the name when omitted.
competitor-remove <competitorId> Stop tracking a competitor (waits for the owner’s approval in RankControl).
web-totals Monthly web total for your domain and every competitor you track, last 3 months, oldest month first.
footprint Web footprint (0-10) for your domain and every competitor you track, with the median peer.
sources Domains AI answers cite for your tracked queries. --days <n>.
sentiment How AI answers frame your brand when cited. --days <n>.
citations Recent citation checks. --model chatgpt|perplexity|..., --limit <n>, --before <time> to page back.
queries List the tracked queries, each with how many of the 6 AI engines cited it in their latest check.
query-slots Tracking slots in use and the plan’s limit.
query-add <queryText> Add a query to the pool; tracks immediately when a slot is free.
query-edit <queryId> <queryText> Rewrite a tracked query’s text.
query-track <queryId> <on|off> Pause or resume weekly checks on a query. Tracking uses one of your tracking slots; pausing frees it.
query-remove <queryId> Delete a query.
crawler-access Daily probe: is your edge or robots.txt blocking the AI search crawlers.

Content

Command What it does
content List content pages with status.
ideas Scored idea backlog: uncovered queries, citation gaps, quick wins.
plan-idea <queryText> Put one of your Content Ideas on the calendar.
idea-hide <queryId> Hide an idea from Content Ideas. A tracked query keeps its weekly checks.
insights Insights: what to work on next on your site, with the evidence for each item.
insight-plan <itemId> Plan up to 3 articles that link to the item’s page. Dry run until --confirm.
insight-hide <itemId> Hide an Insights item. It moves under Done as Hidden and does not come back.
insight-move <itemId> Move an Insights search no page is about to Content Ideas, tagged Search Console. The item moves under Done.
plan-content Generate candidate titles. Nothing schedules until commit-titles.
commit-titles Approve reviewed titles onto the calendar from JSON (--file or stdin).
capacity Remaining plan slots on the calendar.
generate <contentId> Write a planned article’s body now. Dry run; spends LLM budget on --confirm.
write Write several planned articles one after another: --next <n> or --ids a,b; --publish publishes each one once it is written. Dry run until --confirm.
write-runs Recent write runs and each article’s state.
write-stop <runId> Stop a write run. Nothing new starts; an article being written finishes as a draft.
approval <approvalId> Where a change waiting for the workspace owner stands.
publish <contentId> Publish to the connected CMS. Dry run until --confirm.
meta <contentId> Change an article’s title, meta title or meta description (--title, --meta-title, --meta-description). Dry run until --confirm.
reschedule <contentId> <date> Move a planned article to a day (YYYY-MM-DD).
delete-planned <contentId> Remove a planned title from the calendar; the title returns to Content Ideas.
article-set <contentId> Change a planned article’s length, tone, image style or instructions.
archive <contentId> Archive an article out of the working set.
optimizer Published pages ranked by citability, worst first, with open fixes.
internal-links <contentId> Inbound and outbound internal links for an article.

plan-content filters: --topics a,b, --subject <text>, --content-types a,b, --max-difficulty <n>, --intents informational,commercial,transactional, --citation-gaps, --ranking-gaps.

rankcontrol plan-content --topics "travel insurance" --citation-gaps
rankcontrol plan-content --topics "Travel insurance" --subject "ski trips"
rankcontrol commit-titles --file approved.json
rankcontrol write --next 3 --publish --confirm
rankcontrol publish mx7... --confirm

Article policy

Command What it does
settings Show the article policy: per-article defaults plus scheduling mode.
settings-set Merge-patch the policy. Only flags you pass change.

settings-set flags: --auto-publish on|off, --auto-generate on|off, --images on|off, --title-in-hero on|off, --section-infographics on|off, --related-reading on|off, --youtube on|off, --emojis on|off, --internal-links <n>, --external-links <n>, --instructions <text>, --flexible-schedule on|off, --image-style <style>.

Command What it does
site-pages Pages used for in-article links and Related Reading.
detect-links <url> Scan a sitemap for site pages. --blog-root to crawl a page instead.
add-pages <urls...> Add page URLs for internal linking; dedupes, titles auto-fill.
site-page-linking <pageId> <on|off> Turn linking to a site page on or off. Off keeps the page in your list, but articles published after this don’t link to it.
site-page-remove <pageId> Remove a page from your site pages. Articles published after this don’t link to it, and scans don’t add it back; add-pages adds it again.

Repurposing

Command What it does
repurpose [contentId] The repurpose queue, or full drafts for one article.
repurpose-generate <contentId> Draft social posts. Dry run.
repurpose-edit <draftId> Edit a draft. --body, --title.
repurpose-channels Connected Buffer and Postiz channels and their ids.
repurpose-push <draftId> Send to Buffer or Postiz. Dry run; --scheduler postiz|buffer (needed when both are connected), --channels id1,id2, --when now|schedule|draft|queue (queue is Buffer only), --date <iso>.
repurpose-mark-posted <draftId> Mark a draft posted when you published it yourself.
Command What it does
backlinks The backlink table, newest first. --status <status>.
backlink-stats Totals plus outreach pipeline counts.
outreach-prospects Prospect sites per published article, with Domain Rating (dr, drSource: ahrefs, or dataforseo for an estimate) and found contacts.
outreach-stats Outreach funnel for the last 90 days by how each prospect was found: prospects, sent, replied, placed, with reply and placement rates per send.
outreach-find-contact <backlinkId> Find a contact email for a prospect.
outreach-draft-reply <backlinkId> AI-draft a reply to an inbound response. Nothing sends.
outreach-queue <backlinkId> Queue an outreach email. Dry run; --subject, --body.
outreach-status <backlinkId> <status> Move a prospect: identified, contacted, replied, link_placed, rejected.
outreach-cancel <backlinkId> Cancel a queued outreach email (first email, reply or follow-up) before it sends.
network Editorial Circle credits, membership state, and placements.
network-opt-in <on|off> Join or leave the network. Dry run; leaving retires live links.
network-remove-placement <id> Retire one placement. Dry run; visible on the partner site.

Social

Command What it does
social Thread prospects (Reddit/X) with rules context. --platform, --status, --age ranked|new.
social-stats Thread pipeline counts.
social-status <threadId> skipped Skip a thread. The only manual status; Posted is detected automatically.
social-draft-reply <threadId> AI-draft a reply for review. --mention none|natural|founderOpen. Nothing posts.
social-open <threadId> Take the draft to the platform yourself: prints the thread URL (X: a composer link with the reply filled in) and starts the checks that mark it Posted. --text for an edited reply (X: 280 characters or fewer).
social-x-handle <handle|clear> Optional X handle used to recognise your posted replies.
social-reddit-profile Save the Reddit account the Social tab drafts for: --karma, --age, --goal, --story, --tone, optional --username. Replaces the stored profile.

Brand

Command What it does
topics The pillar list (topic clusters).
topics-set <topics...> Replace the full pillar list, up to 20 topics.
brand Brand profile, products, buyer profiles (ICPs) and brand guidelines in one read.
brand-set Update identity: --name, --industry, --description, --aliases (other spellings searched as brand mentions, comma-separated), --not-us (same-name brands to skip), or --json for authors and styleReferenceUrls. Arrays replace the stored list.
brand-profile-set Patch voice and style fields, and the Local business switch (localBusiness, serviceArea). --json '{"tone":"..."}' or --json @file.json.
brand-product Create, update, or delete a product. --json (create: name, description, category; update: productId; delete: productId plus "del": true).
brand-icp Same semantics for buyer profiles (create: title, industry, demographics).
icp-suggest Up to 8 audiences for this site from its brand, products, competitors and topics. Saves nothing. --exclude titles already shown.
icp-draft Draft one buyer profile from --describe "<sentence>" or --title/--who from icp-suggest; --json fields are kept as written. Saves nothing; save it with brand-icp.
brand-reviewed Mark the brand as reviewed (Expedition I).
guideline-add <type> <avoid> <instead> Add a brand guideline.
guideline-on <id> Turn a brand guideline on.
guideline-off <id> Turn a brand guideline off.
guideline-remove <id> Delete a brand guideline.
rankcontrol brand-profile-set --json '{"tone":"conversational"}'
rankcontrol brand-product --json '{"name":"Acme API","description":"...","category":"product"}'

Team

Command What it does
team Members and pending invites with per-screen permissions.
team-invite <email> Invite a member. Dry run; --perms content=write,analytics=read.
team-revoke <invitationId> Revoke a pending invite.
team-remove <userId> Remove a member. Requires --confirm.

Integration helpers

Command What it does
cloudflare-connect Print the Cloudflare OAuth URL to connect read-only crawler analytics.
cloudflare-zones List Cloudflare zones visible to the connected grant.
cloudflare-zone <zoneId> <zoneName> Pick the polled zone (a crawler source already set stays).
framer-install-embed Install site-wide tracking on the Framer project (dry run without –confirm; installing also publishes the Framer site).
webflow-custom-code Install the tracking loader via Webflow’s Custom Code API (dry run without –confirm; live on the customer’s next site publish).

Support

Command What it does
support <subject> Send a message or bug report to the RankControl team. --message <text> required, --page <url> optional. Capped at 3 per minute.
help-page [page] Read a help page: setup guides for each publishing destination, the crawler and its IP, the API, CLI and MCP, and the plan and pricing; without a page, list the pages.
billing Billing as Settings, Billing shows it: status, billing cycle, next charge, add-ons, usage and recent payments (read-only).
Navigation

Type to search…

↑↓ navigate↵ selectEsc close