Agent skill

Pp Apify

by mvanhorn in mvanhorn/printing-press-library

Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and...

Apache-2.0Auto-check: notesData & Analytics

Install Pp Apify

skills CLI
$ npx skills add mvanhorn/printing-press-library --skill pp-apify -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mvanhorn/printing-press-library pp-apify --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-apify .claude/skills/pp-apify && rm -rf skills-src

Use ~/.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/

Facts

Skill name
pp-apify
GitHub stars
2.1k
Token cost
~6.4k tokens
SKILL.md length
2,988 words
Files
1
Skills in repo
505
Repo updated
First seen
Licence
Apache-2.0

At a glance

Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and...

  • Works in 3 steps: Install via the Printing Press… → Verify: apify-pp-cli --version → Ensure the reported install directory is…
  • Phrases: scrape twitter for AI mentions
  • SKILL.md covers Prerequisites: Install the CLI, When to Use This CLI, Unique Capabilities and Command Reference, plus 10 more sections
  • Calls claude, npx and go; needs APIFY_TOKEN

What it does

Pp Apify is an agent skill from mvanhorn/printing-press-library. Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and... Trigger phrases: scrape twitter for AI mentions, run apify actor, what's new in my reddit scraper, build a newsletter from this week's scrapes, how much did my apify scrapes cost this month, use apify, run apify.

Its SKILL.md is about 6.4k 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. It works with Apify, SQLite, Reddit and X (Twitter). 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.

When your agent uses it

  • Phrases: scrape twitter for AI mentions
  • Run apify actor
  • Whats new in my reddit scraper
  • Build a newsletter from this weeks scrapes

Example prompts

  • “s new in my reddit scraper, build a newsletter from this week”
  • “/pp-apify”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Read, Bash

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and…
  2. Verify: apify-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

What it can do on your machine

Read from SKILL.md and the folder at commit 0fdcc7a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • claude
    • npx
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.apify.com
    • apify.com
    • console.apify.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APIFY_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pp Apify loads about 6.4k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 2,988 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~6.4k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash

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

SKILL.md

The full file from mvanhorn/printing-press-library at commit 0fdcc7a, republished under its Apache-2.0 licence (© mvanhorn). 2,988 words, ~6,374 tokens.

Download SKILL.mdSave it as .claude/skills/pp-apify/SKILL.md (or your agent's skills folder).
name
pp-apify
description
Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and... Trigger phrases: `scrape twitter for AI mentions`, `run apify actor`, `what's new in my reddit scraper`, `build a newsletter from this week's scrapes`, `how much did my apify scrapes cost this month`, `use apify`, `run apify`.
allowed-tools
Read, Bash
author
Kevin Magnan
license
Apache-2.0
argument-hint
<command> [args] | install cli|mcp
<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/developer-tools/apify/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/". -->

Apify — Printing Press CLI

Prerequisites: Install the CLI

This skill drives the apify-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
    bash
    npx -y @mvanhorn/printing-press-library install apify --cli-only
  2. Verify: apify-pp-cli --version
  3. Ensure the reported install directory is on $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):

bash
go install github.com/mvanhorn/printing-press-library/library/developer-tools/apify/cmd/apify-pp-cli@latest

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

When to Use This CLI

Reach for apify-pp-cli when you need to orchestrate multiple Apify Actors as part of a recurring research, scraping, or newsletter pipeline. It's the right tool when you want per-run cost visibility, novel-only output, cross-Actor search, or schedule-as-code. For Actor development (writing your own scrapers), use the official apify-cli; this CLI is for platform operators.

Unique Capabilities

These capabilities aren't available in any other tool for this API.

Local state that compounds
  • run — Run an Actor and emit only items not seen in prior runs of that Actor.

    Reach for this when you need 'what's new since last run' across recurring scrapes for a newsletter or alert workflow.

    bash
    apify-pp run trudax/reddit-scraper --input @sub-list.json --only-new --format markdown
  • search items — Full-text search across every cached dataset from every Actor, normalized into a common schema.

    Use this when you want 'what did anyone say about X this week' without juggling 8 dataset IDs.

    bash
    apify-pp search "model context protocol" --since 7d --actors twitter,reddit,hn --json --select url,title,source_actor
  • digest --offline — Run queries and template renders against the local SQLite copy of past datasets without hitting the API.

    Use this while tuning templates or dedupe heuristics so iteration is free.

    bash
    apify-pp digest --offline --topic AI --since 7d --template draft.tmpl
Cost discipline
  • cost report — Per-run USD cost report joining cached run metadata with the Apify monthly usage endpoint.

    Reach for this whenever the user asks 'why is my Apify bill so high' or 'which Actor costs most per useful item.'

    bash
    apify-pp cost report --since 30d --group-by actor,schedule --json
  • run --max-cost — Pre-flight cost projection from local p50/p90 of past runs for the same Actor; aborts run if projection exceeds budget.

    Use this on any long-tail or untrusted Actor to fail-closed on cost rather than learning about it on the invoice.

    bash
    apify-pp-cli run xquik/x-tweet-scraper --input @xquik-tweets.json --max-cost 0.50 --wait
  • ab run — Run the same input through two competing Actors, normalize via unified schema, report cost-per-novel-item and overlap percentage.

    Reach for this whenever the user wonders 'is the cheaper Actor good enough' before committing to a recurring schedule.

    bash
    apify-pp ab run apidojo/tweet-scraper kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest --input shared.json --judge novelty --json
Newsletter workflows
  • digest — Render a markdown digest from local store: dedupe by URL + title-similarity, rank by engagement+recency+novelty, fill a Go template.

    Use this as the last step of any newsletter / weekly report workflow; output is ready to paste into Beehiiv or pipe to a writer agent.

    bash
    apify-pp digest --topic "AI dev tools" --since 24h --template weekly.tmpl
  • workflow run — Run a YAML-declared workflow that chains run → normalize → novelty → digest → publish across multiple Actors.

    Use this when the user wants a recurring 'fire one command, get the newsletter' pipeline rather than orchestrating Actor calls by hand.

    bash
    apify-pp workflow run ./weekly-newsletter.yaml --json
GitOps
  • schedules apply — Declarative cron + Actor input bundle with terraform-style plan/apply/diff against the live Apify schedule API.

    Reach for this when the user manages 3+ schedules and wants them version-controlled.

    bash
    apify-pp schedule apply ./schedules.yaml --dry-run && apify-pp schedule diff
Repeatability
  • preset save — Capture known-good Actor input JSON from a prior run and replay with overrides.

    Use this to stop hand-rebuilding input JSON every time you re-run a recurring scrape.

    bash
    apify-pp preset save twitter weekly-ai --from-run abc123 && apify-pp call twitter --preset weekly-ai --override startUrls=@new-list.txt

Command Reference

actor-builds — The API endpoints described in this section enable you to manage, and delete Apify Actor builds.

Note that if any returned build object contains usage in dollars, your effective unit pricing at the time of query has been used for computation of this dollar equivalent, and hence it should be used only for informative purposes.

You can learn more about platform usage in the documentation.

  • apify-pp-cli actor-builds delete — Delete the build. The build that is the current default build for the Actor cannot be deleted. Only users with build...
  • apify-pp-cli actor-builds get — Gets a list of all builds for a user. The response is a JSON array of objects, where each object contains basic...
  • apify-pp-cli actor-builds get-actorbuilds — Gets an object that contains all the details about a specific build of an Actor. By passing the optional...

actor-runs — The API endpoints described in this section enable you to manage, and delete Apify Actor runs.

If any returned run object contains usage in dollars, your effective unit pricing at the time of query has been used for computation of this dollar equivalent, and hence it should be used only for informative purposes.

For completed runs, aggregated fields such as stats or dollar usage totals are eventually consistent and update within a few seconds. For values that must match finalized totals, wait about 10 seconds after the run completed, then fetch the run again.

You can learn more about platform usage in the documentation.

  • apify-pp-cli actor-runs delete — Delete the run. Only finished runs can be deleted. Only the person or organization that initiated the run can delete it.
  • apify-pp-cli actor-runs get — Gets a list of all runs for a user. The response is a list of objects, where each object contains basic information...
  • apify-pp-cli actor-runs get-actorruns — This is not a single endpoint, but an entire group of endpoints that lets you retrieve the run or any of its default...
  • apify-pp-cli actor-runs put — This endpoint can be used to update both the run's status message and to configure its general resource access...

actor-tasks — The API endpoints described in this section enable you to create, manage, delete, and run Apify Actor tasks. For more information, see the Actor tasts documentation.

:::note

For all the API endpoints that accept the actorTaskId parameter to specify a task, you can pass either the task ID (e.g. HG7ML7M8z78YcAPEB) or a tilde-separated username of the task's owner and the task's name (e.g. janedoe~my-task).

:::

Some of the API endpoints return run objects. If any such run object contains usage in dollars, your effective unit pricing at the time of query has been used for computation of this dollar equivalent, and hence it should be used only for informative purposes.

You can learn more about platform usage in the documentation.

  • apify-pp-cli actor-tasks delete — Delete the task specified through the actorTaskId parameter.
  • apify-pp-cli actor-tasks get — Gets the complete list of tasks that a user has created or used. The response is a list of objects in which each...
  • apify-pp-cli actor-tasks get-actortasks — Get an object that contains all the details about a task.
  • apify-pp-cli actor-tasks post — Create a new task with settings specified by the object passed as JSON in the POST payload. The response is the full...
  • apify-pp-cli actor-tasks put — Update settings of a task using values specified by an object passed as JSON in the POST payload. If the object does...

acts — Manage acts

  • apify-pp-cli acts delete — Deletes an Actor.
  • apify-pp-cli acts get — Gets the list of all Actors that the user created or used. The response is a list of objects, where each object...
  • apify-pp-cli acts get-actorid — Gets an object that contains all the details about a specific Actor.
  • apify-pp-cli acts post — Creates a new Actor with settings specified in an Actor object passed as JSON in the POST payload. The response is...
  • apify-pp-cli acts put — Updates settings of an Actor using values specified by an Actor object passed as JSON in the POST payload. If the...

browser-info — Manage browser info

  • apify-pp-cli browser-info tools-delete — Returns information about the HTTP request, including the client IP address, country code, request headers, and body...
  • apify-pp-cli browser-info tools-get — Returns information about the HTTP request, including the client IP address, country code, request headers, and body...
  • apify-pp-cli browser-info tools-post — Returns information about the HTTP request, including the client IP address, country code, request headers, and body...
  • apify-pp-cli browser-info tools-put — Returns information about the HTTP request, including the client IP address, country code, request headers, and body...

datasets — Manage datasets

  • apify-pp-cli datasets delete — Deletes a specific dataset.
  • apify-pp-cli datasets get — Lists all of a user's datasets. The response is a JSON array of objects, where each object contains basic...
  • apify-pp-cli datasets get-datasetid — Returns dataset object for given dataset ID. This does not return dataset items, only information about the storage...
  • apify-pp-cli datasets post — Creates a dataset and returns its object. Keep in mind that data stored under unnamed dataset follows [data...
  • apify-pp-cli datasets put — Updates a dataset's name and general resource access level using a value specified by a JSON object passed in the...

key-value-stores — Manage key value stores

  • apify-pp-cli key-value-stores delete — Deletes a key-value store.
  • apify-pp-cli key-value-stores get — Gets the list of key-value stores owned by the user. The response is a list of objects, where each objects contains...
  • apify-pp-cli key-value-stores get-keyvaluestores — Gets an object that contains all the details about a specific key-value store.
  • apify-pp-cli key-value-stores post — Creates a key-value store and returns its object. The response is the same object as returned by the [Get...
  • apify-pp-cli key-value-stores put — Updates a key-value store's name and general resource access level using a value specified by a JSON object passed...

logs — The API endpoints described in this section are used the download the logs generated by Actor builds and runs. Note that only the trailing 5M characters of the log are stored, the rest is discarded.

:::note

Note that the endpoints do not require the authentication token, the calls are authenticated using a hard-to-guess ID of the Actor build or run.

:::

  • apify-pp-cli logs <buildOrRunId> — Retrieves logs for a specific Actor build or run.

request-queues — Manage request queues

  • apify-pp-cli request-queues delete — Deletes given queue.
  • apify-pp-cli request-queues get — Lists all of a user's request queues. The response is a JSON array of objects, where each object contains basic...
  • apify-pp-cli request-queues get-requestqueues — Returns queue object for given queue ID.
  • apify-pp-cli request-queues post — Creates a request queue and returns its object. Keep in mind that requests stored under unnamed queue follows [data...
  • apify-pp-cli request-queues put — Updates a request queue's name and general resource access level using a value specified by a JSON object passed in...

schedules — This section describes API endpoints for managing schedules.

Schedules are used to automatically start your Actors at certain times. Each schedule can be associated with a number of Actors and Actor tasks. It is also possible to override the settings of each Actor (task) similarly to when invoking the Actor (task) using the API. For more information, see Schedules documentation.

Each schedule is assigned actions for it to perform. Actions can be of two types

  • RUN_ACTOR and RUN_ACTOR_TASK.

For details, see the documentation of the Get schedule endpoint.

  • apify-pp-cli schedules delete — Deletes a schedule.
  • apify-pp-cli schedules get — Gets the list of schedules that the user created. The endpoint supports pagination using the limit and offset...
  • apify-pp-cli schedules get-scheduleid — Gets the schedule object with all details.
  • apify-pp-cli schedules post — Creates a new schedule with settings provided by the schedule object passed as JSON in the payload. The response is...
  • apify-pp-cli schedules put — Updates a schedule using values specified by a schedule object passed as JSON in the POST payload. If the object...

store — Apify Store is home to thousands of public Actors available to the Apify community. The API endpoints described in this section are used to retrieve these Actors.

:::note

These endpoints do not require the authentication token.

:::

  • apify-pp-cli store — Gets the list of public Actors in Apify Store. You can use search parameter to search Actors by string in title,...

tools — The API endpoints described in this section provide utility tools for encoding, signing, and verifying data, as well as inspecting HTTP request details.

  • apify-pp-cli tools decode-and-verify-post — Decodes and verifies an encoded value previously created by the encode-and-sign endpoint. Returns the original...
  • apify-pp-cli tools encode-and-sign-post — Encodes and signs any JSON object. The encoded value includes a signature tied to the authenticated user's ID, which...

users — The API endpoints described in this section return information about user accounts.

  • apify-pp-cli users get — Returns public information about a specific user account, similar to what can be seen on public profile pages (e.g....
  • apify-pp-cli users me-get — Returns information about the current user account, including both public and private information. The user account...
  • apify-pp-cli users me-limits-get — Returns a complete summary of your account's limits. It is the same information you will see on your account's...
  • apify-pp-cli users me-limits-put — Updates the account's limits manageable on your account's Limits page....
  • apify-pp-cli users me-usage-monthly-get — Returns a complete summary of your usage for the current monthly usage cycle, an overall sum, as well as a daily...

webhook-dispatches — Manage webhook dispatches

  • apify-pp-cli webhook-dispatches get — Gets the list of webhook dispatches that the user have. The endpoint supports pagination using the limit and...
  • apify-pp-cli webhook-dispatches webhook-dispatch-get — Gets webhook dispatch object with all details.

webhooks — Webhook-related API endpoints for configuring automated notifications.

  • apify-pp-cli webhooks delete — Deletes a webhook.
  • apify-pp-cli webhooks get — Gets the list of webhooks that the user created. The endpoint supports pagination using the limit and offset...
  • apify-pp-cli webhooks get-webhookid — Gets webhook object with all details.
  • apify-pp-cli webhooks post — Creates a new webhook with settings provided by the webhook object passed as JSON in the payload. The response is...
  • apify-pp-cli webhooks put — Updates a webhook using values specified by a webhook object passed as JSON in the POST payload. If the object does...
Show full SKILL.md (808 more words)Show less
Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

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

Recipes

Weekly newsletter scrape
bash
apify-pp workflow run ./weekly-newsletter.yaml --agent

One YAML-declared chain across Twitter + Reddit + HN + News scrapers; emits a single newsletter-ready digest.

Xquik Tweet research

Use Xquik's X Tweet Scraper for tweet search, timelines, threads, replies, quotes, and engagement.

Create xquik-tweets.json:

json
{
  "searchTerms": ["from:OpenAI API", "#AI lang:en"],
  "maxItems": 100,
  "maxItemsPerTarget": 50,
  "outputVariant": "rich"
}
bash
apify-pp-cli run xquik/x-tweet-scraper --input @xquik-tweets.json --max-cost 0.50 --wait --agent

maxItems caps the run. maxItemsPerTarget balances explicit targets.

Xquik audience research

Use Xquik's X Follower Scraper for followers, following, verified followers, lists, and communities.

Create xquik-followers.json:

json
{
  "twitterHandles": ["OpenAI", "AnthropicAI"],
  "relations": ["followers", "verified_followers"],
  "maxItems": 100,
  "maxItemsPerTarget": 50,
  "outputMode": "compact",
  "includeTargetMetadata": true,
  "dedupeMode": "merge"
}
bash
apify-pp-cli run xquik/x-follower-scraper --input @xquik-followers.json --max-cost 0.50 --wait --agent

Keep target metadata for multi-target runs. Use merge deduplication for audience overlap. maxItemsPerTarget optionally balances results across targets.

Check each Actor's live Store schema and pricing before a paid run. The CLI projects from local history. --wait adds a live watchdog.

Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.

Cross-Actor topic search (compact)
bash
apify-pp search 'agent' --since 30d --agent --select url,title,source_actor,published_at

FTS5 over the local store; use --select with dotted paths to avoid pulling the full normalized item payload.

Schedule drift check
bash
apify-pp schedule diff --agent

Terraform-style diff between local YAML and the live Apify schedules; output is a JSON change set.

A/B test two Twitter scrapers
bash
apify-pp ab run apidojo/tweet-scraper kaitoeasyapi/twitter-x-data-tweet-scraper --input shared.json --judge cost-per-novel --agent

Runs both, normalizes via unified schema, reports cost-per-novel-item and overlap %.

Auth Setup

Set APIFY_TOKEN (from Apify Console → Settings → Integrations) or run apify-pp auth set-token. The CLI validates the token against /v2/users/me before any call. The query-param ?token= form is supported but discouraged.

Run apify-pp-cli doctor to verify setup.

Agent Mode

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:

    bash
    apify-pp-cli actor-builds get --agent --select id,name,status
  • Previewable — --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, and --ignore-missing only when a missing delete target should count as success

Response envelope

Commands that read from the local store or the API wrap output in a provenance envelope:

json
{
  "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.

Agent Feedback

When you (or the agent) notice something off about this CLI, record it:

apify-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
apify-pp-cli feedback --stdin < notes.txt
apify-pp-cli feedback list --json --limit 10

Entries are stored locally at ~/.apify-pp-cli/feedback.jsonl. They are never POSTed unless APIFY_FEEDBACK_ENDPOINT is set AND either --send is passed or APIFY_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.

Output Delivery

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:

SinkEffect
stdoutDefault; 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.

Named Profiles

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.

apify-pp-cli profile save briefing --json
apify-pp-cli --profile briefing actor-builds get
apify-pp-cli profile list --json
apify-pp-cli profile show briefing
apify-pp-cli profile delete briefing --yes

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

Exit Codes

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
4Authentication required
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error

Argument Parsing

Parse $ARGUMENTS:

  1. Empty, help, or --help → show apify-pp-cli --help output
  2. Starts with install → ends with mcp → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with --agent)

MCP Server Installation

Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:

bash
claude mcp add apify-pp-mcp -- apify-pp-mcp

Verify: claude mcp list

Direct Use

  1. Check if installed: which apify-pp-cli If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. Execute with the --agent flag:
    bash
    apify-pp-cli <command> [subcommand] [args] --agent
  4. If ambiguous, drill into subcommand help: apify-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

Files

Just SKILL.md in cli-skills/pp-apify of mvanhorn/printing-press-library.

Open the folder on GitHubat commit 0fdcc7a

Compare with similar skills

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

Pp Apify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pp Apify this skillmvanhorn/printing-press-library2.1k—~6.4kAutomated safety check: NotesApache-2.0
Funding Signal Monitorgooseworks-ai/goose-skills1.2k1 repos~2.3kAutomated safety check: PassMIT
Twitter Mention Trackermajiayu000/claude-skill-registry6662 repos~805Automated safety check: PassMIT
Competitor Intelmajiayu000/claude-skill-registry6662 repos~1.8kAutomated safety check: PassMIT
Browser ScrapeChanningLua/prax-agent273—~587Automated safety check: NotesMIT
Apify Reddit Scraperapify/awesome-skills264—~3.9kAutomated safety check: PassApache-2.0

Similar skills

  • Funding Signal Monitor

    gooseworks-ai/goose-skills

    Monitor web sources for Series A-C funding announcements. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~2.3k tokens
    Productivity & AutomationAuto-check passed
  • Twitter Mention Tracker

    majiayu000/claude-skill-registry

    Search and scrape Twitter/X posts using Apify. An agent skill from majiayu000/claude-skill-registry.

    666 GitHub starsUsed in 2 repos~805 tokens
    Data & AnalyticsAuto-check passed
  • Competitor Intel

    majiayu000/claude-skill-registry

    Competitor intelligence system. An agent skill from majiayu000/claude-skill-registry.

    666 GitHub starsUsed in 2 repos~1.8k tokens
    Marketing & SEOAuto-check passed
  • Browser Scrape

    ChanningLua/prax-agent

    用 AutoCLI 二进制驱动用户已登录的 Chrome 抓取 Twitter/X、知乎、Bilibili、Reddit 等 55+ 站点

    273 GitHub stars~587 tokensUpdated 27 days ago
    Data & AnalyticsAuto-check: notes
  • Apify Reddit Scraper

    apify/awesome-skills

    Official

    Scrape Reddit with the harshmaur/reddit-scraper Apify Actor: keyword search across all of Reddit or inside one subreddit, full subreddit listings, post permalinks with complete comment threads, user…

    264 GitHub stars~3.9k tokensUpdated 15 days ago
    Data & AnalyticsAuto-check passed
  • Reddit Post Finder

    majiayu000/claude-skill-registry

    Scrape and search Reddit posts using Apify. An agent skill from majiayu000/claude-skill-registry.

    666 GitHub starsUsed in 2 repos~1.2k tokens
    Data & AnalyticsAuto-check passed

More from mvanhorn/printing-press-library

All 505 skills in this repo
  • Agent Desktop

    mvanhorn/printing-press-library

    Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.

    2.1k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check: notes
  • Gfonts

    mvanhorn/printing-press-library

    Search, browse, and download Google Fonts from the terminal via the gfonts CLI.

    2.1k GitHub stars~574 tokensUpdated yesterday
    Auto-check passed
  • Pp 1688

    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.

    2.1k GitHub stars~3k tokensUpdated yesterday
    Auto-check: notes
  • Pp Activity Japan

    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.

    2.1k GitHub stars~2k tokensUpdated yesterday
    Auto-check: notes
  • Pp Adminbyrequest

    mvanhorn/printing-press-library

    Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...

    2.1k GitHub stars~3.3k tokensUpdated yesterday
    Auto-check: notes
  • Pp Agent Capture

    mvanhorn/printing-press-library

    macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.

    2.1k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check: notes

Questions about Pp Apify

What does Pp Apify do?

Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and... Pp Apify is an agent skill from mvanhorn/printing-press-library. Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and...

When should I use Pp Apify?

Pp Apify fits situations like: phrases: scrape twitter for AI mentions; run apify actor; whats new in my reddit scraper; build a newsletter from this weeks scrapes.

How do I install Pp Apify in Claude Code?

Run `npx skills add mvanhorn/printing-press-library --skill pp-apify -a claude-code`. Or copy the skill folder (cli-skills/pp-apify in mvanhorn/printing-press-library) into .claude/skills/pp-apify in your project. Claude Code loads it when a task matches its description.

How do I install Pp Apify in Codex?

Run `npx skills add mvanhorn/printing-press-library --skill pp-apify -a codex`. Or copy the skill folder (cli-skills/pp-apify in mvanhorn/printing-press-library) into .agents/skills/pp-apify in your project. Codex loads it when a task matches its description.

Can I use Pp Apify in Cursor, Gemini CLI or GitHub Copilot?

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-apify -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-apify, .gemini/skills/pp-apify, .github/skills/pp-apify and .opencode/skills/pp-apify in your project.

What does Pp Apify need to run?

Going by SKILL.md and its folder, Pp Apify needs the command-line tools its instructions call (claude, npx and go) and credentials named APIFY_TOKEN. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.

Does Pp Apify access the network?

SKILL.md names 3 domains. As links in the text: docs.apify.com, apify.com and console.apify.com. This is read from the text; nothing was executed.

Is Pp Apify safe to install?

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.

What licence does Pp Apify use?

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

How many tokens does Pp Apify use?

About 6.4k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pp Apify?

Skills that share tags, products or a category with Pp Apify: Funding Signal Monitor (gooseworks-ai/goose-skills, 1.2k stars), Twitter Mention Tracker (majiayu000/claude-skill-registry, 666 stars), Competitor Intel (majiayu000/claude-skill-registry, 666 stars) and Browser Scrape (ChanningLua/prax-agent, 273 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pp Apify?

mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,053 GitHub stars. The repository holds 505 skills in this directory. The repository was last updated on October 7, 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.