# Sign in to your Ornn account Source: https://docs.ornn.com/authentication Sign in to Ornn with a passwordless magic link, Google, GitHub, or Microsoft. All methods create or resume the same account, so you can use whichever is most convenient. Learn what happens after authentication based on your account state. ### Sign in or create an account The sign-in page has one email field and one primary action. The action reads “Sign In” or “Sign Up” based on the mode you are in. First-time visitors start in sign-in mode. To create an account, use the Sign Up link under “Don't have an account?”. The page switches to create-account mode. To switch back, use the Sign In link under “Already have an account?”. The mode only changes the page label. Email sign-in and provider sign-in use the same account flow, so either mode can create a new account or resume an existing one. ## Sign-in methods Magic link is the default. Ornn sends a one-time link to your email; no password required. Type your work email into the **Your email** field and submit the form. After you submit, this tab shows **Check your inbox** and confirms that we sent a sign-in link to your email. Open the email and click the link to finish signing in. If you need a new link, click **Resend link**. If the email doesn't arrive within a minute, check your spam or junk folder. The link is single-use and expires after a short window. After clicking the link, Ornn routes you based on your account state. See the table below. On the sign-in page, click the **Google** tile (labeled **Sign in with Google**). Sign in or pick the Google account you want to use. Google redirects you back to Ornn. Ornn routes you based on your account state. See the table below. On the sign-in page, click the **GitHub** tile (labeled **Sign in with GitHub**). Authorize the Ornn app in GitHub. GitHub redirects you back to Ornn. Ornn routes you based on your account state. See the table below. ## What happens after sign-in Where you land depends on the state of your account: | Account state | Where you go | | ----------------------------------- | -------------------------------------------------------------------- | | New user (no profile submitted) | The onboarding form, to complete your company and contact details | | Profile submitted, pending approval | The onboarding schedule page, where your application is under review | | Approved tenant | The reservation flow, ready to browse capacity and submit a bid | Until approval, direct customer-console links return you to the applicable onboarding step. Shared listing links remain viewable in their read-only public form while approval is pending. ## Session persistence Your session stays active across browser restarts. You won't need to sign in again on the same device unless you explicitly sign out or your session expires. Use **Sign out** in the Settings tab of the Account page to end a session at any time. # Changelog Source: https://docs.ornn.com/changelog What's new and changed on Ornn. Product updates, lifecycle changes, and CLI releases. Product updates, lifecycle changes, and CLI releases for Ornn. Newest first. ## MCP customer paths Hosted MCP tools now use the same `/v1/cli/compute/...` gateway vocabulary as the CLI. `ornn_api` should call `/v1/cli/compute/tenants/me/...`, not `/tenants/me/...`. Dedicated storage, VPN, access, and cluster-user tools follow the same contract. ## Interactive SSH only `ornn nodes console` and MCP `nodes_console` are removed. Open a shell with `ornn ssh ` (add `--identity-file` for your PEM). Observability verbs are unchanged. ## CLI 0.2.2 — observability latest and tail The [Ornn Compute CLI](/cli) and [MCP server](/mcp-server) share Observability verbs for reserved machines. * `ornn telemetry latest` / `ornn logs latest` read a one-shot window or log page. `ornn telemetry tail` / `ornn logs tail` follow the same live Observability subscribe feed as the console graphs. MCP exposes `telemetry_latest`, `telemetry_tail`, `logs_latest`, and `logs_tail`. * Interactive SSH is `ornn ssh ` (add `--identity-file` for your PEM). There is no host-snapshot or `nodes console` verb. See the [CLI](/cli) and [MCP server](/mcp-server) pages for the full command and tool lists. ## CLI 0.2.0 and MCP name lockstep The [Ornn Compute CLI](/cli) and [MCP server](/mcp-server) now share the same identity, node, and controller verbs. * `ornn update` installs the latest `@ornncompute/cli` from npm when a newer release is published. * Prefer `ornn slurm` and `ornn kubernetes` to launch or tear down those controllers. Launch is blocked only when the reservation's nodes already belong to the other controller. * MCP session tools are now `identity_whoami` and `identity_status` (replacing `ornn_whoami` and `ornn_status`). Reconnect the agent if your client cached the old names. See the [CLI](/cli) and [MCP server](/mcp-server) pages for the full command and tool lists. ## ACH (US bank account) checkout is live Checkout invoices now accept **ACH (US bank account)** in addition to card. Pick the ACH tab on the Stripe-hosted invoice, enter your US bank details, and Ornn advances your bid or reservation as soon as the transfer clears. * **Card** settles in seconds — your bid or reservation moves forward immediately. * **ACH** typically settles in **1–3 US business days**. Your invoice sits in a **processing** state until the transfer clears; you don't need to pay again. See [Completing your Ornn reservation checkout](/guides/checkout). ## Shorter Quick Connect SSH usernames The **User** shown in a reservation's Connect section (and in the copied **Quick Connect** command) is now a short, friendly name derived from your email or member name — no long identifier suffix. Copy the command and run it as-is: ```bash theme={null} ssh @ ``` If two members on the same reservation resolve to the same name, Ornn appends a small numeric suffix to keep them distinct. Existing sessions and `~/.ssh/config` entries with the previous username keep working until the VM or Bare Metal host is relaunched. ## Docs visual overhaul * Banner artwork on every card, plus a lifecycle illustration on the [introduction](/introduction). * New diagrams: [bid lifecycle](/guides/bidding) and [access modes](/guides/access-overview). * Refreshed theme and content across all guides. ## Docs refresh * Repositioned Ornn as a **GPU omnicloud** across the docs. * Documented the full bid lifecycle: **Pending deposit → Active → Accepted → Reservation created**, plus **Rejected**, **Withdrawn**, and **Expired**. * Clarified that **checkout / down-payment happens before** a bid is reviewable. * Updated Account to reflect four tabs: **Profile**, **Billing**, **Settings**, and **SSH keys**. * Added an [Access](/guides/access-overview) guide with SSH config, port forwarding, data persistence, and troubleshooting. * Added [Manage SSH keys](/guides/ssh-keys) and [Resale market](/guides/resale) guides. * Added the [Ornn Compute CLI](/cli) reference. # Ornn Compute CLI Source: https://docs.ornn.com/cli Install and use the Ornn Compute CLI (ornn) to sign in from a terminal and run tenant-scoped reservation, access, and billing commands through the same web authorization layer as the browser app. Use the Ornn Compute CLI (`ornn`) to sign in from a terminal and run tenant-scoped reservation, access, and billing commands through the same web authorization layer as the browser app. ## Easy Install Install from the hosted web app: ```bash theme={null} curl -fsSL https://compute.ornn.com/cli/install | sh ``` For local development: ```bash theme={null} curl -fsSL http://localhost:3000/cli/install | sh ``` The installer: * prints a short Ornn Compute welcome banner and login prompt * requires Node.js 20 or newer and `npm` * installs `@ornncompute/cli` globally * installs the `ornn` command * adds the npm global bin directory to your shell profile if needed * records the host that served it as `authBaseUrl` in `~/.config/ornn/config.json` Set `ORNN_INSTALL_BANNER=0` to skip the banner or `ORNN_INSTALL_ANIMATION=0` to keep the banner static in scripted installs. After install, restart your shell or source the updated profile, then run: ```bash theme={null} ornn login ornn whoami ornn update ``` ## Browser login `ornn login` uses a browser device flow: 1. The CLI asks the web app for a one-time device code. 2. The CLI opens a browser to `/cli/device/` when possible. 3. You sign in with the normal Ornn web login flow. 4. Once the browser session is authenticated, the CLI device request is approved automatically. 5. The CLI stores the approved session in `~/.config/ornn/auth.json`. If the browser cannot open automatically (for example, on a remote SSH machine), copy the printed URL into any browser, sign in there, and leave the terminal running. The terminal will keep polling until the browser login approves or the request expires. ```bash theme={null} ornn login ``` Useful options: ```bash theme={null} ornn login --no-browser ornn login --auth-base https://compute.ornn.com ornn login --timeout 600 ``` ## Commands ```bash theme={null} ornn help [command] ornn login [--auth-base ] [--no-browser] [--timeout ] ornn update ornn whoami [--json] ornn status [--json] ornn listings list [--gpu-type ] [--facility ] [--json] ornn listings show [--open] [--json] ornn buy [--no-open] [--json] ornn exchange create --node-count [--min-node-count ] --start-date --end-date --price [--no-open] [--json] ornn exchange list [--limit <1-500>] [--cursor ] [--json] ornn exchange show [--open] [--json] ornn exchange update --node-count --min-node-count --start-date --end-date --price ornn exchange withdraw ornn gpus list [--status ] [--limit <1-500>] [--cursor ] [--json] ornn gpus show [--open] [--json] ornn gpus checkout [--no-open] [--json] ornn nodes list [--json] ornn nodes show [--json] ornn telemetry latest [--span 15m] [--start ] [--end ] [--max-points ] [--json] ornn telemetry tail [--duration ] [--json] ornn logs latest [--stream kernel] [--count ] [--before ] [--cursor ] [--json] ornn logs tail [--stream kernel] [--duration ] [--json] ornn nodes launch --key [--mode bare-metal|vm] [--username ] [--network public|private] [--storage-load-drive-id ] [--storage-save-drive-id ] [--wait] [--json] ornn nodes switch --network public|private --key [--mode bare-metal|vm] [--username ] [--wait] [--json] ornn nodes wait [--timeout ] [--json] ornn nodes reboot [--json] ornn nodes hard-reset [--json] ornn nodes ssh-command [--json] ornn nodes keys attach --key [--json] ornn nodes keys list [--json] ornn ssh [--print] [--identity-file ] [--user ] [--json] ornn metrics nodes [--json] ornn metrics node [--json] ornn metrics history [--start ] [--end ] [--max-points ] [--json] ornn metrics watch [--interval ] [--count ] [--timeout ] [--json] ornn clusters list [--json] ornn clusters reservations [--json] ornn clusters eligible-nodes [--type kubernetes|slurm] [--network public|private] [--json] ornn clusters create --type kubernetes|slurm [--network public|private] [--node ] [--node-count ] [--wait] [--json] ornn clusters show [--type kubernetes|slurm] [--json] ornn clusters wait [--type kubernetes|slurm] [--timeout ] [--json] ornn clusters credentials [--type kubernetes|slurm] [--json] ornn clusters kubeconfig [--output ] [--json] ornn clusters ssh-command [--identity-file ] [--user ] [--json] ornn clusters ssh [--print] [--identity-file ] [--user ] [--json] ornn clusters add-node --node [--json] ornn clusters remove-node --node [--json] ornn clusters teardown [--type kubernetes|slurm] [--json] ornn slurm launch [--network public|private] [--node ] [--node-count ] [--wait] [--wait-timeout ] [--json] ornn slurm teardown [--json] ornn slurm status [--json] ornn slurm credentials [--json] ornn slurm ssh [--print] [--identity-file ] [--user ] [--json] ornn kubernetes launch [--network public|private] [--node ] [--node-count ] [--wait] [--wait-timeout ] [--json] ornn kubernetes teardown [--json] ornn kubernetes status [--json] ornn kubernetes credentials [--json] ornn kubernetes kubeconfig [--output ] [--json] ornn networks list [--json] ornn networks show [--json] ornn networks create --name [--cidr ] [--description ] [--json] ornn networks update [--name ] [--description ] [--clear-description] [--json] ornn networks delete [--json] ornn networks reservation [--json] ornn networks attach --network [--json] ornn networks detach [--json] ornn storage volumes list [--json] ornn storage volumes show [--json] ornn storage volumes create --name [--source ] [--json] ornn storage volumes refresh [--json] ornn storage volumes clear [--json] ornn storage volumes delete [--json] ornn storage files ls [--prefix ] [--json] ornn storage files upload [--destination ] [--content-type ] [--json] ornn storage files download [--output ] [--json] ornn storage targets [--json] ornn storage deploy --reservation [--all-nodes] [--read-only|--read-write] [--json] ornn storage detach --reservation [--json] ornn storage filesystem deploy --reservation [--performance-tier ] [--capacity-gib ] [--json] ornn storage filesystem status --reservation [--json] ornn storage filesystem delete --reservation [--json] ornn storage status --reservation [--watch] [--interval ] [--timeout ] [--json] ornn storage buckets list [--json] ornn storage buckets show [--json] ornn storage buckets connect gcs|s3|r2 --bucket |--url [--name ] [--prefix ] [--region ] [--account-id |--endpoint-url ] [--access-key-id --secret-access-key-file ] [--read-only|--read-write] [--verify] [--json] ornn storage buckets update-credentials --access-key-id --secret-access-key-file [--json] ornn storage buckets verify [--json] ornn storage buckets disconnect [--json] ornn keys list [--json] ornn keys add [] --label