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

# 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          # 2203 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, --preflight 13
Workflow --check-assertions, --sync-claude, --preflight 3
Community --install-pack, --learn, --upgrade 5
Session Management --watch, --queue, --inbox, --mode 6
Guardian --guardian-stats 1

Run vibesrails --help for full details.

Workflow Tools (v2.2.1)

Tool What it does
--preflight Pre-session checklist: branch, tests, config, doc freshness, session mode
--check-assertions Validate project truths (version, test count, fail_closed rules)
--sync-claude Auto-generate CLAUDE.md sections from code introspection
--mode rnd|bugfix|auto Force session mode — guards adapt thresholds dynamically
--init / --setup Now generates decisions.md template for architecture decision records

Security

2203 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.2.1.tar.gz (294.4 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.2.1-py3-none-any.whl (283.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vibesrails-2.2.1.tar.gz
Algorithm Hash digest
SHA256 a421a4f1156e73171fb8d87026beb1335696a0f272d96e36a493949b867c59e3
MD5 8be269d378c8aa5b207d679189d45ac5
BLAKE2b-256 fb5b22ed8e007abc36a9f88636407cced9bef0f972e97886e8718ff0112c5237

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for vibesrails-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 29dde226ff59f1884f05adb8399567234a1fbfc057e8afe4a6ff19f5f6ca6d49
MD5 c8357abeb3b73c15b4359526ea9cb478
BLAKE2b-256 5a72d0d526679d944753d419cfa1f4cd51b545850616007affaf95d4420a448f

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