Every Cube is one API call away. Or one prompt.
Create, snapshot, restore and tear down isolated microVMs from your own code — a typed TypeScript SDK, a CLI, an MCP server for Claude and Cursor, webhook verification and an n8n node. Every one of them speaks the same v1 REST API.
Cubes from $2.92/moNo credit card to sign up
Every package on this page is open source on GitHubOfficial packages
Every package is published on npm and open source on GitHub, and every one speaks the same v1 API — so the SDK, the CLI and your agent all see the same Cube. Copy a command and start.
Built to be driven by an agent
A Cube is meant to be created, used and destroyed by software — yours, or a model acting on your behalf.
Let the model provision its own machine
Point any MCP client — Claude Code, Cursor, or your own — at the Krova MCP server and the assistant gets the whole lifecycle as tools: create, list, power off, restart, snapshot, restore, domains, port mappings, pricing and images. No glue code, and nothing bespoke to maintain when the model changes.
Or drive it yourself, typed
The TypeScript SDK covers the same v1 API with full types, and the CLI covers the same ground from a shell or a CI step. A machine-readable OpenAPI spec is published, so a client in another language is a generation step rather than a support ticket.
One base image, many identical runs
Set a Cube up with your toolchain, snapshot it, and clone that snapshot per run. Cloning reads straight onto the new disk with no upload or archive hop, so each run starts from a known-good machine instead of re-running an install script and hoping the registry is up.
Know when something changed
Outbound webhooks fire on lifecycle events, and the webhook package verifies the signature for you so you are not hand-rolling HMAC comparison. Scoped API keys and idempotency keys mean a retry storm cannot double-provision.
Every Cube action is a plain HTTP call
The same v1 API the SDK, the CLI, the MCP server and the n8n node are all built on — nothing is held back for our own clients. One scoped header and you are in.
Authenticate with a scoped X-API-KEY header — the same one the packages above use. The full OpenAPI 3 spec is published at /api/v1/openapi.json, so a client in a language we do not ship is a generation step — or drop it into Postman and click around.
Quick answers
Is there a CLI?
Yes — the `krova` CLI lets you create, manage, and connect to Cubes, forward ports, manage domains, and stream webhooks from your terminal. Install it from npm (`npm i -g @krovacloud/cli`) or via the one-line script on this page.
Can I manage Cubes with TypeScript?
Yes — the `@krovacloud/sdk` package is a fully-typed TypeScript client for the v1 REST API. Create Cubes, manage snapshots, attach domains, open ports, and more — all with full type safety and autocomplete.
Is there an MCP server?
Yes — the Krova MCP server lets Claude, Cursor, and any MCP client manage your Cubes in natural language. You can ask an agent to create a Cube, snapshot it, open a port, or check billing — all through conversation.
Can I use this with n8n?
Yes — Krova ships an n8n node that provisions Cubes, powers them on and off, takes snapshots, and deletes them — all as workflow steps with no code.
How do I auth API requests?
Every request is authenticated with a scoped API key sent in the `X-API-KEY` header. Keys are created per space from your dashboard settings, and each one can be scoped to specific permissions. The full OpenAPI 3 spec is published at /api/v1/openapi.json.
Ship your first Cube from code
Create a scoped key, install the SDK, and provision an isolated microVM in a few lines. Signing up is free. Claim $5 in free credit — one-time, per account, and nothing is charged for it.