Skip to main content

Security guardrails for AI-assisted development

Project description

VibesRails

The open-source runtime guard for AI coding agents.

Most security tools scan your code after it's written. VibesRails intercepts before execution — secrets are blocked before they touch your files.

Tests Python License

What makes it different

Approach When it acts Examples
Static scanning After code exists Semgrep, Snyk, linters
Pre-install scanning Before adding plugins mcp-scan, Cisco Skill Scanner
Runtime interception Before each write/edit/command VibesRails

VibesRails doesn't wait for you to commit bad code. It blocks it before the file is written.

4-layer runtime protection

Layer Event What it does
PreToolUse Write/Edit/Bash Blocks secrets, SQL injection, eval/exec BEFORE your AI writes them
File Size Guard Write/Edit Blocks files exceeding 300 lines (configurable via guardian.max_file_lines)
PostToolUse Write/Edit Auto-scans every .py file AFTER write (16 AST guards + 7 senior guards, 5s timeout)
Throttle Write/Edit Forces verification every 5 writes, prevents runaway agents
Scope Guard Post-commit Reminds rules after every commit, prevents scope creep

Works with

Agent Integration Level
Claude Code Full hooks + MCP Runtime guard
Cursor MCP server 12 security tools
GitHub Copilot MCP server 12 security tools
Windsurf MCP server 12 security tools
Continue.dev MCP server 12 security tools
Any MCP client MCP server 12 security tools

Install

Note: PyPI publication pending. For now, install from source:

git clone https://github.com/VictoHughes/VIBESRAILS.git
cd VIBESRAILS
pip install -e ".[mcp]"

Quick install (after PyPI publish)

# pipx (isolated CLI — recommended)
pipx install vibesrails

# uv (fast, modern)
uv tool install vibesrails

# pip (classic)
pip install vibesrails

MCP server (requires mcp extra)

pipx install vibesrails[mcp]
# or
pip install vibesrails[mcp]

Developer setup (from source)

git clone https://github.com/VictoHughes/VIBESRAILS.git
cd VIBESRAILS
make install-dev   # installs dev + MCP dependencies
make test          # 1822 tests

Configure (Claude Code)

Add to .mcp.json:

{
  "mcpServers": {
    "vibesrails": {
      "command": "vibesrails-mcp",
      "args": []
    }
  }
}

12 Security Tools

Tool What it does
ping Health check
scan_code 16 AST guards (eval, hardcoded secrets, binding...)
scan_senior 7 senior guards (error handling, hallucination, lazy code...)
scan_semgrep Semgrep integration with CWE classification
check_session AI session detection (Cursor, Copilot, Claude)
monitor_entropy Session entropy tracking with risk levels
check_config AI config file attack detection (.cursorrules, CLAUDE.md)
deep_hallucination 4-level import verification + slopsquatting detection
check_drift Architecture drift velocity monitoring
enforce_brief Pre-generation brief quality scoring
shield_prompt 5-category prompt injection detection
get_learning Cross-session developer profiling + insights

What's Inside

16 V2 Guards -- dependency_audit, performance, complexity, env_safety, git_workflow, dead_code, observability, type_safety, docstring, pr_checklist, database_safety, api_design, pre_deploy, test_integrity, mutation, architecture_drift.

7 Senior Guards -- diff_size, error_handling, hallucination, dependency, test_coverage, lazy_code, bypass, resilience.

22 Secret Patterns -- AWS, OpenAI/Anthropic, Google, GitHub, GitLab, Stripe, SendGrid, Slack, Telegram, Discord, Twilio, npm, PyPI, Supabase, Bearer tokens, PEM keys, database URLs, hardcoded passwords.

8 Hooks Pipeline -- Pre-tool secrets scan, post-tool guard scan, write throttle, scope guard, session lock, session scan, queue processor, mobile inbox.

4 Built-in Config Packs -- @vibesrails/security-pack (OWASP Top 10), @vibesrails/web-pack (Flask/Django), @vibesrails/fastapi-pack, @vibesrails/django-pack.

Learning Engine -- Automatic developer profiling, session tracking, improvement metrics, actionable insights, SQLite persistence across sessions.

CLI Reference

Category Key Commands Count
Setup & Config --init, --setup, --hook, --validate 7
Scanning --all, --file, --senior, --senior-v2 7
Auto-fix --fix, --dry-run, --no-backup 3
Specialized Guards --audit-deps, --complexity, --mutation 9
Community --install-pack, --learn, --upgrade 5
Session Management --watch, --queue, --inbox 5
Guardian --guardian-stats 1

Run vibesrails --help for full details.

Security

1822 tests including 111 security tests. Path traversal protection, SQL injection prevention, ReDoS verification, filesystem sandbox, rate limiting, structured logging with data redaction.

See SECURITY.md for vulnerability reporting.

License

Apache 2.0 — free for everyone.

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

vibesrails-2.1.2.tar.gz (259.6 kB view details)

Uploaded Source

Built Distribution

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

vibesrails-2.1.2-py3-none-any.whl (258.5 kB view details)

Uploaded Python 3

File details

Details for the file vibesrails-2.1.2.tar.gz.

File metadata

  • Download URL: vibesrails-2.1.2.tar.gz
  • Upload date:
  • Size: 259.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for vibesrails-2.1.2.tar.gz
Algorithm Hash digest
SHA256 3cef4836871c462f75c7c5663965fd546d5fdcdab17c578f9d9f62fa309c21f5
MD5 8dae4b73a6749f929910cfa5d1391a96
BLAKE2b-256 fe97eefdf5d4fb59b4730ffd83d4ce478b84eabb6b3b8460ff8de26f2a77766e

See more details on using hashes here.

File details

Details for the file vibesrails-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: vibesrails-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 258.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for vibesrails-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e3d17539416832eaab316d7436c672793b3274975fcdbf9685c48acb4839b432
MD5 28572390c9c631b643ba3100744eb287
BLAKE2b-256 c311cee26a149497740d3cb949c7834186aa1bc29f445c8c8f65d94096ed5bc0

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