The rngo CLI is currently packaged as part of the node library, and is distributed via npm. You can install it globally:

> npm install -g rngo

You can also add the library as a dev dependency to your project:

> npm i -D rngo
> npx rngo sim

Or with yarn:

> yarn add -D rngo
> yarn rngo sim

Examples in this doc will assume a global installation.


Authenticate with the rngo API

> rngo auth

This kicks off a device authentication flow. It copies a code to your clipboard and opens the rngo web app. You'll need to sign in (or sign up) and paste in the code.

To sign out, run:

> rngo auth signout


Initialize a repo for rngo

> rngo init

Writes an initial config file to .rngo/config.yml, sets up .gitignore and stages both files.

If you have any systems, you should add them to .rngo/config.yml prior to committing. See the Systems reference to see how.


Infer stream configs from systems

> rngo infer

Update stream configs to match the state / schema of their associated systems.

This is an idempotent operation which will not overwrite any customizations you've made to the config, so you should run it whenever a system schema changes.

Currently, only Postgres is natively supported.


Run a simulation and download the data

> rngo sim

Syncs your project's config to the rngo API, creates a simulation and drains the data to object storage. Once completed, downloads the data and imports it into any associated systems.

By default, sim will use 1 as the seed. You can specify a different seed by passing the --seed flag:

> rngo sim --seed 41

You can specify the relative start time of the simulation using the --start flag and specifying a duration expression:

> rngo sim --start "daysAgo(180)"


Print docs

> rngo help

For a specific command, run (for example):

> rngo help sim