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.
Start your server with this page allowed as a cross-origin caller, then connect from the sidebar. Your server URL and token stay in this browser and are sent only to your machine.
gpu serve --cors-origin https://<this-page-origin>
Needs the API extra: pip install 'open-lease[api]'. Add --api-token on the server and paste the same token when you connect.
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.