Funding Signal Monitor
gooseworks-ai/goose-skills
Monitor web sources for Series A-C funding announcements. An agent skill from gooseworks-ai/goose-skills.
Every Apify platform feature, plus a local SQLite store, cross-Actor search, novelty diffing, cost-aware runs, and...
$ npx skills add mvanhorn/printing-press-library --skill pp-apify -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-apify --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-apify .claude/skills/pp-apify && 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-apify" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-apify into .claude/skills/pp-apify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-apify", 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-apifyType 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-apify -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-apify --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-apify .agents/skills/pp-apify && 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-apify" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-apify into .agents/skills/pp-apify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-apify", 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-apify -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-apify --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-apify .cursor/skills/pp-apify && 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-apify" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-apify into .cursor/skills/pp-apify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-apify", 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-apify--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-apify -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-apify --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-apify .gemini/skills/pp-apify && 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-apify" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-apify into .gemini/skills/pp-apify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-apify", 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-apifyInstalls 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-apify -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-apify .github/skills/pp-apify && 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-apify" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-apify into .github/skills/pp-apify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-apify", 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-apify -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-apify --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-apify .opencode/skills/pp-apify && 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-apify" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-apify into .opencode/skills/pp-apify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-apify", 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-apifyEvery 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... 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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0fdcc7a. 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:
claudenpxgoFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.apify.comapify.comconsole.apify.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
APIFY_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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 0fdcc7a, republished under its Apache-2.0 licence (© mvanhorn). 2,988 words, ~6,374 tokens.
.claude/skills/pp-apify/SKILL.md (or your agent's skills folder).<!-- 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/". -->
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:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install apify --cli-onlyapify-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):
go install github.com/mvanhorn/printing-press-library/library/developer-tools/apify/cmd/apify-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.
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.
These capabilities aren't available in any other tool for this API.
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.
apify-pp run trudax/reddit-scraper --input @sub-list.json --only-new --format markdownsearch 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.
apify-pp search "model context protocol" --since 7d --actors twitter,reddit,hn --json --select url,title,source_actordigest --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.
apify-pp digest --offline --topic AI --since 7d --template draft.tmplcost 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.'
apify-pp cost report --since 30d --group-by actor,schedule --jsonrun --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.
apify-pp-cli run xquik/x-tweet-scraper --input @xquik-tweets.json --max-cost 0.50 --waitab 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.
apify-pp ab run apidojo/tweet-scraper kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest --input shared.json --judge novelty --jsondigest — 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.
apify-pp digest --topic "AI dev tools" --since 24h --template weekly.tmplworkflow 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.
apify-pp workflow run ./weekly-newsletter.yaml --jsonschedules 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.
apify-pp schedule apply ./schedules.yaml --dry-run && apify-pp schedule diffpreset 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.
apify-pp preset save twitter weekly-ai --from-run abc123 && apify-pp call twitter --preset weekly-ai --override startUrls=@new-list.txtactor-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...When you know what you want to do but not which command does it, ask the CLI directly:
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.
apify-pp workflow run ./weekly-newsletter.yaml --agentOne YAML-declared chain across Twitter + Reddit + HN + News scrapers; emits a single newsletter-ready digest.
Use Xquik's X Tweet Scraper for tweet search, timelines, threads, replies, quotes, and engagement.
Create xquik-tweets.json:
{
"searchTerms": ["from:OpenAI API", "#AI lang:en"],
"maxItems": 100,
"maxItemsPerTarget": 50,
"outputVariant": "rich"
}apify-pp-cli run xquik/x-tweet-scraper --input @xquik-tweets.json --max-cost 0.50 --wait --agentmaxItems caps the run. maxItemsPerTarget balances explicit targets.
Use Xquik's X Follower Scraper for followers, following, verified followers, lists, and communities.
Create xquik-followers.json:
{
"twitterHandles": ["OpenAI", "AnthropicAI"],
"relations": ["followers", "verified_followers"],
"maxItems": 100,
"maxItemsPerTarget": 50,
"outputMode": "compact",
"includeTargetMetadata": true,
"dedupeMode": "merge"
}apify-pp-cli run xquik/x-follower-scraper --input @xquik-followers.json --max-cost 0.50 --wait --agentKeep 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.
apify-pp search 'agent' --since 30d --agent --select url,title,source_actor,published_atFTS5 over the local store; use --select with dotted paths to avoid pulling the full normalized item payload.
apify-pp schedule diff --agentTerraform-style diff between local YAML and the live Apify schedules; output is a JSON change set.
apify-pp ab run apidojo/tweet-scraper kaitoeasyapi/twitter-x-data-tweet-scraper --input shared.json --judge cost-per-novel --agentRuns both, normalizes via unified schema, reports cost-per-novel-item and overlap %.
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.
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:
apify-pp-cli actor-builds get --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, and --ignore-missing only when a missing delete target 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.
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 10Entries 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.
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 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 --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 apify-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:
claude mcp add apify-pp-mcp -- apify-pp-mcpVerify: claude mcp list
which apify-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:apify-pp-cli <command> [subcommand] [args] --agentapify-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-apify of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 0fdcc7a
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Apify this skillmvanhorn/printing-press-library | 2.1k | — | ~6.4k | Automated safety check: Notes | Apache-2.0 | |
| Funding Signal Monitorgooseworks-ai/goose-skills | 1.2k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Twitter Mention Trackermajiayu000/claude-skill-registry | 666 | 2 repos | ~805 | Automated safety check: Pass | MIT | |
| Competitor Intelmajiayu000/claude-skill-registry | 666 | 2 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Browser ScrapeChanningLua/prax-agent | 273 | — | ~587 | Automated safety check: Notes | MIT | |
| Apify Reddit Scraperapify/awesome-skills | 264 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 |
gooseworks-ai/goose-skills
Monitor web sources for Series A-C funding announcements. An agent skill from gooseworks-ai/goose-skills.
majiayu000/claude-skill-registry
Search and scrape Twitter/X posts using Apify. An agent skill from majiayu000/claude-skill-registry.
majiayu000/claude-skill-registry
Competitor intelligence system. An agent skill from majiayu000/claude-skill-registry.
ChanningLua/prax-agent
用 AutoCLI 二进制驱动用户已登录的 Chrome 抓取 Twitter/X、知乎、Bilibili、Reddit 等 55+ 站点
apify/awesome-skills
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…
majiayu000/claude-skill-registry
Scrape and search Reddit posts using Apify. An agent skill from majiayu000/claude-skill-registry.
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.
Works with
Categories
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...
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.