Docs
Connect to a server
The workbench is a thin client over a local open-lease server. It never holds your provider credentials; it just calls the server’s REST API and streams chat through its OpenAI-compatible proxy.
You’re running the bundled workbench, so it already talks to the server that served it. One command boots the API, the proxy, and this UI together:
gpu ui
To point the browser build at a remote server instead, host it and run gpu serve --cors-origin https://<this-page-origin> on the machine with the GPUs.
Overview
Every deployment is a card: its state, the GPU, uptime, the cost accrued so far (ticking live between polls), and the endpoint once it’s serving. The list refreshes about once a second, so you watch a deployment climb to Ready in real time. Click a card for the full detail view: the event log, the state timeline, health, and logs.
Deploy a model
Two ways in. Catalog model picks a validated entry and its recommended GPU. Any HF model deploys any vLLM-servable Hugging Face repo ad hoc (the CLI equivalent is gpu deploy --hf-repo); you choose the GPU and, optionally, a context length.
The form shows the hourly rate and whether a data center has capacity right now. Deploy is non-blocking: a background daemon drives the pod to Ready. If none is running, start one with gpu up.
Playground
Pick a Ready deployment and chat with it. Messages stream token-by-token through the OpenAI-compatible proxy, which routes by model name to the right pod. Enter sends; Shift+Enter adds a newline; Stop aborts an in-flight response.
Deployment states
A deployment moves through these on its way to Ready and back down:
- RequestedQueued. The reconciler will acquire a pod on the next tick.
- ProvisioningRenting the GPU pod from the provider.
- BootingThe pod is powering on.
- DownloadingPulling the model weights (the slow step on a cold start).
- StartingvLLM is loading the model into GPU memory.
- ReadyServing. Use it in the Playground or via the API.
- DegradedWas ready, now failing health checks. Still billing.
- StoppingTearing the pod down.
- StoppedTorn down. No longer billing.
- FailedGave up after retries. Check the event log on the detail page.
A pulsing dot means it’s working toward Ready. A pod bills from Provisioning through Degraded (anytime it exists on the provider), not once it’s Stopped or Failed.
Call it from code
Open any deployment’s detail page for an API panel: the base URL, the model name, and copy-paste cURL / Python / JavaScript that POST a chat completion. It’s OpenAI-compatible, so any OpenAI SDK works by pointing its base_url at your server’s /v1 and using the deployment’s model name.
Security & privacy
- Your data stays local. The server URL and token live in this browser’s storage. Requests go straight to your machine, never through a third party.
- The token guards everything. If you set
--api-token, every management and inference route requires it. - Cross-origin is opt-in. A hosted workbench can only reach your server if you start it with
--cors-originfor that exact page. It’s off by default and never wildcarded, so a running server isn’t exposed to other sites.