Skip to main content

Overview

Embed Orgo virtual computers directly into your web apps. Build AI agent interfaces, automation dashboards, or any product with live VM displays.
You can use any VNC client to connect to Orgo computers. The orgo-vnc package is a React component for convenience.

Connection details

Every computer is reachable same-origin under www.orgo.ai. The connection base is shown as Connection URL in Computer Settings. The WebSocket form is what the orgo-vnc component, noVNC, and any websockify-compatible client use. You can embed from any domain. There is no origin allowlist and nothing to register with us — the desktop password is the credential, so it is the only thing that decides whether a connection is allowed.

Two credentials, and which one goes in the browser

This is the single most important thing to get right when embedding. Your server holds the API key, calls GET /computers/{id}/vnc-password with it, and returns only the password to your page.
An sk_ API key is rejected if it arrives from a browser — passing one as ?token= returns WebSocket close 4001. Use the desktop password.
Treat the desktop password as root on that computer. The same value opens /ws/terminal and POST /desktops/{instance_id}/proxy/bash, not just the display. Anyone who can read it from your page can run commands on the VM.So: fetch it per-session from your own backend, never inline it into a client bundle (in Next.js, do not put it in a NEXT_PUBLIC_* variable — those are compiled into the JavaScript every visitor downloads), and point embeds at a disposable computer rather than one holding real work.

Connect with raw noVNC (no React)

Fetch the password on your server, then hand it to the client:
app/api/desktop/route.js
Browser
Always handle credentialsrequired and securityfailure. Without them noVNC can stop mid-handshake with no connect, no disconnect and no thrown error — the canvas simply stays black and nothing is logged.

Setup

1

Install

2

Get credentials

  1. Go to orgo.ai/start
  2. Open a workspace and select a computer
  3. Click the menu → Computer Settings
  4. Copy the Hostname, and create an API key for your server
Point the embed at a disposable computer — see the warning above about what the password grants.
3

Configure environment

Create .env.local in your project root. The hostname is public; the API key is not.
Only NEXT_PUBLIC_* values are safe to expose — Next.js compiles them into the client bundle. Keep ORGO_API_KEY un-prefixed so it stays on the server, and never add a NEXT_PUBLIC_ password: the password rotates on restart, so a baked-in one breaks anyway, and until it does it is a root shell sitting in your JavaScript.
4

Add a server route for the password

The password rotates on restart, so fetch it per session rather than storing it.
app/api/desktop-password/route.ts
5

Use the ComputerDisplay component

Props

Programmatic Control

Use the onReady callback to get a handle for programmatic control:

Next Steps

Quick Start

Full SDK setup

API Reference

Control computers programmatically