Documentation

Get started with StableStack

Run your first scan in under a minute. Free tier includes 14 checks — upgrade for all 105.

Quick Start

1

Install StableStack

$ pip install stablestack
2

Run it

stablestack

On first run, StableStack auto-detects your source directories and sets up Claude Code slash commands (/check, /fix-production).

3

Review and fix issues

StableStack outputs prioritized findings with clear explanations and fix suggestions. Or use /check in Claude Code to have it fix them for you.

Free vs Paid

Free

14 checks

Security, quality, and project rules — no signup required:

  • • SEC001–SEC006 – Security essentials
  • • SESS002 – Session safety
  • • SCHEMA001–SCHEMA002 – Schema validation
  • • PROJ001, PROJ005 – Project setup
  • • QUAL001, QUAL009 – Code quality
  • • STRUCT001 – Structure
Paid

All 105 checks

Full suite with license key:

  • • Determinism, async safety, concurrency
  • • Type safety, code quality, performance
  • • Frontend, testing, infrastructure
  • View pricing →

CLI Options

--ci

CI Mode

Exit with code 1 if any errors are found. Perfect for CI/CD pipelines.

stablestack src/ --ci
--format json

JSON Output

Output results as JSON for programmatic processing.

stablestack src/ --format json > results.json
--fix

Auto-fix

Automatically fix issues where possible.

stablestack src/ --fix
--watch

Watch Mode

Re-run checks automatically when files change.

stablestack src/ --watch
--disable

Disable Rules

Disable specific rules by ID.

stablestack src/ --disable QUAL005,QUAL006

Claude Code Integration

On first run, StableStack installs slash commands for Claude Code automatically. No extra setup needed.

/check

Run checks and fix issues

Runs StableStack on your project, reviews findings, and fixes issues automatically — starting with the most critical.

/fix-production

Monitor and fix CI/CD builds

Auto-detects your CI/CD platform (GitHub Actions, Vercel, Amplify, Netlify, etc.), monitors builds, and keeps fixing until production is green.

Deterministic AI Caching

Eliminate redundant LLM API calls. Same prompt, same result — served from disk cache instead of hitting the API again.

Install

stablestack deterministic-ai

Installs stablestack_cache.py into your project root, adds .cache/ to .gitignore, and sets up a /deterministic-ai slash command for Claude Code.

Usage

from stablestack_cache import cache

@cache
def get_summary(text: str) -> str:
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": text}]
    )
    return response.choices[0].message.content

# First call hits the API, subsequent calls return from disk
get_summary("Summarize Q4 results")  # API call
get_summary("Summarize Q4 results")  # From cache — free and instant

Utilities

from stablestack_cache import clear_cache, get_cache_stats

clear_cache()           # Wipe all cached results
get_cache_stats()       # Returns dict with file counts and sizes

Enable verbose logging with STABLESTACK_CACHE_VERBOSE=1 to see cache hits and misses.

Configuration

Configure StableStack in your pyproject.toml:

[tool.stablestack]
# Enable only specific rules
enable = ["DET001", "DET002", "SEC001", "SEC002"]

# Or disable specific rules
disable = ["QUAL005", "QUAL006"]

# Path patterns
include = ["src/**/*.py"]
exclude = ["**/migrations/**", "**/test_*.py"]

Ready to dive deeper?

Explore all 105 checks available in StableStack.

View all checks