Tmux
trpc-group/trpc-agent-go
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
Every Scrape Creators endpoint across 28 platforms, with credit-aware comment mining and a local corpus no other Scrape Creators tool has.
$ npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-scrape-creators --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-scrape-creators .claude/skills/pp-scrape-creators && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-scrape-creators" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creators into .claude/skills/pp-scrape-creators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-scrape-creators", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creatorsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-scrape-creators --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-scrape-creators .agents/skills/pp-scrape-creators && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-scrape-creators" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creators into .agents/skills/pp-scrape-creators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-scrape-creators", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-scrape-creators --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-scrape-creators .cursor/skills/pp-scrape-creators && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-scrape-creators" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creators into .cursor/skills/pp-scrape-creators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-scrape-creators", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-scrape-creators--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-scrape-creators --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-scrape-creators .gemini/skills/pp-scrape-creators && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-scrape-creators" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creators into .gemini/skills/pp-scrape-creators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-scrape-creators", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-scrape-creatorsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-scrape-creators .github/skills/pp-scrape-creators && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-scrape-creators" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creators into .github/skills/pp-scrape-creators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-scrape-creators", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-scrape-creators --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-scrape-creators .opencode/skills/pp-scrape-creators && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-scrape-creators" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-scrape-creators into .opencode/skills/pp-scrape-creators/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-scrape-creators", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-scrape-creatorsEvery Scrape Creators endpoint across 28 platforms, with credit-aware comment mining and a local corpus no other Scrape Creators tool has.
Pp Scrape Creators is an agent skill from mvanhorn/printing-press-library. Every Scrape Creators endpoint across 28 platforms, with credit-aware comment mining and a local corpus no other Scrape Creators tool has. Trigger phrases: find which platforms a creator is on, pull the comments and replies from this post, monitor a brand's ads, search creator transcripts for a keyword, how many credits would this sweep cost, use scrape creators, run scrape-creators.
Its SKILL.md is about 14k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Web scraping. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 76de244. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goclaudenpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
instagram.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SCRAPECREATORS_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Scrape Creators loads about 14k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 6,187 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit 76de244, republished under its Apache-2.0 licence (© mvanhorn). 6,187 words, ~14,238 tokens.
.claude/skills/pp-scrape-creators/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/developer-tools/scrape-creators/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
This skill drives the scrape-creators-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install scrape-creators --cli-onlyscrape-creators-pp-cli --version$PATH for the agent/runtime that will invoke this skill.If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer). This installs into $GOPATH/bin (default $HOME/go/bin), so add that directory to $PATH instead:
go install github.com/mvanhorn/printing-press-library/library/developer-tools/scrape-creators/cmd/scrape-creators-pp-cli@latestIf --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
The official CLI mirrors endpoints and the official skills describe curl workflows; neither remembers anything between runs. This CLI syncs profiles, posts, comments with their replies, transcripts, and ads into SQLite with FTS5 search, routes comment-thread fetches on credit economics (comments thread), audits reply completeness against ground truth (comments coverage), and gates expensive sweeps behind a pre-flight credit estimate (account estimate).
Use this CLI when a task touches public social-media data at scale: mining comments and replies for a brand, qualifying creators across platforms, monitoring competitor ads, or searching transcript/comment corpora you have already synced. It is the right choice whenever credit economics matter — its thread routing, sweep budgets, and pre-flight estimates exist so agents never spend blind.
Do not use this CLI for:
These capabilities aren't available in any other tool for this API.
comments thread — Fetch one post's complete comment threads, automatically picking the cheaper route between the 15-credit flat include_replies call and 1-credit per-comment reply calls (don't trust child_comment_count to decide: it's unreliable). By default only the first page of top-level comments is fetched and truncated: true reports when more exist; pass --max-credits N to keep traversing further pages under a credit budget that gates every paid call (the envelope's note says why a traversal stopped).
Reach for this when you need every reply on a post without doing credit arithmetic by hand.
scrape-creators-pp-cli comments thread https://www.instagram.com/reel/C8rKmYvsrck --agent
scrape-creators-pp-cli comments thread https://www.instagram.com/reel/C8rKmYvsrck --max-credits 60 --agentcomments coverage — Rank synced posts by how many comments the API reported versus how many actually landed in your local store — ground truth where the API's child_comment_count is unreliable as a thread filter.
Reach for this after a sweep to find which posts are silently missing their replies.
scrape-creators-pp-cli comments coverage bracken.design --agentcomments sweep — Pull recent posts for a handle and their comments in one command, stopping cleanly at a credit budget you set.
The one-command version of a multi-hundred-post comment-mining ritual, budget-gated.
scrape-creators-pp-cli comments sweep bracken.design --since 7d --max-credits 200 --agentaccount estimate — Project the credit cost of a planned run against your live balance and exit non-zero if it would exhaust the budget.
Run this before any bulk sweep so an agent never burns the balance mid-pipeline.
scrape-creators-pp-cli account estimate --posts 950 --with-replies flat --agentaccount budget — See how fast you're spending API credits and how many days remain at the current pace.
Check runway before committing to a new recurring pipeline.
scrape-creators-pp-cli account budget --agentcreator find — Given one handle, see which of 12 creator platforms the creator is on with follower counts side-by-side.
Start any collab qualification here before pulling per-platform detail.
scrape-creators-pp-cli creator find mkbhd --agentcreator compare — Compare two or more creators side-by-side on follower count, engagement rate, and content volume.
Strip vanity follower counts out of a collab decision.
scrape-creators-pp-cli creator compare mkbhd mrwhosetheboss --agentcontent spikes — Surface the videos that performed far above a creator's own baseline — the ones that actually went viral.
Find outlier content without eyeballing hundreds of posts.
scrape-creators-pp-cli content spikes mkbhd --platform youtubetrends triangulate — Snapshot a hashtag or topic across platforms in one call to see which platform it is biggest on.
Decide where to publish before creating the content.
scrape-creators-pp-cli trends triangulate "matcha" --agenttranscripts search — FTS5 full-text search across every platform transcript you've synced — nine resource types spanning YouTube, TikTok, Instagram, Facebook, LinkedIn, Rumble, and more.
Search transcripts you already paid for instead of re-fetching them.
scrape-creators-pp-cli transcripts search "pricing objection" --limit 10ads monitor — Snapshot a brand's live ads across Facebook, TikTok, Google, and LinkedIn ad libraries; on rerun, diff new ads versus ones that disappeared.
Rerun weekly and read only the delta of a competitor's ad activity.
scrape-creators-pp-cli ads monitor nike --agentcomments search — Full-text search across every synced comment and reply, offline.
Mine questions and complaints from comments you already pulled without spending credits.
scrape-creators-pp-cli comments search "refund" --limit 20creator track — Append a follower snapshot per run on a chosen platform, then read the growth trajectory over time.
Track a partner's growth on a schedule you control.
scrape-creators-pp-cli creator track mkbhd --platform instagramcreator tagged — Snapshot the posts a creator or brand is tagged in and diff new mentions on rerun.
Weekly UGC check for a client brand without re-reading the full list.
scrape-creators-pp-cli creator tagged bracken.design --agentaccount — Manage account
scrape-creators-pp-cli account list — Returns the number of API credits remaining on your Scrape Creators account.scrape-creators-pp-cli account list-getapiusage — Returns a paginated list of your API requests, including the endpoint called, status code, credits used, and timestamp.scrape-creators-pp-cli account list-getdailyusagecount — Returns aggregated daily usage statistics for the last 30 daysscrape-creators-pp-cli account list-getmostusedroutes — Returns your top 20 most called API endpoints ranked by call count, along with total credits consumed per endpoint.amazon — Manage amazon
scrape-creators-pp-cli amazon — Scrapes a creator's Amazon Shop page by URL, returning their storefront profile and product collections.apple-music — Scrape Apple Music artists, songs, albums, and search results
scrape-creators-pp-cli apple-music list — Retrieves public Apple Music album details, including title, artist, artwork, release info, tracksscrape-creators-pp-cli apple-music list-applemusic — Retrieves public Apple Music artist details, including artwork, editorial notes, top songs, albums, music videosscrape-creators-pp-cli apple-music list-applemusic-2 — Searches Apple Music and returns public result sections for artists, albums, songs, playlists, stationsscrape-creators-pp-cli apple-music list-applemusic-3 — Retrieves public Apple Music song details by id or URL. Album track URLs with an i= song id are supported.bluesky — Get Bluesky posts and profile info
scrape-creators-pp-cli bluesky list — Fetches a single Bluesky post by URL, returning the post's record text, author info, embed content, replyCountscrape-creators-pp-cli bluesky list-profile — Retrieves a Bluesky user's public profile including handle, displayName, avatar, description, followersCountscrape-creators-pp-cli bluesky list-user — Fetches a paginated feed of posts from a Bluesky user, returning each post's uri, record text, author infodetect-age-gender — Manage detect age gender
scrape-creators-pp-cli detect-age-gender — Uses AI to analyze a creator's profile photo and estimate their age and gender.facebook — Get public Facebook profiles and posts
scrape-creators-pp-cli facebook create — Fetches all ads currently running for a specific company from the Meta Ad Library.scrape-creators-pp-cli facebook create-adlibrary — Searches the Meta Ad Library by keyword and returns matching ads.scrape-creators-pp-cli facebook list — Get the events of a city. Check out this [link](https://www.facebook.scrape-creators-pp-cli facebook list-adlibrary — Retrieves detailed information about a specific Facebook ad by its ID or URL.scrape-creators-pp-cli facebook list-adlibrary-2 — Retrieves a transcript for a single Facebook Ad Library video ad by ID or URL.scrape-creators-pp-cli facebook list-adlibrary-3 — Fetches all ads currently running for a specific company from the Meta Ad Library.scrape-creators-pp-cli facebook list-adlibrary-4 — Searches the Meta Ad Library by keyword and returns matching ads.scrape-creators-pp-cli facebook list-adlibrary-5 — Searches for companies by name in the Meta Ad Library and returns their page IDs for use with other ad libraryscrape-creators-pp-cli facebook list-event — Get a specific event by its URL or idscrape-creators-pp-cli facebook list-events — Search for events by name.scrape-creators-pp-cli facebook list-group — Fetches the public information shown on a Facebook group's About page, including its description, privacy and visibilityscrape-creators-pp-cli facebook list-group-2 — Fetches posts from a public Facebook group, limited to 3 posts per page due to API limitations.scrape-creators-pp-cli facebook list-marketplace — Fetches details for a Facebook Marketplace item by item id or Marketplace item URL, including title, description, pricescrape-creators-pp-cli facebook list-marketplace-2 — Searches Facebook Marketplace listings by keyword and lat/lng. Supports pagination with the returned cursor.scrape-creators-pp-cli facebook list-marketplace-3 — Searches Facebook Marketplace locations/cities and returns coordinates you can use with the Marketplace Search endpoint.scrape-creators-pp-cli facebook list-post — Retrieves a single public Facebook post or reel by URL.scrape-creators-pp-cli facebook list-post-2 — Fetches comments from a Facebook post or reel with cursor-based pagination.scrape-creators-pp-cli facebook list-post-3 — Extracts the transcript text from a Facebook video post or reel.scrape-creators-pp-cli facebook list-post-4 — Get the replies to a comment.scrape-creators-pp-cli facebook list-profile — Retrieves public Facebook page details including category, address, email, phone, website, services, priceRange, ratingscrape-creators-pp-cli facebook list-profile-2 — Get the events of a public Facebook pagescrape-creators-pp-cli facebook list-profile-3 — Fetches photos from a public Facebook page with pagination support.scrape-creators-pp-cli facebook list-profile-4 — Returns publicly visible Facebook profile posts, limited to 3 posts per page due to API limitations.scrape-creators-pp-cli facebook list-profile-5 — Fetches up to 10 reels per request from a public Facebook page.github — Scrape GitHub profiles, repositories, and public activity
scrape-creators-pp-cli github list — Retrieves public metadata for one GitHub repository, including owner, description, language, stars, forks, topicsscrape-creators-pp-cli github list-trending — Scrapes GitHub's public Trending developers page.scrape-creators-pp-cli github list-trending-2 — Scrapes GitHub's public Trending repositories page.scrape-creators-pp-cli github list-user — Retrieves public GitHub user details including name, bio, avatar, company, location, blog, follower countsscrape-creators-pp-cli github list-user-2 — Retrieves GitHub profile contribution activity for a user from the public profile activity timeline.scrape-creators-pp-cli github list-user-3 — Retrieves the public GitHub contribution graph for a user and yearscrape-creators-pp-cli github list-user-4 — Retrieves public GitHub followers for a user. Each follower includes login, avatar, user URL, type, and GitHub IDs.scrape-creators-pp-cli github list-user-5 — Retrieves public accounts followed by a GitHub user.scrape-creators-pp-cli github list-user-6 — Searches public GitHub pull requests authored by a user using GitHub's public search index.scrape-creators-pp-cli github list-user-7 — Retrieves a user's public repositories with repo metadata like description, language, stars, forks, topics, licensegoogle — Scrape Google search results
scrape-creators-pp-cli google list — Retrieves detailed information about a specific Google ad including advertiserId, creativeId, format, firstShownscrape-creators-pp-cli google list-adlibrary — Searches the Google Ad Transparency Library for advertisers by name.scrape-creators-pp-cli google list-company — Fetches public ads for a company from the Google Ad Transparency Library by domain or advertiser_id.scrape-creators-pp-cli google list-search — Performs a Google search and returns organic results with url, title, and description for each result.instagram — Gets Instagram profiles, posts, and reels
scrape-creators-pp-cli instagram list — Fetches a lightweight Instagram profile summary by user ID, returning username, full name, biographyscrape-creators-pp-cli instagram list-audio — Fetches the reels Instagram exposes for an audio page like instagram.com/reels/audio/{audio_id}/.scrape-creators-pp-cli instagram list-media — Generates an AI-powered speech-to-text transcription for an Instagram video post or reel.scrape-creators-pp-cli instagram list-post — Fetches detailed metadata for a single Instagram post or reel by shortcode or URL.scrape-creators-pp-cli instagram list-post-2 — Retrieves comments on a public Instagram post or reel.scrape-creators-pp-cli instagram list-post-3 — Retrieves the public replies to a specific Instagram comment.scrape-creators-pp-cli instagram list-profile — Retrieves public Instagram profile information including biography, bio linksscrape-creators-pp-cli instagram list-reels — Fetches trending reels from Instagram's public instagram.com/reels page.scrape-creators-pp-cli instagram list-reels-2 — Use this when you only want Google-indexed Instagram reels matching a keyword or phrasescrape-creators-pp-cli instagram list-search — Use this for Instagram-native account, hashtag, or place lookup.scrape-creators-pp-cli instagram list-search-2 — Use this when you know the exact hashtag and want Google-indexed public Instagram posts or reels, optional date filtersscrape-creators-pp-cli instagram list-search-3 — Use this to explore an Instagram topic and the posts Instagram curates for it.scrape-creators-pp-cli instagram list-search-4 — Use this for broad creator discovery from keywords found in Google-indexed Instagram profile pages, biosscrape-creators-pp-cli instagram list-user — Returns the raw HTML embed snippet for an Instagram user's profile widget.scrape-creators-pp-cli instagram list-user-2 — Lists all story highlight albums for an Instagram user.scrape-creators-pp-cli instagram list-user-3 — Returns a paginated list of a user's public Instagram reels (short-form videos).scrape-creators-pp-cli instagram list-user-4 — Returns up to 10 public posts per page from an Instagram user's Tagged tab.scrape-creators-pp-cli instagram list-user-5 — Returns a paginated feed of a user's public Instagram posts, including reels, photos, videos, and carousels.scrape-creators-pp-cli instagram list-user-6 — Fetches the full contents of a specific Instagram story highlight album by its ID.kick — Scrape Kick clips
scrape-creators-pp-cli kick — Fetches detailed data for a Kick clip by URL, including video, metadata, and channel info.komi — Scrape Komi pages
scrape-creators-pp-cli komi — Scrapes a Komi page by URL, extracting the creator's profile, social links, and featured content.kwai — Scrape Kwai profiles, posts, and user feeds
scrape-creators-pp-cli kwai list — Fetches public Kwai post details including caption, media URLs, cover images, counts, author info, and music metadata.scrape-creators-pp-cli kwai list-profile — Fetches public Kwai profile data including username, bio, avatar, verification status, gender, and public counts.scrape-creators-pp-cli kwai list-user — Fetches a paginated list of public Kwai posts for a user, including captions, media URLs, covers, counts, author infolinkbio — Scrape Linkbio (lnk.bio) pages
scrape-creators-pp-cli linkbio — Scrapes a Linkbio (lnk.bio) page by URL, extracting the creator's profile and all their links.linkedin — Scrape LinkedIn
scrape-creators-pp-cli linkedin list — Retrieves detailed information about a specific LinkedIn ad by URL.scrape-creators-pp-cli linkedin list-ads — Searches the LinkedIn Ad Library by company name, keyword, or companyId with optional country and date filters.scrape-creators-pp-cli linkedin list-company — Fetches a LinkedIn company page with details including name, description, logo, cover image, slogan, locationscrape-creators-pp-cli linkedin list-company-2 — Retrieves paginated posts from a LinkedIn company page, including each post's URL, ID, publication datescrape-creators-pp-cli linkedin list-post — Fetches a single LinkedIn post or article, returning the title, headline, full description textscrape-creators-pp-cli linkedin list-post-2 — Fetches the transcript from a LinkedIn post video when LinkedIn exposes one publicly.scrape-creators-pp-cli linkedin list-profile — Retrieves a person's public LinkedIn profile data, including their name, photo, location, follower count (followers)scrape-creators-pp-cli linkedin list-search — Finds public LinkedIn posts, feed updates, and Pulse articles by keyword using Google Searchlinkme — Get Linkme profile info
scrape-creators-pp-cli linkme — Retrieves a Linkme profile by URL, including identity, social links, and contact details.linktree — Scrape Linktree pages
scrape-creators-pp-cli linktree — Scrapes a Linktree page by URL, extracting the creator's profile and all their links.pillar — Scrape Pillar pages
scrape-creators-pp-cli pillar — Scrapes a Pillar page by URL, extracting the creator's profile, social links, and products.pinterest — Scrape Pinterest pins
scrape-creators-pp-cli pinterest list — Fetches a paginated list of pins from a Pinterest board by URL, returning each pin's id, description, title, imagesscrape-creators-pp-cli pinterest list-pin — Fetches detailed information about a single Pinterest pin by URL, returning title, description, link, dominantColorscrape-creators-pp-cli pinterest list-search — Searches Pinterest for pins matching a query, returning results with id, url, title, description, images, link, domainscrape-creators-pp-cli pinterest list-user — Fetches a paginated list of boards for a Pinterest user, returning each board's name, url, description, pin_countreddit — Scrape Reddit posts and comments
scrape-creators-pp-cli reddit create — Retrieves comments and post details from a Reddit post by URL.scrape-creators-pp-cli reddit list — Searches across all of Reddit for posts matching a query.scrape-creators-pp-cli reddit list-post — Retrieves comments and post details from a Reddit post by URL.scrape-creators-pp-cli reddit list-post-2 — Gets the transcript from a Reddit video post or direct v.redd.it URL when Reddit exposes a VTT caption file.scrape-creators-pp-cli reddit list-subreddit — Fetches posts from a subreddit with sorting and filtering options.scrape-creators-pp-cli reddit list-subreddit-2 — Retrieves metadata about a subreddit by name or URL. The subreddit name must be case-sensitive.scrape-creators-pp-cli reddit list-subreddit-3 — Searches within a specific subreddit for posts, comments, and media matching a query.rumble — Scrape Rumble search, videos, transcripts, and channel videos
scrape-creators-pp-cli rumble list — Searches Rumble videos by keyword.scrape-creators-pp-cli rumble list-channel — Gets videos from a Rumble channel by handle or URL.scrape-creators-pp-cli rumble list-video — Gets Rumble video details by URL.scrape-creators-pp-cli rumble list-video-2 — Gets all top level comments for a Rumble video by URL.scrape-creators-pp-cli rumble list-video-3 — Gets a Rumble video's transcript when captions are available.snapchat — Scrape Snapchat user profiles and their stories
scrape-creators-pp-cli snapchat list — Retrieves a Snapchat user's public profile by handle, including identity, stories, and spotlight content.scrape-creators-pp-cli snapchat list-spotlight — Fetches public data for a Snapchat Spotlight video by URL.scrape-creators-pp-cli snapchat list-spotlight-2 — Fetches public comments from Snapchat's Spotlight comments API by URL.soundcloud — Scrape SoundCloud playlists and tracks
scrape-creators-pp-cli soundcloud list — Fetches detailed information about a SoundCloud artist by its handle or URL.scrape-creators-pp-cli soundcloud list-artist — Fetches tracks/songs for a SoundCloud artist by handle or URL.scrape-creators-pp-cli soundcloud list-track — Fetches detailed information about a SoundCloud track/song by URL.spotify — Scrape Spotify artists, songs, and albums
scrape-creators-pp-cli spotify list — Retrieves detailed information about a Spotify album by its id or URL, including album metadata, artists, release datescrape-creators-pp-cli spotify list-artist — Retrieves detailed information about a Spotify artist by their handle, including name, followers count, genresscrape-creators-pp-cli spotify list-podcast — Retrieves detailed information about a Spotify podcast by its id or URL.scrape-creators-pp-cli spotify list-podcast-2 — Returns episodes for a Spotify podcast. Pass the cursor returned by a response to get the next page.scrape-creators-pp-cli spotify list-search — Search Spotify for tracks, artists, albums, episodes, podcasts, and audiobooks.scrape-creators-pp-cli spotify list-track — Retrieves detailed information about a Spotify track by its id or URL, including track metadata, artists, album infothreads — Get Threads posts
scrape-creators-pp-cli threads list — Fetches a single Threads post by URL, returning the post's caption, like_count, view_counts, reshare_countscrape-creators-pp-cli threads list-profile — Retrieves a Threads user's public profile including username, full_name, biography, profile_pic_url, follower_countscrape-creators-pp-cli threads list-search — Searches Threads for posts matching a keyword, returning up to 10 results with caption text, like_count, reshare_countscrape-creators-pp-cli threads list-search-2 — Searches for Threads users by username, returning matching profiles with username, full_name, profile_pic_urlscrape-creators-pp-cli threads list-user — Fetches the most recent posts from a Threads user, returning id, caption text, code, like_count, reshare_counttiktok — Scrape TikTok profiles, videos, and more
scrape-creators-pp-cli tiktok list — Fetches TikTok's trending/For You feed for a given region — useful for discovering viral content and what's currentlyscrape-creators-pp-cli tiktok list-adlibrary — Fetches one TikTok ad by ID or URL. It first checks Creative Center Top Ads (ads.tiktok.scrape-creators-pp-cli tiktok list-adlibrary-2 — Searches TikTok's public Ads Library by advertiser name or keyword.scrape-creators-pp-cli tiktok list-collection — Fetches the videos saved in a public TikTok collection, which TikTok also calls a playlist. Pass the collection URL.scrape-creators-pp-cli tiktok list-creators — Discovers trending and popular TikTok creators, filterable by follower count range, creator countryscrape-creators-pp-cli tiktok list-live — Gets curated room-level info for a TikTok live using TokAPI's live info endpoint.scrape-creators-pp-cli tiktok list-product — Fetches full details for a specific US TikTok Shop product by its URL, including stock levels and affiliate videos.scrape-creators-pp-cli tiktok list-profile — Fetches public profile data for a TikTok user by their handle or user_id — useful for looking up a creator's identityscrape-creators-pp-cli tiktok list-profile-2 — Returns the TikTok region code for a public profile, like US for United States or MX for Mexico.scrape-creators-pp-cli tiktok list-profile-3 — Fetches videos posted by a TikTok userscrape-creators-pp-cli tiktok list-search — Searches for TikTok videos under a specific hashtag — useful for finding content by topic or trend.scrape-creators-pp-cli tiktok list-search-2 — Searches for TikTok videos by keyword or phrase — the general video search across all of TikTok.scrape-creators-pp-cli tiktok list-search-3 — Gets the autocomplete suggestions TikTok shows while someone is typing in search.scrape-creators-pp-cli tiktok list-search-4 — Searches TikTok's 'Top' results by query — returns both videos and photo carouselsscrape-creators-pp-cli tiktok list-search-5 — Searches for TikTok users by keyword or name — useful for finding creators or accounts matching a query.scrape-creators-pp-cli tiktok list-shop — Lists all products from a specific TikTok Shop store by its URL.scrape-creators-pp-cli tiktok list-shop-2 — Searches TikTok Shop for products matching a keyword query.scrape-creators-pp-cli tiktok list-shop-3 — Fetches customer reviews for a TikTok Shop product by URL or product_id.scrape-creators-pp-cli tiktok list-song — Fetches detailed metadata for a specific TikTok sound or song by its clipId.scrape-creators-pp-cli tiktok list-song-2 — Fetches TikTok videos that use a specific sound or song, identified by its clipId.scrape-creators-pp-cli tiktok list-user — Retrieves audience demographic data for a TikTok user, showing where their followers are located by country.scrape-creators-pp-cli tiktok list-user-2 — Retrieves the follower list of a TikTok account by handle or user_id — useful for seeing who follows a creator orscrape-creators-pp-cli tiktok list-user-3 — Retrieves the following list — accounts that a TikTok user follows — by their handle.scrape-creators-pp-cli tiktok list-user-4 — Checks if a TikTok user is currently live streaming and retrieves their live room details.scrape-creators-pp-cli tiktok list-user-5 — Fetches products featured in a TikTok user's public showcase — the products a creator promotes on their profile.scrape-creators-pp-cli tiktok list-video — Fetches detailed data for a single TikTok video by URL, including its metadata, engagement statsscrape-creators-pp-cli tiktok list-video-2 — Fetches comments on a TikTok video by URL — useful for reading audience reactions, replies, and engagement.scrape-creators-pp-cli tiktok list-video-3 — Extracts the transcript, captions, or subtitles from a TikTok video by URL.scrape-creators-pp-cli tiktok list-video-4 — Fetches replies to a specific TikTok comment by its ID.truthsocial — Manage truthsocial
scrape-creators-pp-cli truthsocial list — Fetches a single Truth Social post by URL, returning text, id, created_at, url, content, account detailsscrape-creators-pp-cli truthsocial list-profile — Retrieves a Truth Social user's public profile including display_name, username, avatar, header, followers_countscrape-creators-pp-cli truthsocial list-user — Fetches a paginated list of posts from a Truth Social user, returning text, id, created_at, url, content, account infotwitch — Scrape Twitch clips
scrape-creators-pp-cli twitch list — Fetches detailed data for a Twitch clip by URL, including metadata and direct video URLs.scrape-creators-pp-cli twitch list-profile — Retrieves a Twitch user's public profile by handle, including identity, social links, and content.scrape-creators-pp-cli twitch list-user — Fetches a user's schedule by handle, returning a list of scheduled events with start time, end time, title, descriptionscrape-creators-pp-cli twitch list-user-2 — Fetches a list of videos (100 max) for a Twitch user, returning each video's id, slug, url, embedURL, title, viewCounttwitter — Get Twitter profiles, tweets, followers and more
scrape-creators-pp-cli twitter list — Retrieves details about a Twitter/X Community by URL.scrape-creators-pp-cli twitter list-community — Fetches tweets posted within a Twitter/X Community by URL.scrape-creators-pp-cli twitter list-profile — Retrieves a Twitter user's profile by handle, including account metadata and statistics.scrape-creators-pp-cli twitter list-tweet — Retrieves detailed information about a specific tweet by URL, including the author's profile and engagement metrics.scrape-creators-pp-cli twitter list-tweet-2 — Extracts the transcript from a Twitter video tweet using AI-powered transcription.scrape-creators-pp-cli twitter list-usertweets — Fetches tweets from a Twitter user's profile by handle.youtube — Scrape YouTube channels, videos, and more
scrape-creators-pp-cli youtube list — Retrieves YouTube channel profile data including name, avatar images, subscriber count (subscribers)scrape-creators-pp-cli youtube list-channel — Fetches community posts from a YouTube channel's Posts tab, including post ID, URL, content, images, attached videoscrape-creators-pp-cli youtube list-channel-2 — Fetches live streams and past streams from a YouTube channel's Live tab, including title, URL, thumbnail, view countscrape-creators-pp-cli youtube list-channel-3 — Fetches playlists from a YouTube channel's Playlists tab, including playlist ID, title, thumbnail, video countscrape-creators-pp-cli youtube list-channel-4 — Retrieves a paginated list of short-form videos (Shorts) from a YouTube channel, including each short's title, URLscrape-creators-pp-cli youtube list-channelvideos — Fetches a paginated list of videos uploaded by a YouTube channel, including each video's title, URL, thumbnailscrape-creators-pp-cli youtube list-communitypost — Retrieves the full details of a YouTube community post, including its text content, attached images, like countscrape-creators-pp-cli youtube list-playlist — Retrieves all videos in a YouTube playlist, including the playlist title, owner info, total video countscrape-creators-pp-cli youtube list-search — Searches YouTube by keyword query and returns matching videos, channels, playlists, shorts, shelves, and live streams.scrape-creators-pp-cli youtube list-search-2 — Searches YouTube for content matching a specific hashtag and returns matching videos with title, URL, thumbnailscrape-creators-pp-cli youtube list-shorts — Fetches approximately 48 currently trending YouTube Shorts (viral/popular short-form videos) per callscrape-creators-pp-cli youtube list-video — Fetches full details for a YouTube video or short, including title, description, thumbnail, view count (views)scrape-creators-pp-cli youtube list-video-2 — Fetches comments and replies from a YouTube video, including each comment's text content, author details, like countscrape-creators-pp-cli youtube list-video-3 — Experimental endpoint.scrape-creators-pp-cli youtube list-video-4 — Retrieves the captions, subtitles, or transcript of a YouTube video or Short.scrape-creators-pp-cli youtube list-video-5 — Fetches replies to a specific comment on a YouTube video, including each reply's text content, author details (nameWhen you know what you want to do but not which command does it, ask the CLI directly:
scrape-creators-pp-cli which "<capability in your own words>"which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
scrape-creators-pp-cli comments thread <post-url> --agent --select comments.text,comments.replies.textFetches every top-level comment and reply with cost-aware routing, then narrows the envelope to just the text fields an agent needs.
scrape-creators-pp-cli comments sweep <handle> --since 7d --max-credits 200 --agentPulls the week's posts and their comments, stopping cleanly when the credit budget is hit.
scrape-creators-pp-cli comments coverage <handle> --agentRanks synced posts by missing-thread gap so reply credits go only where threads are incomplete.
scrape-creators-pp-cli comments search "delivery" --limit 20FTS5 search over the synced corpus — zero credits.
scrape-creators-pp-cli creator find <handle> --agent && scrape-creators-pp-cli creator compare <handle> <rival> --agentPresence matrix first, then engagement comparison to strip vanity followers.
Run scrape-creators-pp-cli auth setup to print the URL and steps for getting a key (add --launch to open the URL). Then set:
export SCRAPECREATORS_API_KEY="<your-key>"To persist credentials, use scrape-creators-pp-cli auth set-token <token>. Stored secrets live in credentials.toml under the data dir, not in config.toml.
Run scrape-creators-pp-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
scrape-creators-pp-cli account list --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Explicit retries — use --idempotent only when an already-existing create should count as success
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.
Agents should treat the CLI's path resolver as part of the runtime contract:
Use --home <dir> for one invocation, or set SCRAPE_CREATORS_HOME=<dir> to relocate all four path kinds under one root.
Use per-kind env vars only when a specific kind must diverge: SCRAPE_CREATORS_CONFIG_DIR, SCRAPE_CREATORS_DATA_DIR, SCRAPE_CREATORS_STATE_DIR, SCRAPE_CREATORS_CACHE_DIR.
Resolution order is per-kind env var, --home, SCRAPE_CREATORS_HOME, XDG (XDG_CONFIG_HOME, XDG_DATA_HOME, XDG_STATE_HOME, XDG_CACHE_HOME), then platform defaults.
config contains settings like config.toml and profiles. data contains credentials.toml, data.db, cookies, and auth sidecars. state contains persisted queries, jobs, and teach.log. cache contains regenerable HTTP/cache files.
Stored secrets live in credentials.toml under the data dir. Existing legacy config.toml secrets are read for compatibility and leave config.toml on the first auth write.
Run scrape-creators-pp-cli doctor --fail-on warn to surface path and credential-location warnings. agent-context exposes a schema v4 paths block for agents that need the resolved dirs.
For MCP, pass relocation through the MCP host config. The MCP binary does not inherit CLI flags:
{
"mcpServers": {
"scrape-creators": {
"command": "scrape-creators-pp-mcp",
"env": {
"SCRAPE_CREATORS_HOME": "/srv/scrape-creators"
}
}
}
}Fleet precedence: an inherited per-kind env var overrides an explicit --home for that kind. Use SCRAPE_CREATORS_HOME or per-kind vars as durable fleet levers, and use --home only for a single invocation. Relocation is not reversible by unsetting env vars; move files manually before clearing SCRAPE_CREATORS_HOME, or doctor will not find credentials left under the former root.
This CLI ships a self-capturing learning loop. The CLI does its own bookkeeping: every invocation is journaled locally, a failed flag followed by a corrected retry auto-derives a flag_alias candidate, and a teach on a query family without a playbook auto-synthesizes a playbook_candidate from the session's journal. Your job is judgment only: recall first, act on surfaced candidates, teach the final answer, playbook amend when you observe a correction. You never record failures by hand.
recall before any discoveryBefore list/search/drill commands on a new user question, run:
scrape-creators-pp-cli recall "<user's question>" --agentThe response envelope:
{
"query": "...",
"normalized": "<normalized form>",
"query_entities": ["..."],
"found": true | false,
"match_score": 0.0,
"results": [
{ "resource_id": "...", "resource_type": "...", "venue": "...",
"confidence": 2, "entity_match": "exact|partial|unknown",
"source": "taught|preseed|pattern", "warnings": ["..."] }
],
"mismatches": [ /* only when --debug-mismatches */ ],
"warnings": [ /* top-level */ ],
"candidates": [
{ "id": 12, "class": "flag_alias | playbook_candidate",
"summary": "...", "sightings": 3, "last_seen": "...",
"rationale": "...",
"next_action": ["<trial command>", "scrape-creators-pp-cli learnings confirm 12"] }
],
"playbook": {
"query_family": "...",
"playbook": {
"steps": [ { "cmd": "<command with {slot} substitution>", "purpose": "..." } ],
"entity_slots": ["$ENTITY"],
"expected_tool_calls": 3
},
"slots_resolved": { "$ENTITY": { "token": "<live token>", "canonical": "<canonical>" } },
"notes": "<workarounds + gotchas for this query family>"
},
"notes": "<duplicate surface for non-playbook callers>"
}Empty-store short-circuit: if the store has no learnings, playbooks, or candidates yet (recall finds nothing and learnings list and learnings candidates are both empty), skip recall for the rest of this session instead of taxing every query; resume recall-first once something has been taught.
Read candidates, playbook, notes, results[0], and warnings in that order:
if Candidates present (warnings include "candidates_present"):
-> candidates are try-then-confirm, never facts. Follow each candidate's
two-step next_action verbatim: run the trial command first, then run
`learnings confirm <id>` only after the trial verified the behavior.
Reject a wrong candidate with `learnings reject <id>`.
-> NEVER re-teach something recall surfaced as a candidate; confirm or
reject that candidate instead of teaching a duplicate.
-> candidates ride alongside playbooks and resource hits, not instead of
them; continue with the branches below after acting on them.
if Playbook present:
-> READ Playbook.notes verbatim FIRST (workarounds + gotchas the CLI surface doesn't expose)
-> replay Playbook.steps in order, substituting Playbook.slots_resolved entries
for the entity slot tokens. If a step's slot is unresolved, fall back to
discovery for that step only.
-> the Playbook's expected_tool_calls is a budget; if you find yourself running
materially more, record the divergence via `scrape-creators-pp-cli playbook amend`
at end-of-session.
elif Notes present (no Playbook):
-> read Notes verbatim before any discovery step; they carry known gotchas
for this query family even when no structured choreography exists yet.
elif Found AND Results[0].EntityMatch == "exact" AND Results[0].Confidence >= 2:
-> skip discovery; fetch live data for Results[*].ResourceID in parallel
elif Found AND Results[0].EntityMatch == "partial":
-> candidate hint, NOT a hit; read the resource title to validate before trusting
elif (any row in Mismatches[] when --debug-mismatches was passed):
-> treat as cold start; the stored learning is for a different entity
(different canonical resolved from query_entities)
else: // Found == false, no playbook, no notes
-> cold start; run discovery normally; teach the answer afterward (Step 4).
If the family has no playbook yet, that teach auto-synthesizes a
playbook candidate from this session's journal - you do not need to
record one by hand.Playbook and Notes are orthogonal to the per-resource path. A recall response can carry both a Playbook AND a Results[] hit - use both: the Playbook tells you which choreography to run; the resource hits short-circuit specific steps. Default to skipping mismatches; pass --debug-mismatches only when investigating cold-start surprises.
Candidate judgment details: learnings confirm <id> prints the candidate's full payload before materializing it - check that the printed payload matches the behavior you verified. learnings reject <id> tombstones the derivation signature so the same candidate does not resurface. The envelope carries only the few candidates worth acting on now; scrape-creators-pp-cli learnings candidates lists the full open set.
Graceful degradation: if learnings confirm is an unknown command, you are driving an older binary - ignore the candidates guidance and follow the rest of the protocol.
warningslow_confidence: row exists at confidence<2. Treat as a hint, not a skip-discovery hit.resource_not_in_store: the local store doesn't have the resource the learning points at. The match validator couldn't classify entities — direct-fetch and re-evaluate.cross_alias_match (per-result): the row was taught under a different alias and matched the live query's canonical via entity_lookups (e.g., a "USA" teach satisfying a "United States" recall). Trust the resource_id.similar_shape_different_entity:<canonical> (top-level): a structurally matching row exists but its canonical entity differs from the live query's. Treated as cold start; the warning carries the conflicting canonical as a hint, but the row is NOT promoted into Results.ambiguous_alias (top-level): a single query entity resolved to multiple canonicals (e.g., "Cards" → Arizona Cardinals + St. Louis Cardinals). Surface the ambiguity from context before committing to a resource.candidates_present (top-level): the envelope carries a candidates section. Handle it via the candidates branch in Step 2 before anything else.lookup_refresh_available (top-level): an entity in the query has no lookup row yet, but synced data could provide one. Run scrape-creators-pp-cli sync to refresh entity lookups.no_learnings_for_query_family: the table had no rows above the Jaccard floor. Pure cold start.teach & after finalizing your response - alwaysTeaching is unconditional. After resolving a query the store could not answer, background-teach the final resource mapping - no call-count threshold, no judging whether it was "worth" learning. The teach is the anchor of the loop: it triggers playbook synthesis for a family without a playbook, and same-referent phrasings fold into one family so near-duplicate teaches do not fragment the store. Fire it after assembling your user-facing response but BEFORE emitting it, with a shell & so the call returns immediately:
scrape-creators-pp-cli teach --query "<user's question>" --resource-type <type> --resource <id1> --resource <id2>
# (append shell `&` to background it)Silent on success. Errors only land in teach.log under the resolved state dir. Teach the most specific resource - if the user asked a broad question and you walked through parent records to find the specific answer, teach the leaf id, not the parent. The CLI uses seeded entity_lookups for cross-alias resolution at recall time, so a teach under one alias (e.g., "Niners") satisfies future queries under another alias (e.g., "49ers", "San Francisco") automatically.
PII rule: teach the structural question with identifiers stripped - never include names, emails, phone numbers, account ids, or other personal identifiers in taught queries or notes. The CLI scans teach queries for obvious email/phone shapes and warns, but does not block; strip before teaching rather than relying on the warning.
You do not need to decide whether a session "deserves" a playbook: a teach on a family without one auto-synthesizes a playbook_candidate from the session's journal, and the next session judges it via confirm/reject. Attach explicit playbook flags only when you already hold choreography worth recording verbatim - workarounds the CLI didn't surface (silently-dropped flags, undocumented params, pagination tricks, payload gotchas). Prefer the integrated one-call form - record the resource learning and the playbook in the same teach invocation:
# Common case: record both the resource learning AND the playbook in one call.
scrape-creators-pp-cli teach \
--query "<user's question>" \
--resource <id> \
--resource-type <type> \
--playbook-file ~/playbooks/<shape>.json \
--playbook-notes-file ~/playbooks/<shape>-notes.md
# (append shell `&` to background it)
# Alternate: playbook-only (no resource to record alongside).
scrape-creators-pp-cli teach-playbook \
--query "<user's question>" \
--playbook-file ~/playbooks/<shape>.json \
--notes-file ~/playbooks/<shape>-notes.mdPlaybook files are JSON with steps, entity_slots, expected_tool_calls. Notes files are markdown carrying the gotchas verbatim. File-free callers (MCP-only agents) pass the same content inline: --playbook-json and --playbook-notes on the integrated teach form, --playbook-json and --notes on teach-playbook. On the integrated teach form, the playbook flags are optional - omit them entirely for a resource-only teach. On the standalone teach-playbook form, at least one of the playbook and notes flags must be set; both empty is rejected. Playbooks are keyed on the structural query family (entities stripped) so a recipe taught from one entity-shaped query applies to every other query of the same shape, with slots_resolved binding the live query's canonical at recall time.
When you DO find a playbook on a future recall, treat it as ground truth: replay the steps with slots_resolved substitutions, skip the discovery that the choreography already documents, and read notes before any step.
playbook amend & when your debug response identifies a correctionIf your debug-protocol response identifies a concrete correction the notes or playbook should know — a workaround, an undocumented endpoint shape, a stale field name, observed schema drift, an empty-payload fallback — fire playbook amend BEFORE emitting your user-facing response. Same fire-and-forget posture as teach.
scrape-creators-pp-cli playbook amend \
--query "<exact recall query string>" \
--add-note "<your concrete correction>"
# (append shell `&` to background it)What counts as worth amending: a behavior you OBSERVED this session that future-you would benefit from knowing. Examples worth amending:
{meta, results}, payload nested two levels deeper than the docs claim).What does NOT belong in notes:
The amend command appends to the family's existing notes with a timestamped marker ([amend YYYY-MM-DDTHH:MMZ]: <text>). Multiple amends accumulate; the audit trail is visible. If no playbook exists yet for the family, amend creates a notes-only one (so cold-start corrections still land).
playbook amend notes are designed to potentially flow upstream as shared knowledge in future versions of the Printing Press. Keep them clean of user-identifying content so the upstream-contribution path stays open without retroactive scrubbing:
If a correction is only meaningful with user-specific context, it belongs in a personal note, not in the playbook amend.
scrape-creators-pp-cli learnings stats reports recall hit rate, teach-to-reuse, playbook resolution rate, and candidate confirm/reject counts from the local learn_events table. Rates are null until they have a denominator; everything stays on this machine. Use it to check whether the loop is earning its keep for this CLI.
--no-learn on a single command short-circuits both recall and the teach write path. Use for deterministic agent flows or tests that must not be affected by accumulated learnings.SCRAPE_CREATORS_NO_LEARN=true in the environment globally disables the pipeline.When you (or the agent) notice something off about this CLI, record it:
scrape-creators-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
scrape-creators-pp-cli feedback --stdin < notes.txt
scrape-creators-pp-cli feedback list --json --limit 10Entries are stored locally as feedback.jsonl under the resolved data dir. They are never POSTed unless SCRAPE_CREATORS_FEEDBACK_ENDPOINT is set AND either --send is passed or SCRAPE_CREATORS_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled or recurring agent reuses the same saved flags while providing different input each run.
scrape-creators-pp-cli profile save briefing --json
scrape-creators-pp-cli --profile briefing account list
scrape-creators-pp-cli profile list --json
scrape-creators-pp-cli profile show briefing
scrape-creators-pp-cli profile delete briefing --yesExplicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show scrape-creators-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/developer-tools/scrape-creators/cmd/scrape-creators-pp-mcp@latestclaude mcp add scrape-creators-pp-mcp -- scrape-creators-pp-mcpclaude mcp listwhich scrape-creators-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:scrape-creators-pp-cli <command> [subcommand] [args] --agentscrape-creators-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-scrape-creators of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 76de244
Pp Scrape Creators next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Scrape Creators this skillmvanhorn/printing-press-library | 2.1k | — | ~14k | Automated safety check: Notes | Apache-2.0 | |
| Tmuxtrpc-group/trpc-agent-go | 1.9k | 23 repos | ~868 | Automated safety check: Pass | Apache-2.0 | |
| Ketch1broseidon/ketch | 700 | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Crawl4AI Web Scrapingsmallnest/goclaw | 599 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Boss Zhipin Scrapereatmoreduck/boss-zhipin-scraper | 1.5k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Axyusukebe/ax | 719 | 1 repos | ~918 | Automated safety check: Pass | MIT |
trpc-group/trpc-agent-go
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
1broseidon/ketch
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
smallnest/goclaw
Scrapes sites, handles JavaScript-heavy pages and extracts structured data with Crawl4AI, through its crwl CLI or Python SDK, including schema-based extraction without an LLM.
eatmoreduck/boss-zhipin-scraper
Scrape BOSS直聘 (job listing site) via Chrome CDP. An agent skill from eatmoreduck/boss-zhipin-scraper.
yusukebe/ax
Use the ax CLI instead of curl + throwaway parsing scripts whenever you fetch a URL, explore an unknown web page, or extract structured data from HTML.
Anakin-Inc/anakin
Scrape any website into clean markdown or structured JSON. An agent skill from Anakin-Inc/anakin.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
Categories
Every Scrape Creators endpoint across 28 platforms, with credit-aware comment mining and a local corpus no other Scrape Creators tool has. Pp Scrape Creators is an agent skill from mvanhorn/printing-press-library. Every Scrape Creators endpoint across 28 platforms, with credit-aware comment mining and a local corpus no other Scrape Creators tool has.
Pp Scrape Creators fits situations like: phrases: find which platforms a creator is on; pull the comments and replies from this post; monitor a brands ads; search creator transcripts for a keyword.
Run `npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a claude-code`. Or copy the skill folder (cli-skills/pp-scrape-creators in mvanhorn/printing-press-library) into .claude/skills/pp-scrape-creators in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a codex`. Or copy the skill folder (cli-skills/pp-scrape-creators in mvanhorn/printing-press-library) into .agents/skills/pp-scrape-creators in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-scrape-creators -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-scrape-creators, .gemini/skills/pp-scrape-creators, .github/skills/pp-scrape-creators and .opencode/skills/pp-scrape-creators in your project.
Going by SKILL.md and its folder, Pp Scrape Creators needs the command-line tools its instructions call (go, claude and npx) and credentials named SCRAPECREATORS_API_KEY. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md names 1 domain. In commands or code: instagram.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Scrape Creators is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 14k tokens (SKILL.md is roughly 57k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Scrape Creators: Tmux (trpc-group/trpc-agent-go, 1.9k stars), Ketch (1broseidon/ketch, 700 stars), Crawl4AI Web Scraping (smallnest/goclaw, 599 stars) and Boss Zhipin Scraper (eatmoreduck/boss-zhipin-scraper, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.