Skip to content

Command reference

actnode [scan] [PATH] [--repo OWNER/NAME] [--org OWNER]
        [--target N] [--format text|json|md] [-o FILE]
        [--fix] [--fail] [--all] [--no-cache]
actnode demo
actnode --version
Flag Meaning
PATH local repository root (default .; mutually exclusive with --repo/--org)
--repo OWNER/NAME scan a remote repo via the GitHub Contents API (no clone)
--org OWNER scan all public non-fork repos for an org or user via the API
--target N minimum Node major an action must run on (default 24)
--format text (default), json (every finding), md (problem table, for job summaries)
-o FILE write to a file; md appends (so it works with $GITHUB_STEP_SUMMARY)
--fix rewrite direct uses: lines to the suggested ref (local PATH only)
--fail exit code 1 if any step uses an older runtime
--all in text mode, also show ok, composite, workflow and docker steps
--no-cache skip the on-disk tag cache (~/.cache/actnode / $XDG_CACHE_HOME/actnode)

Exit codes: 0 ok, 1 old runtime found with --fail, 2 usage error or GitHub API rate limit (set a token).

Status values

status Text mark Meaning
ok ok runs on target Node or newer
old OLD older Node; a suggested bump exists
no-fix OLD older Node; no node24 release yet
composite cmp composite action (nested steps followed)
workflow wfl reusable workflow (nested uses followed)
docker dkr Docker action
unknown ? could not resolve

JSON shape

{"target": 24, "findings": [
  {"file": ".github/workflows/ci.yml", "line": 7, "uses": "actions/checkout@v4",
   "runtime": "node20", "status": "old", "suggest": "actions/checkout@v5", "via": null, "note": ""}
]}

Remote scans use file values like owner/repo:.github/workflows/ci.yml. Nested findings set via to the composite or reusable workflow ref that pulled them in.