Repository navigation
usage
One ReaperC2 process listens on:
| Listener | Default | Purpose |
|---|---|---|
| Beacon API | :8080 |
Scythe / implant heartbeats, commands, file staging |
| Admin panel | :8443 |
Operator web UI (BEACON_ADDR / ADMIN_ADDR override binds) |
Set ADMIN_DISABLE=1 to run beacon only (no web UI on that instance).
Open the admin URL (for example http://127.0.0.1:8443/login). Use an account from the operators collection or the bootstrap credentials on first run.
After login, open Engagements and choose Workspace on an engagement. Most operator pages require an active workspace (banner in the sidebar). Documentation and Account work without one.
For a full walkthrough of every admin page (especially Beacons), see Operator guide.
| Area | Purpose |
|---|---|
| Engagements | Create workspaces; assign operators; open/close engagements |
| Beacons | Generate clients, Scythe examples, Scythe.embedded download, profiles, kill |
| Commands | Queue shell / Scythe tasks; stage uploads; view artifacts and output |
| Reports | JSON / CSV / Ghostwriter / ATT&CK Navigator layer exports |
| Topology | Interactive beacon graph (liveness and pivot chain) |
| Notes & ATT&CK | Engagement notes and MITRE Navigator layer source data |
| Chat | Operator chat per engagement |
| Engagement logs | Audit trail for the active engagement |
| All logs | Admin-only global audit + exports |
| Users | Admin-only portal accounts |
| Account | Password and optional TOTP 2FA |
| Operator AI | Red team assistant (right-side panel) with engagement context |
Roles: Admin (full access) vs Operator (no user APIs). Legacy accounts without role are treated as Admin.
Requires an active engagement and at least one configured model. List models with REAPER_AI_*_MODELS (comma-separated) or REAPER_AI_MODELS. See .env.example and Operator AI.
Skill text: repository root SKILLS.md (also used by Cursor agents).
- Set Beacon C2 base URL in the UI (or
BEACON_PUBLIC_BASE_URL) to the public origin beacons use (port 8080 / ingress to beacon API — notlocalhost:8443admin). -
Scythe.embedded requires Go on the server host at runtime; sources resolve via
REAPERC2_ROOT/third_party/Scytheor submodule path next to the binary. - Embedded binaries need
TERM_HARVEST=9in the environment before launch (see Beacons page in the UI or Operator guide). - The first pivot is an upstream beacon with SOCKS5 listener checked (no parent). Children set Parent beacon ClientId and Pivot proxy to that listener’s
host:port. Steps: Initial proxy in the operator guide.
| Variable | Notes |
|---|---|
ADMIN_COOKIE_SECURE |
Set true when the admin site is only served over HTTPS |
ADMIN_SESSION_TTL_HOURS |
Server-side session lifetime (default 168) |
ADMIN_TOTP_ISSUER |
Label shown in authenticator apps for TOTP |
- Operator guide — per-page UI reference
- Installation
- Docker Compose
- Kubernetes