Ryvx

Docs / Getting Started

Getting Started

Install it, set a model, run a scan.

Install

pip install .                 # from a clone; gives you a real `ryvx` command
playwright install chromium   # needed for render_js_page; everything else works without it

That installs Ryvx as a package, so ryvxworks as an ordinary command anywhere. Running from a clone without installing still works too — use python -m ryvx in place of ryvx in every example below, and pip install -r requirements.txtto get the dependencies. Ryvx isn't on PyPI yet, so there is no pip install ryvx from the internet.

Chromium is only needed for render_js_page, the tool a subagent uses to crawl React/Vue/Angular single-page apps through a real headless browser. Static crawling and everything else works without it.

Set a model

Ryvx is model-agnostic via litellm. Set the API key for whichever provider you want to drive it with — only one is needed:

export ANTHROPIC_API_KEY=sk-ant-...      # for anthropic/claude-*
export OPENAI_API_KEY=sk-...             # for openai/gpt-*
export GEMINI_API_KEY=...                # for gemini/*
# ...or point at a local model:
export RYVX_LLM=ollama/llama3
export LLM_API_BASE=http://localhost:11434

RYVX_LLM picks the model (default anthropic/claude-sonnet-5) using litellm's provider/model naming, so any provider litellm supports works here unmodified.

Run your first scan

Point it at a local directory to review source with no live requests:

python -m ryvx --target ./examples/vulnerable_app

A public GitHub repo works the same way — cloned locally, source-only, no live requests:

python -m ryvx --target https://github.com/org/repo

Black-box testing a live app you own or are authorized to test needs an explicit flag — see Authorization & approval for what backs it:

python -m ryvx --target http://127.0.0.1:5000 --i-am-authorized

--scan-mode controls thoroughness and cost directly: quick (15 turns per agent), standard (40, the default), or deep (80). Named presets bundle a scan mode, instruction, and approval setting together (config.SCAN_PRESETS) so you don't have to remember the right flag combination:

python -m ryvx --target ./app --preset quick-recon
python -m ryvx --target http://127.0.0.1:5000 --i-am-authorized --preset full-pentest

No API key yet?

python scripts/seed_demo_run.pyfiles three real, manually-PoC-confirmed findings against the bundled vulnerable app straight through the actual finding/CVSS/report pipeline — no LLM involved — so the dashboard has real data to look at while you get a key set up.

View results

As markdown, or in a local browser dashboard:

python -m ryvx view              # list runs
python -m ryvx view run-20260724-235448
python -m ryvx dashboard         # http://127.0.0.1:8765

The first time (or after pulling UI changes), build the dashboard frontend once:

cd dashboard-ui && npm install && npm run build

New here and don't want to run a scan yet? http://127.0.0.1:8765/run/?name=demo shows a seeded sample run — fictitious findings, clearly banner-labeled — so you can see real findings, report, and dashboard output before running your own.

Next


← Back to Docs