KRATE open source

Studio?Your tool, to make a krate file.

Write it, build it, run it, pack it. One file that works on Mac, Windows and Linux from the same bytes.

Download Studio Read the source

Free while we build it · the player is MIT and Apache licensed · works with the AI you already pay for

Krate Studio, ready to build, with previously built apps along the bottom

What is in it

The build, watched

Compile, check, run and pack, with the engine's real output on screen.

Port what you have

krate port reads a project you already have and tells you what it would take. Read-only.

Any AI, or none

Drives the coding AI you already pay for. Your keys stay with your tool. Turn it off and write every line yourself.

The wall

Read what any app declares without running it:
krate run app.krate --dump-caps

See it render

Every build paints a real frame. Screenshot your app in CI with no display attached.

Ship three ways

The file, a link, or a card that carries the app inside a picture of it.

Four steps

Real timings on an M4.

  1. Say what it is seconds
  2. It builds minutes
  3. It runs ~2s
  4. One file instant

Built with it

Each one is a single file, around 110 KB, running from the same bytes on Mac, Windows and Linux.

Query, a SQL client made with Krate
QuerySQL client, 116 KB
Trace, a log viewer made with Krate
Tracelogs and traces, 111 KB
Probe, an API client made with Krate
ProbeAPI client, 113 KB
Pulse, a finance dashboard made with Krate
Pulsedashboard, 92 KB

Questions

What language do I write in?
Rust today, compiled to a WebAssembly component. The guest is ordinary Rust with one rule: it may import only krate:* interfaces, never wasi:*. That rule is what keeps an app to tens of kilobytes and inside its sandbox. krate check-app is the oracle: it tells you whether your code builds, imports cleanly, runs and paints a frame.
Can I bring an app I already have?
That is what krate port is for. It reads your project and reports what maps cleanly, what needs a capability, and what will not work at all. It is read-only: it never builds, runs or edits your source. Start there before you decide whether the rest is worth your weekend.
What can it not do yet?
Plenty, and we would rather say so. Working today: windows and widgets, 2D canvas and GPU rendering, audio in and out, speech to text, camera, scoped filesystem, HTTP and WebSockets, key-value and SQL storage, clipboard, dialogs, notifications. Not yet: text to speech, printing, multiple windows, serial and Bluetooth, screen capture. Anything needing heavy GPU work is early.
How big is the runtime my users install?
About 11 MB on macOS, once. After that every Krate app they receive is just a file. You ship no installer and maintain no per-platform build, and the player is open source so nobody is trusting a binary they cannot read.
What happens to my dependencies?
Pure Rust crates generally work. Anything reaching the operating system directly does not, because that is what the sandbox exists to prevent. Krate provides the same capability through its own interface instead, which is why the import rule is strict. krate port tells you which of your dependencies land on which side of that line.
Do I have to use the AI?
No. Studio drives whichever coding AI you already pay for, and it can be turned off entirely. The CLI does everything the window does, so krate create, krate pack and krate run work fine from a terminal and a text editor.
Is my app locked to your servers?
No. A .krate is a plain zip that carries the app and its own source. It runs with the open source player and nothing else. If we disappeared tomorrow, every file already shipped keeps working.

Build once. Ship one file.

Free while we build it. The player is open source, and every app you make is a file that is yours forever.

Download Studio Read the docs