---
title: "CLI reference"
description: "Every rankcontrol command, grouped by area, with flags and examples."
---

> Documentation Index
> Fetch the complete documentation index at: https://rctrl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI reference

All commands print JSON. Authenticate once with `rankcontrol login` or export
`RANKCONTROL_API_KEY`. Commands marked **dry run** do nothing until you add
`--confirm`.

## Setup

| Command | What it does |
| --- | --- |
| `login` | Browser device authorization; saves a scoped key to `~/.rankcontrol`. `--scopes a,b,c` to narrow. |
| `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, AI leads. |
| `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`. |
| `leads` | Captured leads with AI source attribution. `--limit <n>`. |
| `engagement` | Per-page views and citations with 30-day sparklines. |

## 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>`. |
| `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>`. |
| `queries` | The tracked-query pool checked weekly across AI engines. |
| `query-add <queryText>` | Add a query to the pool; tracks immediately when a slot is free. |
| `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 an idea on the calendar. `--title` to pin the headline. |
| `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`. |
| `publish <contentId>` | Publish to the connected CMS. **Dry run** until `--confirm`. |
| `reschedule <contentId> <date>` | Move a planned article to a day (`YYYY-MM-DD`). |
| `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`, `--content-types a,b`,
`--max-difficulty <n>`, `--intents informational,commercial,transactional`,
`--citation-gaps`, `--ranking-gaps`.

```sh
rankcontrol plan-content --topics "travel insurance" --citation-gaps
rankcontrol commit-titles --file approved.json
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 <set>`.

## Site links

| 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. |

## Repurposing

| Command | What it does |
| --- | --- |
| `repurpose [contentId]` | The repurpose queue, or full drafts for one article. |
| `repurpose-generate <contentId>` | Draft social posts. **Dry run**; `--platforms a,b` to narrow. |
| `repurpose-edit <draftId>` | Edit a draft. `--body`, `--title`. |
| `repurpose-channels` | Connected Postiz channels and their ids. |
| `repurpose-push <draftId>` | Send to Postiz. **Dry run**; `--channels id1,id2`, `--when now\|schedule\|draft`, `--date <iso>`. |
| `repurpose-mark-posted <draftId>` | Mark a draft posted when you published it yourself. |

## Link building

| 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 found contacts. |
| `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`. |
| `network` | Link Network 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> <status>` | Move a thread through the pipeline. |
| `social-draft-reply <threadId>` | AI-draft a reply for review. `--mention none\|natural\|founderOpen`. Nothing posts. |

## Brand

| Command | What it does |
| --- | --- |
| `brand` | Brand profile, products, and buyer profiles in one read. |
| `brand-profile-set` | Patch voice and style fields. `--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). |

```sh
rankcontrol brand-profile-set --json '{"tone":"plainspoken, practical, no hype"}'
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`. |

## 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. |

> **Tip**
>
> Agents included: every command here is also an MCP tool with the same
> behavior, so anything you can script, an AI agent can do with the same
> guardrails. Skill-based agents can learn this whole reference with
> `npx skills add rankcontrol/rankcontrol`.

Source: https://rctrl.com/cli/index.mdx
