Agent skill · software engineering · jeremylongshore

apify-local-dev-loop

Set up local Apify Actor development with the Apify CLI and Crawlee. Use when creating Actors locally, testing with the apify run command, inspecting local storage, or establishing a fast develop-test-deploy cycle before pushing to the platform. Trigger with "apify dev setup", "apify local development", "develop actor locally", "apify run local".

Why this skill is useful

Provides specific commands and project structure for local Apify Actor development that the AI wouldn't reliably generate on its own.

What it needs

Requires apify-cli, node installed locally. Requires apify account access. About 3k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.

What this skill does

Apify Local Dev Loop Overview Build and test Apify Actors on your local machine before deploying to the platform. The Apify CLI (apify run) emulates the platform environment locally — creating storage directories for datasets, key-value stores, and request queues — giving you a tight edit → run → inspect loop with no cloud round-trip. Prerequisites npm install -g apify-cli (global CLI) apify login completed with valid token Node.js 18+ Authentication The CLI authenticates with your Apify API token. Run apify login once (it stores the token under ~/.apify/), or export APIFYTOKEN in the shell for non-interactive use. Local runs (apify run) do not require auth — only apify push / apify call reach the platform. Never commit the token or a plaintext .env containing it. Actor Project Structure Instructions Full config files and Actor source live in implementation.md; the high-level loop is: Step 1: Create a New Actor Project Step 2: Configure and code Read and Edit the scaffolded .actor/actor.json (metadata + optional dataset view), define .actor/INPUTSCHEMA.json (validates input and auto-generates the platform UI), and write your crawler in src/main.ts. See implementation.md for the complete actor.json, input schema, and a Cheerio-based main.ts that reads validated input and pushes structured rows via Actor.pushData(). Step 3: Run Locally Step 4: Provide Local Input Create storage/keyvaluestores/default/INPUT.json so repeated apify run invocations reuse the same input: For the fastest inner loop, run the entry point directly with tsx watch instead of apify run — wiring and platform-emulating env vars are in implementation.md § Hot Reload Development. Unit tests that mock the SDK boundary are in that same file. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills jeremylongshore/apify-local-dev-loop

View the source on GitHub

Browse the @skills marketplace