Skip to content

Cloud Commands

Cloud commands enable cross-developer gene sharing via the Rotifer Cloud Registry. Genes published to the cloud can be discovered, installed, and competed against by developers worldwide.

Authenticate with Rotifer Cloud using GitHub OAuth.

Terminal window
rotifer login

Authentication flow:

  1. Opens browser to GitHub OAuth consent page
  2. User authorizes Rotifer Protocol
  3. PKCE flow exchanges code for tokens
  4. Credentials saved to ~/.rotifer/credentials.json

Example:

Terminal window
$ rotifer login
Opening browser for GitHub authentication...
Waiting for authorization...
Logged in as @yourname

Clear cloud authentication credentials.

Terminal window
rotifer logout

Example:

Terminal window
$ rotifer logout
Logged out successfully

Upload a gene to the Rotifer Cloud Registry.

Terminal window
rotifer publish <name> [options]

Arguments:

ArgumentRequiredDescription
nameYesGene name to publish

Options:

FlagDescription
--description <text>Override gene description

Prerequisites:

  • Must be logged in (rotifer login)
  • Gene must have a valid phenotype.json
  • Compiled WASM (gene.ir.wasm) is recommended but optional

What gets uploaded:

  • Phenotype metadata (domain, schemas, version, fidelity)
  • WASM binary (if compiled)
  • Description and author info

After publish:

  • A .cloud-manifest.json is saved in the gene directory, linking the local gene to its cloud ID
  • The gene becomes searchable and installable by others

Example:

Terminal window
$ rotifer publish my-search --description "Fast web search gene"
Publishing as @yourname...
Uploading to cloud registry...
Gene 'my-search' published to cloud!
ID: a1b2c3d4-...
Owner: yourname
Domain: search.web
Version: 0.1.0
Fidelity: Wrapped
WASM Size: 142.3KB
Others can install it: rotifer install a1b2c3d4-...
Submit to cloud Arena: rotifer arena submit --cloud my-search

Search the Cloud Registry for genes by keyword, domain, or fidelity.

Terminal window
rotifer search [query] [options]

Arguments:

ArgumentRequiredDescription
queryNoSearch keywords (matches name and description)

Options:

FlagDescription
-d, --domain <domain>Filter by functional domain
--fidelity <type>Filter by Native or Wrapped
--sort <order>Sort: newest, popular, fitness
--page <n>Page number (20 results per page)

Example:

Terminal window
$ rotifer search "web search"
┌──────────────────────┬──────────┬────────────┬─────────┬──────────┬───────────┐
Name Owner Domain Version Fidelity Downloads
├──────────────────────┼──────────┼────────────┼─────────┼──────────┼───────────┤
fast-web-search alice search.web 0.2.0 Native 142
my-web-search bob search.web 0.1.0 Wrapped 38
└──────────────────────┴──────────┴────────────┴─────────┴──────────┴───────────┘
Page 1 2 of 2 total
Install a gene: rotifer install <gene-id>

Download and install a gene from the Cloud Registry into your local project.

Terminal window
rotifer install <gene-id>

Arguments:

ArgumentRequiredDescription
gene-idYesUUID of the gene to install

What it does:

  1. Fetches gene metadata from cloud
  2. Downloads WASM binary (if available)
  3. Creates gene directory in your project’s genes/ folder
  4. Saves phenotype.json and gene.ir.wasm

Example:

Terminal window
$ rotifer install a1b2c3d4-e5f6-7890-abcd-ef1234567890
Downloading 'fast-web-search' from cloud...
Installed to genes/fast-web-search/
Domain: search.web
Fidelity: Native
Version: 0.2.0
Test it: rotifer test fast-web-search
Submit to Arena: rotifer arena submit fast-web-search

By default, cloud commands connect to https://rotifer-cloud.supabase.co. You can configure a custom endpoint for alternative deployments:

Via environment variable:

Terminal window
export ROTIFER_CLOUD_ENDPOINT=https://your-instance.supabase.co

Via config file (~/.rotifer/cloud.json):

{
"endpoint": "https://your-instance.supabase.co",
"anonKey": "your-anon-key"
}

Via CLI flag:

Terminal window
rotifer publish my-gene --endpoint https://your-instance.supabase.co