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.
Install / Use
npx skills add jeremylongshore/tons-of-skills-marketplace --skill apify-local-dev-loopInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Our assessment of apify-local-dev-loop
apify-local-dev-loop scores 93/100 on our quality scale, 698th of 3,055 Automation skills we index (top 23%).
Its SKILL.md is 6.2 KB long, well organised into 23 sections with 5 code examples: a thorough specification that gives an agent plenty to work with.
With 2,785 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 8 days ago, so apify-local-dev-loop is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
apify-local-dev-loop compared with similar skills
All 4 of these similar skills score higher than apify-local-dev-loop; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| apify-local-dev-loop (this skill)by jeremylongshore | 93 | 2.8k | 8d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 88.1k | 17d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.3k | today | CLAUDE.md |
| rufloby ruvnet | 100 | 73.7k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 85.2k | 1d ago | MCP Server |
Frequently asked questions
- How do I install apify-local-dev-loop?
- Run
npx skills add jeremylongshore/tons-of-skills-marketplace --skill apify-local-dev-loop. The install tabs above show the steps for each supported agent. - Which AI agents does apify-local-dev-loop work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is apify-local-dev-loop safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is apify-local-dev-loop still maintained?
- The repository was last updated 8 days ago, so apify-local-dev-loop is actively maintained.
Skill content
View source on GitHubname: apify-local-dev-loop description: | 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". allowed-tools: Read, Write, Edit, Bash(npm:), Bash(npx:), Bash(apify:*) version: 1.5.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
- saas
- scraping
- automation
- apify compatibility: Designed for Claude Code
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 logincompleted 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 APIFY_TOKEN 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
my-actor/
├── .actor/
│ ├── actor.json # Actor metadata and config
│ └── INPUT_SCHEMA.json # Input schema (auto-generates UI on platform)
├── src/
│ └── main.ts # Entry point
├── storage/ # Created by apify run (git-ignored)
│ ├── datasets/default/
│ ├── key_value_stores/default/
│ └── request_queues/default/
├── package.json
└── tsconfig.json
Instructions
Full config files and Actor source live in implementation.md; the high-level loop is:
Step 1: Create a New Actor Project
# Create from template (interactive)
apify create my-actor
# Or create from specific template
apify create my-actor --template project_cheerio_crawler_ts
# Templates: project_empty, project_cheerio_crawler_ts,
# project_playwright_crawler_ts, project_puppeteer_crawler_ts
Step 2: Configure and code
Read and Edit the scaffolded .actor/actor.json (metadata + optional dataset
view), define .actor/INPUT_SCHEMA.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
# Run with default input from storage/key_value_stores/default/INPUT.json
apify run
# Run with input from command line
apify run --input='{"startUrls":[{"url":"https://example.com"}],"maxPages":5}'
# View results
cat storage/datasets/default/*.json | jq '.'
Step 4: Provide Local Input
Create storage/key_value_stores/default/INPUT.json so repeated apify run
invocations reuse the same input:
{
"startUrls": [{ "url": "https://example.com" }],
"maxPages": 5
}
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.
Local Storage Emulation
apify run creates a storage/ directory that mirrors platform storage:
| Platform Storage | Local Path | Access via SDK |
|-----------------|------------|----------------|
| Default dataset | storage/datasets/default/ | Actor.pushData() |
| Default KV store | storage/key_value_stores/default/ | Actor.setValue() / Actor.getValue() |
| Default request queue | storage/request_queues/default/ | Managed by crawler |
Output
- A runnable Actor project scaffolded from a template (
.actor/,src/,package.json) - A typed input schema that validates locally and generates the platform UI
- Scraped rows written to
storage/datasets/default/as JSON files - A local
storage/tree mirroring platform datasets, KV stores, and request queues - A watch-mode dev loop (
tsx watch) and a Vitest test that mocks the SDK boundary
Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| apify: command not found | CLI not installed | npm i -g apify-cli |
| INPUT.json not found | No input provided | Create storage/key_value_stores/default/INPUT.json |
| Cannot find module 'apify' | SDK not installed | npm install apify crawlee |
| Dockerfile not found | Missing actor config | Run apify create or create .actor/actor.json |
Examples
A quick end-to-end run — seed a local input, run the Actor, and inspect results:
mkdir -p storage/key_value_stores/default
echo '{"startUrls":[{"url":"https://example.com"}],"maxPages":5}' \
> storage/key_value_stores/default/INPUT.json
apify run
cat storage/datasets/default/*.json | jq '.'
Three fuller worked scenarios live in examples.md:
- Scaffold a new Actor and run it locally —
apify createfrom a template through the firstapify run. - Provide a local input file and inspect results — persistent
INPUT.json, plus the exact dataset row shape. - One-shot run with inline input — throwaway
--inputruns while iterating on selectors.
Resources
- Local Actor Development
- Apify CLI Reference
- Actor Templates
- Full implementation walkthrough — complete
actor.json, input schema,main.ts, hot reload, and tests - Worked examples — three end-to-end run scenarios
Next Steps
Once the local loop is producing clean data, move on to production-ready Actor
code patterns — routing, proxy configuration, retries, and dataset shaping —
covered in apify-sdk-patterns.
Related Skills
Agent-Reach
88.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.3kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.7k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
Scrapling
85.2k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
