OpenGen
A free, open-source runtime for commands and files in local Docker sandboxes. Use it independently through its CLI and API, or connect it from the Genisys desktop Developer Console.
A separate open-source product
OpenGen is licensed under Apache 2.0. Its standalone runtime requires no Genisys account, paid subscription or model-provider key. Genisys Local Mode is a paid app plan. Connecting OpenGen does not grant a Genisys plan or include model inference, hosted compute or remote-device access.
1. Start the local runtime
Install Node.js 24, Git and a local Docker daemon in Linux-container mode. OpenGen uses Docker installed on your computer; Docker Desktop has its own installation and licensing requirements.
git clone https://github.com/athompson83/opengen.git
cd opengen
npm ci --ignore-scripts
npm run images:build
node bin/opengen.mjs init
npm run doctor
npm startBuilding the image requires internet access. Keep the service running in that terminal. After the image is built, a sandbox with networking disabled can use locally available tools and files offline.
The default endpoint is http://127.0.0.1:47831. Initialization creates the state folder ~/.opengen, or %USERPROFILE%\.opengen on Windows. Keep its credential private.
2. Connect in the Developer Console
- Open the Genisys desktop app, then Settings → Developer → Open developer console → OpenGen.
- Select Connect default setup. If you use a custom state folder, select Choose OpenGen folder… and pick the folder containing its settings and credential.
- Check the connection state. Genisys reads local credentials in its native process; this website does not connect to localhost or ask for a token.
- Choose a project in the console header. Sandbox actions always belong to that project.
Use the settings and token saved in the selected OpenGen folder. If you override the service port or token only in its environment, align its saved configuration before connecting.
3. Create a sandbox and work
Choose the Node profile and create a sandbox with No network. The console shows its status and resource limits. Run a command as an explicit array of arguments, for example:
["node", "-p", "process.version"]Read or save a file using a workspace-relative path such as src/index.js. OpenGen workspaces are separate from the project folder on your computer. The file editor supports UTF-8 text or Base64, with a 1 MiB limit per file.
- Stop ends processes and retains workspace files. Start starts the container again.
- Reset container recreates the container and retains files; it does not roll the workspace back.
- Cancel command and command timeouts stop every process in that sandbox. Start it again to continue.
- Delete sandbox asks for confirmation before removing the sandbox and all its workspace files.
Optional network access and previews
For package downloads or previews, restart the service with node bin/opengen.mjs serve --allow-network. Check the connection again, then create a sandbox with Internet and local previews and the container ports your app uses, such as 3000.
The app inside the sandbox must listen on 0.0.0.0. The console's preview button opens a port verified by the native client and published only on your computer's loopback interface. Enabling networking also permits outbound connections; a loopback preview is not a public deployment.
Connection needs attention?
- Service unavailable: keep
npm startrunning, confirm the chosen state folder, then select Check connection. - Docker unavailable: start your local Docker daemon in Linux-container mode and run
npm run doctor. - Image missing: run
npm run images:buildfrom the OpenGen checkout, then check the connection. - Connection changed: reconnect to the correct state folder after updating its settings or credential.
OpenGen's initial runtime is for one local owner. It uses ordinary Docker containers and is not an audited security boundary, a microVM runtime or a shared hosted service. Review its security model before running untrusted workloads.
Local operation and recovery · Public API · Client integration