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.5.tar.gz (267.3 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.5-py3-none-any.whl (261.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vibesrails-2.1.5.tar.gz
  • Upload date:
  • Size: 267.3 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.5.tar.gz
Algorithm Hash digest
SHA256 7a277cdd109deac5f666b67ae642b21c9a40bc3abe0111c0d003915270e26332
MD5 f45b602ab1d76a0d538535ac6390608d
BLAKE2b-256 86a13f4ac6676bd83b44248a2e48c2b63d07ac8f8cbfef44291209992d46c915

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vibesrails-2.1.5-py3-none-any.whl
  • Upload date:
  • Size: 261.0 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ab5fba87899258606626aac87f36f26b81c3b6686213ff884ae3e6d21182b73f
MD5 69589509798a9e29f9c1208f35172737
BLAKE2b-256 0581a4aa7d251ae438ee4ae5e3e19cac570cca3c34fd175e736d0a19451d645f

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