rv
Health Uyari
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in Scripts/c-hook-proof.sh
- exec() — Shell command execution in Scripts/check-swift-test-preflight.py
- rm -rf — Recursive force deletion command in Scripts/host-attach-proof.sh
- rm -rf — Recursive force deletion command in Scripts/host-oracle.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
rv blocks destructive shell commands from AI coding agents — 95 rule packs, on-device Laya-model judge, secrets & MCP governance, tamper-evident audit. Fail-closed. Never asks the agent.
rv
Your coding agent just tried to run rm -rf /. rv said no.
rv is a fail-closed policy gate for AI coding agents. It sits on your
agent's pre-tool hook and blocks destructive shell commands — and
secret-file reads/edits — before the host runs them. One gate, three
verdicts: allow · deny · indeterminate. It never asks the agent;
only you can override, with a one-time code.
$ rv test 'git reset --hard'
{"decision":"deny","pack_id":"core.git","reason":"git reset --hard destroys uncommitted changes","rule_id":"core.git:reset-hard","schema":"rv.test.v1"}
$ rv test 'git status'
{"decision":"allow","schema":"rv.test.v1"}
Install (30 seconds)
curl -fsSL https://rykanv.com/install | sh
rv setup # auto-detects your agents and wires their hooks
rv doctor # verify everything is live
Works with Claude Code, Codex, Cursor, Grok, OpenCode, Pi, Hermes,
OpenClaw, and Antigravity. Hooks are only written for hosts already
on your machine. Requires macOS 15+ (Apple Silicon) or Linux
(aarch64/x86_64).
How it works
Every shell and file-tool call from every host funnels into one daemon
(rvd) and one pipeline:
agent ─▶ hook ─▶ rvd ─▶ 95 rule packs ─▶ script gate ─▶ on-device judge ─▶ policy ─▶ allow / deny
safe-first npm bodies CoreML (Laya) overrides
deny = floor evaluated can only raise
- 95 rule packs — git, filesystem, disks, cloud CLIs, Kubernetes,
databases, Terraform, CI/CD, payments, and more. Safe patterns run
first; the first blocking hit denies. Three packs are on by default
(core.filesystem,core.git,system.disk); enable the rest by
pack, category, or preset withrv packs enable. - Script gate —
npm testcan't hide a payload: rv evaluates the
actualpre/post/body scripts inpackage.json, not just the
command you see. - On-device neural judge — with a Laya CoreML bundle installed,
pack-allowed commands get a local risk score. The judge can only
raise a verdict, never lower a pack deny. Nothing leaves your
machine."guard.mode": "observe"logs would-be verdicts without
blocking, so you can measure before you enforce. - Policy gate — a fixed override ladder (rebase recovery → pinned
rules → allowlist → allow-once → contained-delete allowance) withnormal/strictsafety levels. Indeterminate (too large, budget
exhausted, core packs missing) is never overridable.
What gets blocked
| Category | Examples |
|---|---|
| Destructive git | reset --hard, push --force, clean -fd, stash clear, checkout -- . |
| Destructive filesystem | rm -rf /, rm -rf ~, find -delete, fork bombs, disk wipes |
| Secret paths | .env, SSH keys, cloud credentials — shell and Read/Edit/Write on Grok, Claude, Cursor |
| Cloud & infra (opt-in packs) | terraform destroy, kubectl delete, aws s3 rm --recursive, DROP TABLE, … |
Not sure why something blocked? rv explain 'git reset --hard' shows
exactly which pack and rule fired.
When you're blocked (and you meant it)
Every hook deny prints a six-character code. Redeem it once, from
your terminal — the agent can't redeem its own code:
rv allow-once a1b2c3 # next matching call in this directory runs once
Need it permanently? rv allowlist add <rule-id>. Typed rules live in~/.config/rv/policy.toml (rv policy show); rv safety set strict
tightens everything to deny-by-default for generated-output deletes.
Beyond the shell
rv is one binary, 24 commands. The rest of the surface:
- Secrets without exposure — agents see placeholders, never values.
Real bytes are injected at the boundary from Keychain, 1Password,
Vault, AWS/GCP/Azure, Infisical, or Bitwarden, then scrubbed from
everything that comes back.rv secrets scan+ a git pre-commit hook
catch leaks before they land. - MCP governance —
rv mcp serveputs every MCP server behind one
gateway with per-tool allow/ask/deny, human approval forask, and
a full audit trail.rv mcp checkfails if any server bypasses rv. - Egress control — contained runtimes reach the network only
through a credentialed CONNECT proxy: per-runtime tokens, SNI-bound
tunnels, binary pinning, and a human review queue (rv egress). - Tamper-evident audit — every decision lands in a SHA-256
hash-chainedaudit.jsonl. Verify withrv audit verify, export
as OCSF 1.3.0 to your SIEM. - Session forensics —
rv scanreplays past agent sessions
(Claude, Codex, Cursor, Grok, Hermes, OpenClaw, OpenCode, Pi)
offline and reports what would have been denied. - Signed org policy — fleet-wide, restrict-only rules signed with
Ed25519 and pinned root-owned on disk. User config can never loosen
them.rv reportemits posture for MDM/fleet collection. - Contained workspaces (macOS) —
rv opencode/rv workspace
run agents on a persistent per-project host under a deny-default
Seatbelt profile: workspace-only writes, proxied HTTPS, no Keychain,
no host signals. Linux refuses rather than downgrade. This is a
hardening layer, not a finished isolation boundary — see the
acceptance audit.
Everyday commands
rv test 'rm -rf /' # evaluate a command, don't run it
rv explain 'rm -rf /' # why would this block?
rv packs # browse the 95 packs
rv packs enable cloud.aws # turn on more coverage
rv blocks # what got denied lately?
rv scan # audit past agent sessions
rv audit verify # check the audit hash chain
rv doctor # service, packs, hosts, judge health
rv uninstall # remove everything rv owns (owner-auth)
All commands speak --json / --robot / --plain / --no-color.
Anonymous usage counters are on by default; opt out with"analytics.enabled": false in ~/.config/rv/config.json.
For developers
git clone https://github.com/christopherkarani/rv && cd rv
swift build --build-tests # Swift 6.4
swift test # full suite (this is the PR gate)
Architecture in one line: a tiny C front door (rv) execs the Swift
CLI, which talks to the rvd daemon over a Unix socket
(XPC on macOS) — 15 IPC methods, one gated evaluation path for every
door. A Python SDK lives in sdk/python. Security
model and evidence: docs/security.
Site: rykanv.com · Docs:
rykanv.com/docs/introduction ·
Discord: discord.gg/uZn9MDUYKx
License
Apache 2.0. See LICENSE.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi