Skip to main content

Inject production-ready modules into any Python or Node project. AI-adaptive, framework-aware, BSL Licensed.

Project description

shadow-stack v5

Inject production infrastructure into any Python or Node project in minutes. Framework-aware · AI-adaptive · Multi-provider with fallback · Git-branch rollback · BSL Licensed

pip install shadow-stack
shadow-stack scan   ./myproject     # health score + what's missing  (FREE)
shadow-stack diff   ./myproject     # preview changes before inject  (FREE)
shadow-stack cost   ./myproject     # estimate AI cost first         (FREE)
shadow-stack audit  ./myproject     # security issues                (FREE)
shadow-stack inject ./myproject     # AI-adapted production modules  (PAID)
shadow-stack rollback ./myproject   # list/clean inject branches     (FREE)

What's new in v5

Feature v4 v5
Framework-aware scanner (no false positives on JS/TS projects)
AI provider fallback chain (auto-retry on rate-limit / 5xx)
Git-branch rollback (every inject = its own branch)
Node/Express module pack (auth + security + monitoring + tests + docker)
GitHub Action for CI integration
Freemium model (free scans, paid inject)
pyproject.toml packaging

Free tier (always free)

scan · audit · diff · cost · frameworks · providers · explain · license

Run scans on any project, any time, no key required. This is the acquisition loop — get a real production-readiness score before deciding if inject is worth paying for.

Paid tier (license key required)

inject · recipe apply · upgrade · sync · fix-wiring · install

export SHADOW_STACK_LICENSE_KEY=solo_xxxxxxx
shadow-stack inject ./myproject --only auth payments monitoring

Tiers: solo_* ($29/mo) · team_* ($99/mo) · ent_* ($499/mo) · lifetime_* ($149)


Framework support

Framework Detect Inject Modules
FastAPI All 16 Python modules
Django auth, monitoring, security, tests, docker, deployment
Flask auth, monitoring, security, tests, docker
Express v5 NEW — node_auth/security/monitoring/tests/docker
NestJS v5 NEW — same Node module pack
Next.js v5 NEW — node_auth, node_monitoring, node_tests
Fastify Detection only
React/Vite node_tests
Go (Gin) Planned v6

The scanner is framework-aware: a Next.js project no longer gets false-positive "missing password hashing" warnings just because the FastAPI checker doesn't know JS.


Git-branch rollback

Every inject in a git repo creates a dedicated branch:

shadow-stack/inject-auth-monitoring-20260510-153022

Review the diff, then merge or rollback:

git checkout main && git merge --no-ff <branch>   # accept
git checkout main && git branch -D <branch>       # discard

shadow-stack rollback ./myproject --cleanup 14 cleans up branches older than 14 days.


AI provider fallback (v5 reliability fix)

Default chain: anthropic → openai → gemini → groq → deepseek → ollama

If your primary rate-limits halfway through a 12-module inject, v5 auto-retries on the next available provider. v4 used to fail the whole run.

Set SHADOW_STACK_AI_PROVIDER=openai to pin a specific primary; the chain still applies on failure.


GitHub Action

# .github/workflows/health-score.yml
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shadowhunter89/shadow-stack/.github/actions/scan@v5
        with:
          fail-below: 60      # fail the PR if score drops below 60
          comment-on-pr: true # post score as a PR comment

What the comment looks like

On every pull request, the action posts a comment like this:

🟡 shadow-stack score: 62/100

Framework fastapi
Missing modules 6
Critical security issues 2

Run shadow-stack inject locally to fix the gaps. Get a license to enable inject.

Score emoji is colour-coded:

  • 🟢 80+ — production-ready
  • 🟡 60-79 — has gaps, but shippable
  • 🔴 < 60 — needs work before launch

What you'll see in the GitHub Actions tab

The action also writes a Job Summary visible in the run page:

## shadow-stack scan

| Metric | Value |
|--------|------:|
| Health Score | 62/100 |
| Framework | fastapi |
| Missing modules | 6 |
| Critical issues | 2 |

Outputs you can use in downstream steps

- uses: shadowhunter89/shadow-stack/.github/actions/scan@v5
  id: scan
- run: echo "Health = ${{ steps.scan.outputs.health-score }}"
- run: echo "Framework = ${{ steps.scan.outputs.framework }}"

License

Business Source License 1.1. You may use it on your projects (private or commercial). You may not sell it as a standalone product or build a hosted SaaS of it. Converts to Apache 2.0 four years after release.

Commercial licensing: shadowhunter89@proton.me · © 2026 ShadowHunter89.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shadow_stack-5.0.2.tar.gz (79.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadow_stack-5.0.2-py3-none-any.whl (78.4 kB view details)

Uploaded Python 3

File details

Details for the file shadow_stack-5.0.2.tar.gz.

File metadata

  • Download URL: shadow_stack-5.0.2.tar.gz
  • Upload date:
  • Size: 79.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for shadow_stack-5.0.2.tar.gz
Algorithm Hash digest
SHA256 4545683a76ef1cd8987c0863b770535ffa65cc3ab9b7e7acf4dc530e4c0b08b8
MD5 fff5451858e4cd7dc2f5979ec8d02f91
BLAKE2b-256 5a6b8fad5c0a802192b0251fe9d5eed1fb833950d04c1d8d18790e9000268796

See more details on using hashes here.

File details

Details for the file shadow_stack-5.0.2-py3-none-any.whl.

File metadata

  • Download URL: shadow_stack-5.0.2-py3-none-any.whl
  • Upload date:
  • Size: 78.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for shadow_stack-5.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2582d97fab40c4851c4bc2f195cc5675a5b57f72f011a263a594394245c12e9f
MD5 37976da9010f69507e5da98ee0c5270e
BLAKE2b-256 9479b6a53ecbb2190600c7409fc321a27f3126236fd28f93728b4ff4185347fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page