Security & Privacy

renmy runtime reads your source locally
and sends none of it anywhere.

renmy runtime runs entirely on your machine. Your Apex source, test data and schema stay there. This page lists what renmy runtime does with your data and what it does not.

What runs locally

Source code

Never leaves your machine

renmy runtime reads your .cls, .trigger, and .flow-meta.xml files locally. No source is transmitted to Renmy UG, to Salesforce, or to any third party.

Test data

Stays in embedded PostgreSQL

Records inserted during tests live in an embedded PostgreSQL instance on your local disk. The database runs in-process - it has no network port open. Nothing persists between test runs (each test runs in a rolled-back transaction).

Schema

Parsed from your project

Object definitions are read from your sfdx-project.json and .object-meta.xml files. No schema is fetched from a Salesforce org - renmy runtime works entirely from source.

Execution

In-process interpreter

The Apex interpreter runs as a subprocess on your machine. No code is sent to a remote execution environment. Results are computed locally and displayed in your terminal or editor.

Telemetry

renmy runtime records one privacy-minimal activation event by default. Licensed headless CI records a separate, de-duplicated event so repeated builds do not inflate human installation counts. No source code, file paths, test names, record data, repository, branch, workflow, or command arguments are ever included.

Telemetry is used only to measure which installation channels work. It is not sold, shared, or used for advertising.

You can opt out at any time:

bash
# Disable telemetry permanently: add this line to
# nimbus.properties (in the project or ~/.nimbus/)
nimbus.telemetry=false

# Or per shell or CI job
export NIMBUS_TELEMETRY=false

# NIMBUS_NO_TELEMETRY=1 and NIMBUS_NO_TRACKING=1
# are honoured as well
Ordinary first-run activation telemetry is excluded from CI. After a Pro license validates in headless CI, renmy runtime records one separate activation per license fingerprint, CI provider, and installation source. All of the opt-out settings above also disable this CI activation event.

License validation

Pro and Team licenses are validated with the licensing API (Keygen) on activation and at most once a day after that; a validation sends the license key.

Activating a machine with renmy login also sends a one-way hash of a random installation ID, the hostname, the machine's display name (on macOS the Computer Name), OS and architecture, the number of CPU cores and your account ID, to enforce seat limits and list your machines in the portal. Nothing from your code, tests or org is sent.

Free tier requires no network access at all. Licenses are cached locally and validated offline for up to 7 days, so renmy runtime works without internet access for normal use.

bash
# Sign in via browser and activate this machine
renmy login

# What's sent to the licensing API (Keygen):
# {
#   "key": "NIMBUS-XXXX-XXXX-XXXX",
#   "machine": "3f9c…"
# }
# key: handed to the CLI by your signed-in browser
# machine: one-way hash of a random installation ID
# On activation also: hostname, display name, OS/arch,
# CPU cores and your account ID

# What's NOT sent:
# - File paths, project names, or source code
# - Test output, coverage data, or Salesforce data
# - Anything from your codebase or org

Network access summary

renmy testNoneFully local
renmy test:watchNoneFully local
renmy devlocalhost onlyWebSocket to browser on same machine; --addr beyond loopback requires a token
renmy loginportal + licensing APIBrowser handshake to fetch your key, then the key and the machine details above to Keygen.
License check (Pro, Team)licensing API (Keygen)At most once a day; Pro and Team features keep working offline for up to 7 days
renmy upgradeGitHub releasesBinary download. Homebrew and Scoop fetch the same files
Update checkapi.github.comAt most once a day, interactive terminals only, never in CI or under agents. Off: NIMBUS_NO_UPGRADE_CHECK=1
Anonymous telemetrySupabase (EU)One activation event. Opt-out: nimbus.telemetry=false

Enterprise and air-gapped environments

renmy runtime supports fully air-gapped installation. The binary, with the database engine embedded in it, can be distributed via internal artifact repositories without internet access.

For Enterprise customers, on-premise license validation is available on request - no outbound network required for license checks. Contact us to discuss your deployment requirements.

bash
# Air-gapped install: copy the binary directly.
# The PostgreSQL engine is embedded in it,
# so nothing is downloaded.
cp renmy /usr/local/bin/renmy

# Turn off telemetry (or nimbus.telemetry=false)
export NIMBUS_TELEMETRY=false
# and the daily update check
export NIMBUS_NO_UPGRADE_CHECK=1

Questions about security?

If you have specific security requirements or need documentation for an enterprise procurement review, reach out directly.