Skip to content

madrzak/rankgoat-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RankGoat CLI

The official command-line interface for RankGoat, the SEO backlink exchange that writes and publishes done-for-you blog posts with real dofollow links between member sites.

Manage your content plan, generate posts, approve drafts, and read your backlink and SEO data straight from the terminal or a CI pipeline. Built on the public RankGoat API.

npm license

Install

npm install -g rankgoat

Or run it without installing:

npx rankgoat whoami

Requires Node.js 20 or newer. Zero runtime dependencies.

Authenticate

Create an API key at rankgoat.app/app/settings#api, then:

rankgoat auth login rg_live_xxxxxxxx

The key is stored in ~/.rankgoat/config.json (owner-readable only). Alternatively set RANKGOAT_API_KEY in your environment, or pass --api-key on any command, handy for CI.

export RANKGOAT_API_KEY=rg_live_xxxxxxxx
rankgoat whoami

Usage

rankgoat <command> [args] [options]

Account & sites

rankgoat whoami                     # member + sites with credit balances
rankgoat sites                      # list your sites
rankgoat sites get 123              # one site, full detail
rankgoat sites credits 123          # credit balance by bucket

Content plan

The monthly plan is a calendar of briefs the AI turns into posts.

rankgoat plan list 123 --month 2026-06
rankgoat plan add 123 --auto                       # let AI plan a brief (async)
rankgoat plan add 123 --title "Notion vs Obsidian" --keyword "notion alternatives" --type comparison --hub 5
rankgoat plan edit 789 --title "Notion vs Obsidian (2026)" --type guide
rankgoat plan schedule 789 2026-06-22
rankgoat plan archive 789
rankgoat plan restore 789
rankgoat plan generate 789 --wait                  # write the post now (spends 1 credit)

Posts

rankgoat posts list 123 --status draft
rankgoat posts get 456 --html                      # print the post body
rankgoat posts approve 456                          # approve a draft for publishing

Backlinks & SEO

rankgoat backlinks 123                              # inbound + outbound link graph
rankgoat mentions 123                               # brand mentions received + given
rankgoat seo authority 123                          # Domain Rating over time
rankgoat seo onpage 123
rankgoat seo sitemap 123
rankgoat seo gsc 123                                # Google Search Console performance
rankgoat seo equity 123                             # link-equity points: balances + ledger
rankgoat seo flywheel 123                           # unindexed-post fixes awaiting review

Content hubs

Topic clusters the monthly planner draws briefs from, weighted by priority.

rankgoat hubs list 123
rankgoat hubs add 123 --name "AI note-taking" --keywords "ai notes, ai note app" --priority high
rankgoat hubs edit 5 --priority low
rankgoat hubs archive 5                             # the planner stops drawing from it
rankgoat hubs restore 5

Product features

Your product's real capabilities. They ground content generation, so posts never invent features the product does not have.

rankgoat features list 123
rankgoat features add 123 --name "Offline sync" --description "Notes sync without a connection"
rankgoat features edit 7 --description "Now with conflict resolution"
rankgoat features archive 7                         # new posts stop mentioning it
rankgoat features restore 7

Jobs

Some actions (AI planning, post generation) run in the background and return a job handle. Poll it, or pass --wait on the original command:

rankgoat jobs plan-generate 789 --wait

Options

Option Description
--api-key <key> Use this key (overrides env and saved config)
--api-url <url> Override the API base URL (defaults to https://rankgoat.app/api/v1)
--json Output raw JSON, ideal for scripting with jq
--wait Block until an async job finishes
-h, --help Show help
-v, --version Show the CLI version

Scripting

Every command supports --json for machine-readable output:

rankgoat sites --json | jq '.sites[] | select(.status=="active") | .domain'

Exit code is non-zero on any API or usage error, so it composes cleanly in CI.

For AI agents

The CLI is built to be driven by agents: structured JSON on every command, env-var auth, and non-zero exits on failure. Two ways to plug in:

MCP server. rankgoat mcp runs a Model Context Protocol server on stdio exposing all 34 capabilities (plan, generate, approve, backlinks, mentions, DR, GSC, sitemap, hubs, features, link equity, flywheel) as typed tools:

claude mcp add rankgoat -e RANKGOAT_API_KEY=rg_live_... -- npx -y rankgoat mcp

Or in any MCP client config:

{
  "mcpServers": {
    "rankgoat": {
      "command": "npx",
      "args": ["-y", "rankgoat", "mcp"],
      "env": { "RANKGOAT_API_KEY": "rg_live_..." }
    }
  }
}

Shell + SKILL.md. Agents that run shell commands can use the CLI directly; the bundled SKILL.md teaches them the workflows, including which calls spend credits and where to keep a human in the loop.

More at rankgoat.app/agent.

How RankGoat works

RankGoat members pay for done-for-you blog posts that get published on their own sites with dofollow outbound links to other members. The link graph is non-reciprocal and niche/DR-matched, so it builds real authority without pattern-matching as a scheme. Learn more at rankgoat.app or read the API reference.

License

MIT © RedStudio

About

Official command-line interface for RankGoat. Manage your SEO content plan, posts, and backlinks from the terminal.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages