docs / security
Security
Rume is local by design. It binds to loopback, is sandboxed to your project root, and never reads your secrets.
Guarantees
- Loopback — binds to
127.0.0.1, never your network - Token-gated — every request carries a per-session token; the proxy
8788and the panel8787require it. No token → 403. - Sandboxed — writes can't escape your project root (path sandbox)
- No secrets —
.envand keys are never read or sent; a sensitive-file denylist is enforced - Session token rotation — tokens rotate; the active project's token is written to
.rume/session - Your deploy — Rume edits source; you ship it however you already do
What gets stripped at the proxy
The proxy forwards your app's responses and removes only X-Frame-Options and the frame-ancestors CSP — so the app can render inside the panel. It does not alter your source other than the injected runtime script.
Deploy hygiene
.env*, .rume/, and internal docs are gitignored, so a Publish never ships your keys. Clean checkouts carry no secrets.
Uninstall & what Rume touches
Rume keeps its footprint small and removable, and it never touches a Babel setup you already have.
- Dev-only Babel config — when a project has no
babel.config.js, Rume adds one that is dev-gated and carries the markerRUME DEV INJECTION. It never overwrites an app's own Babel config. To disable Rume, delete that generated file. .rume/— per-project state (session tokens, task files). Gitignored; safe to delete.- Nothing committed — the injected runtime and
data-rume-locmarkers exist only in the dev responses the proxy serves; they are not written to your source and never ship. - Your edits — the only source changes that persist are the ones you confirm (Save locally or Publish). There is no background modification.