CIScope BETA
Beta / experimental. Free while in beta. Feedback welcome. No guarantee of revenue or results.
Vet your GitHub Actions before they run — write-all tokens, unpinned actions, and untrusted input piped into run steps.
Get the free beta by email Get a launch audit Send feedback How it works
What it does
Runs a deterministic, local-first, read-only scan over your .github/workflows/*.yml and returns a verdict (PIPELINE-SAFE / NEEDS REVIEW / RISKY), a 0-100 score, severity counts, evidence for every finding, and a Claude-ready fix prompt per issue, in JSON, Markdown, and HTML. It catches the CI/CD hygiene problems AI-built projects ship with — a GITHUB_TOKEN granted write-all, a third-party action pinned to a moving tag or a @main branch instead of a commit SHA, untrusted ${{ github.event.* }} interpolated straight into a run step (script injection), a pull_request_target trigger that checks out the PR head, a curl | sh in a run step, a hardcoded token, a secret printed in a step, a self-hosted runner on a fork-exposed trigger, ACTIONS_ALLOW_UNSECURE_COMMANDS, a secret in a global env block, and jobs with no timeout. Runs entirely on your machine with zero runtime dependencies: it never runs a workflow, never executes a run step, never networks. No cloud, no account, no telemetry.
Who it's for
Indie founders, AI-app builders, and small agencies who add a GitHub Actions workflow to build, test, or deploy a project and want a fast, honest check that the pipeline is least-privilege, pinned, and not injectable — before it runs on untrusted input or merges to main.
What it does NOT do
Reports GitHub Actions / CI workflow hygiene signals, not guarantees. It is NOT a full CI/CD security audit, NOT a guarantee, and NOT a substitute for branch protection, required reviews, CODEOWNERS, or a human security review. It uses a minimal, heuristic YAML-ish parser: it does not resolve reusable-workflow or composite-action targets, expand matrices, follow ${{ }} data flow, or judge whether a referenced action is itself malicious. It never runs a workflow, never executes a run step or action, never reaches the network, never deploys, never changes your repo or its settings, never reads or transmits real secrets (secret-looking values are redacted to [REDACTED]), and never crosses an owner manual gate. No guaranteed results, approval, or revenue.
How to try it
Request free beta access via the feedback form, then run it locally on Node: scan a bundled demo (node src/scan.mjs --demo bad or --demo good), point it at your own repo folder, or open the local-only dashboard at 127.0.0.1 — no account or payment required.
What CIScope checks
- A GITHUB_TOKEN granted write-all, and workflows with no permissions block (token inherits the broad repo default)
- A third-party action not pinned to a commit SHA, and an action pinned to a moving @main / @master branch
- Untrusted ${{ github.event.* }} / github.head_ref interpolated straight into a run step (script injection)
- A pull_request_target / workflow_run trigger that checks out the untrusted PR head (privileged fork RCE)
- A curl | sh piped into a shell inside a run step
- A hardcoded secret-looking token in the workflow, and a secret printed in a run step (value redacted to [REDACTED])
- A secret set in a workflow / job-level env block, exposed to every step including third-party actions
- A custom (non-GITHUB_TOKEN) secret referenced in a pull_request-triggered workflow
- A self-hosted runner on a fork-exposed trigger, and ACTIONS_ALLOW_UNSECURE_COMMANDS re-enabling injectable stdout commands
- Deprecated ::set-output / ::save-state commands, and jobs with no timeout-minutes
How it works
- Point CIScope at your repo folder (or a bundled demo). It reads .github/workflows/*.yml read-only with a minimal YAML-ish parser — your source never leaves your machine, and nothing is run or executed.
- A deterministic check engine runs 15 heuristic checks across Permissions, Supply chain, Injection, Triggers, Secrets, Runner, and Hardening, and scores the result into PIPELINE-SAFE / NEEDS REVIEW / RISKY with a 0-100 score and severity counts, with all evidence redacted.
- Every finding includes evidence, its area, and a copy-ready Claude fix prompt that tells a Claude Code session exactly what to fix — and what not to do (do not run the workflow, do not add or print secrets, stop at any owner manual gate).
Known limitations
- Experimental beta — checks and scoring may change or miss things.
- GitHub Actions / CI workflow hygiene signals only — NOT a full CI/CD security audit, a guarantee, or a substitute for branch protection / human review, and no guaranteed results.
- Heuristic YAML-ish parser: no reusable-workflow / composite-action resolution, no matrix expansion, no data-flow analysis; GitHub Actions only; not yet reviewed for production use.
Changelog
- 2026-06-25 — Beta candidate created: local-first GitHub Actions / CI workflow hygiene audit engine (15 heuristic checks), CLI scan, JSON/MD/HTML reports, local-only dashboard, risky/clean demo fixtures, and 15 unit tests. Owner review required before promotion.
Try CIScope free while it's in beta
CIScope is free while in beta. Run it on your own workflows, then tell us whether the PIPELINE-SAFE / NEEDS REVIEW / RISKY verdict matched reality and what it missed — no account, no payment, and no guarantee of results.
Built by Everstead Labs LLC. Live on Shopify: LaunchLock and CatalogCare.