stillrunning
Supply chain security for developers and AI coding agents. Active protection against 200,000+ verified malicious packages from 8 threat intelligence sources.
What's new in v2.8
- Async scan endpoint —
POST /api/scan/asyncfor non-blocking scans - Version-aware AI cache — cache keyed by
(package, version)tuple - Source tracking — every blocklist entry records where it came from
- OSV.dev bulk ingestion — 222k malicious packages from PyPI and npm
- Registry liveness checking — marks packages removed from registries
What it protects against
| Threat Class | Example |
|---|---|
| Typosquats | reqeusts, colourma, djanga |
| Malicious packages | Pre/post-install scripts stealing credentials |
| Prompt injection | README-based attacks targeting AI agents |
| Dependency confusion | Internal package names registered publicly |
| Hallucinated packages | AI-suggested packages that don't exist (then claimed) |
Supported package managers
| Package Manager | Status |
|---|---|
| pip / pip3 | Intercepted |
| python3 -m pip | Intercepted |
| uv | Intercepted |
| poetry | Intercepted |
| pdm | Intercepted |
| pipenv | Intercepted |
| conda | Intercepted |
| pixi | Intercepted |
| npm | Intercepted |
| bun | Intercepted |
| pnpm | Intercepted |
| requirements.txt | Scanned |
| import statement | Blocked (via hook) |
Quick start
pip install stillrunning
stillrunning --setup # 3-minute setup wizard
stillrunning scan <package> # One-shot scan
stillrunning --install-hook # Always-on import protection
Import protection
import stillrunning.hook # Blocks malicious imports at runtime
AI agent integrations
Works with: Claude Code, Cursor, Devin, Replit, GitHub Copilot, Windsurf, Aider
Setup: stillrunning.io/agent-setup
Claude Code skill
claude mcp add stillrunning -- stillrunning mcp
Or add to ~/.claude/settings.json:
{
"mcpServers": {
"stillrunning": {
"type": "url",
"url": "https://stillrunning.io/mcp"
}
}
}
GitHub Actions
Add supply chain security to your CI/CD pipeline:
# .github/workflows/security.yml
name: Security Scan
on: [push, pull_request]
jobs:
stillrunning:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: johhnyg/stillrunning@v1
with:
requirements: requirements.txt
# Optional: fail on suspicious packages too
# fail-on-suspicious: true
For npm projects:
- uses: johhnyg/stillrunning@v1
with:
package-json: package.json
package-lock: package-lock.json
Security Advisories
Browse the full threat database: stillrunning.io/security-advisories
RSS feed: stillrunning.io/security-advisories/rss.xml
Privacy
Heartbeats contain: command name, version, OS, anonymous UUID, timestamp. No code, file paths, or package names are sent.
Disable: STILLRUNNING_NO_TELEMETRY=1 or --no-telemetry flag.
Configuration
| Variable | Purpose |
|---|---|
STILLRUNNING_NO_TELEMETRY=1 |
Disable heartbeat |
BLOCKLIST_MAX_AGE_DAYS=730 |
Max age for blocklist entries (default 2 years) |
STILLRUNNING_TOKEN |
API token (enables import-time checks) |
STILLRUNNING_FAIL_CLOSED=1 |
Wrappers stop the install when a package could not be checked |
Token file: ~/.stillrunning/stillrunning.yaml (token: ...)
Commands
stillrunning --setup # Setup wizard
stillrunning --doctor # Health check
stillrunning --install-hook # Enable always-on import protection
stillrunning --autonomous # CI/CD mode
stillrunning --allow <pkg> # Allow a blocked package
stillrunning scan <pkg> # One-shot scan
stillrunning whitelist add <pkg> # Add to whitelist
stillrunning whitelist list # Show whitelist
Pricing
| Tier | Price | Scans/day | Machines | Dashboard |
|---|---|---|---|---|
| Free | Free | 10 | 1 | No |
| Personal | $9/mo | 100 | 1 | No |
| Basic | $29/mo | Unlimited | 3 | Yes |
| Ai | $49/mo | Unlimited | Unlimited | Yes |
| Enterprise | $499/mo | Unlimited | Unlimited | Yes |
Personal ($9/mo)
- Everything in Free
- 100 scans/day
- Telegram + email alerts
- Email support
Basic ($29/mo)
- Everything in Personal
- yourname.stillrunning.io dashboard
- Monday weekly reports
- Uptime milestone alerts
- File integrity tripwire
- 3 machines
Ai ($49/mo)
- Everything in Basic
- AI crash diagnosis
- Reply to alerts - AI answers
- Crash pattern detection
- AI Agent Integrity Monitor
- Unlimited machines
- Priority support
Enterprise ($499/mo)
- Everything in AI
- Dedicated account manager
- Custom integrations
- SLA guarantee
- On-premises option
Badge

Links
License
MIT License
Patent Pending — US Provisional Application filed April 12, 2026
Metadata
Release files for stillrunning 2.13.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| stillrunning-2.13.7.tar.gz | 87.5 kB | Without provenance | Details for stillrunning-2.13.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| stillrunning-2.13.7-py3-none-any.whl | Python 3 | none | any | Details for stillrunning-2.13.7-py3-none-any.whl |
Total release size: 173.0 kB
Release files / stillrunning-2.13.7.tar.gz
| Download URL | stillrunning-2.13.7.tar.gz |
|---|---|
| Size | 87.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aba74ae45716fd44cd1c14739ed59b0a0fa32bfb72c206f8a9b09cf974b74407
|
|
BLAKE2b-256 checksum How to use checksums |
f903fcb538c06a8d24ec23dc5f602c248bf8d0deb355ab5970bd6977ae1b6af8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / stillrunning-2.13.7-py3-none-any.whl
| Download URL | stillrunning-2.13.7-py3-none-any.whl |
|---|---|
| Size | 85.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b964d16a1787224fc583fdd406a405b6ec33f2f064f2f3258fafc1eabb29f33
|
|
BLAKE2b-256 checksum How to use checksums |
5bf2b19cd33db9121a0c48f1b4f83f87bba611b3ab460ca6c7b4485e6c14a2fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for stillrunning 2.13.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.