Drop-in remote debugging for Apify Actors: a one-line CMD change in the Dockerfile launches the
Actor under a debugger and serves a full debugger UI over the run's container URL. Open one link in
your own browser and debug — no local setup, no tunnel, no rebuild of your code, no browser or IDE
inside the Actor.
| Runtime | Package | Integration | Details |
|---|---|---|---|
| Node.js / TypeScript | actor-debugger on npm |
RUN npm install actor-debugger + CMD ["npx", "actor-debugger", "--brk"] |
javascript/README.md |
| Python | actor-debugger on PyPI |
RUN pip install actor-debugger + CMD ["python3", "-m", "actor_debugger", "--brk"] |
python/README.md |
Both variants share the same architecture: your Actor runs under its native debugger (the Node
inspector, or debugpy for Python), and one HTTP server on ACTOR_WEB_SERVER_PORT serves the
frontend and bridges the debug protocol to it. The run log prints the URL to open.
javascript/— the npm package (bin/,lib/), its README, and a sample TS Actor inexample-actor/.python/— the PyPI package (src/actor_debugger/) and its README..github/workflows/— release automation. Both workflows are started manually from the Actions tab onmaster:publish.ymlpublishes the version injavascript/package.jsonto npm andpublish_to_pypi.ymlthe version inpython/pyproject.tomlto PyPI. Each then creates its tag (vX.Y.Zfor npm,py-vX.Y.Zfor PyPI) and GitHub release itself. Both use registry trusted publishing (OIDC), so there are no publishing secrets in the repository.
The debug endpoint is unauthenticated: anyone who reaches the container URL can execute code in the
run and read its environment, including APIFY_TOKEN. Keep the debugger CMD only in builds you are
actively debugging, and never ship it in a published Actor. See each README for details.
Apache-2.0 — see LICENSE.