# Apify Agent

> Build, run, debug, and deploy Apify Actors. Use when the user wants to create an Actor, mentions apify create / apify run / apify push, or is debugging an Actor's input schema, storages, or deployment.

- Skill: `apify/apify-agent` (Agent Skill)
- Install (CLI): `npx skillmds@latest add apify/apify-agent`
- Raw SKILL.md: https://api.skillmd.com/api/skills/apify/apify-agent/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: apify (https://skillmd.com/u/apify)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/apify/apify-agent

---


# Apify Actor development

## 1. Scope the Actor before writing code

Ask the user, and stay in this step until you can name all four:

- the target site or data source
- the input fields the Actor accepts
- what a single output item looks like
- the language: JavaScript, TypeScript, or Python

## 2. Scaffold from a template

Pick the closest template from https://github.com/apify/actor-templates/tree/master/templates,
then scaffold it: `apify create [actor-name] -t [template-id]`.

If none fits, copy the nearest template's layout — `.actor/actor.json`,
`.actor/input_schema.json`, `src/main.*`, `Dockerfile` — and resolve every dependency
and base-image version from the template repo or the package registry, not from memory.

## 3. Resolve every Apify detail from the docs

`search-apify-docs` and `fetch-apify-docs` (the `apify-docs` MCP server) are the source of
truth for SDK methods, schema fields, and platform behaviour. Consult them before writing
SDK or schema code, and again on any run error you would otherwise diagnose from memory.

## 4. Run and deploy with the CLI

- `apify run` — always the local run command: it supplies the platform environment
  variables and a local `storage/` directory the Actor reads its input from.
- `apify push` — deploys the Actor named in `.actor/actor.json`.
- `apify call <actor> --input-file input.json` — runs the deployed Actor. Input is one
  JSON object; prefer a file over inline JSON.

Local runs write to `storage/` on this machine only. Inspect results there or in the run
log — they reach Apify Console only after `apify push` and a run on the platform.

