Install and sign in
Kavro runs on Windows 10 and 11 (64-bit).
- Create a free account and confirm your email.
- Download the installer from your dashboard and run it. Kavro updates itself when a new version is out.
- Start Kavro and sign in with your account — or choose Use a license key instead if you got a key.
You don't need a compiler to design and test. To build a real .exe, see Building.
Your first project
Click New project (Ctrl N) and choose:
- Type — a Window (a tool, menu or settings window) or a Loader (login → choose a product → launch, with pages and a progress bar).
- Template — start blank or from a finished design. Templates with a login form let you pick Username & password or License key only.
- Language — C++ (Dear ImGui + DirectX 11), C# (ImGui.NET on .NET 8) or Rust (imgui-rs). You can change it later in the project settings.
- Style preset — the colors and shapes to start with; everything can be changed afterwards.
Projects are saved as a .kavro file in a folder of your choice, together with the images and fonts you add.
The editor
The editor has three tabs at the top:
- Visual (Ctrl 1) — the canvas. Widgets on the left, your window in the middle, the inspector with every setting of the selected widget on the right.
- Code (Ctrl 2) — the generated source. The UI file is editable and syncs both ways with the canvas.
- AI (Ctrl 3, Pro) — the AI assistant with its chats and settings. See The AI tab.
The command palette (Ctrl K) finds any command. The console at the bottom shows build output.
Test and build
- Test mode (F6) — use your window inside Kavro as a user would: click buttons, type, switch pages, run actions.
- Build & Run (F5, Pro) — compiles a real Windows program and starts it. Build only is Ctrl B.
- Export source code (Pro, in the build menu) — writes the complete project to a folder you choose, ready for Visual Studio,
dotnetorcargo.
Widgets
Drag a widget from the left panel onto the canvas, or click it to add it to the middle of the page. Every widget has an id (like chk_dark) that you use in code and in actions.
| Widget | What it's for |
|---|---|
| Text | Labels and headings — gradients, outlines, shadows, wrapping. |
| Button | Runs actions when clicked. Filled, gradient, outline, ghost or link; glow and lift on hover. |
| Checkbox / Switch | On/off values. Read them with GetBool. |
| Slider | A number between a minimum and a maximum, with optional value text and suffix. |
| Input | Text entry — placeholder, password mode, icon, maximum length. |
| Dropdown | Choose one of several items (items separated by |). |
| Tabs / List | Switch between sections or pick an item; combine with Visible if. |
| Progress / Spinner | Loading states; the Fill progress & go action animates a progress bar. |
| Panel | A card that holds other widgets; can scroll, clip and cast a shadow. |
| Image | PNG, JPG, BMP or GIF from your assets, with rounding, tint and shadow. |
| Separator | Solid, gradient, fading or dashed lines. |
| Shape | Rectangle, circle, triangle, diamond, polygon, star, ring or line — gradient fill, border, rotation, spin and glow. |
| Color picker PRO | A color value in HEX, RGB(A), HSV or HSL, with optional channel sliders. |
| Hotkey PRO | Lets the user bind a key, in toggle, hold or always mode. |
The Blocks section has ready-made groups — a login form, a license key login, a stat card, a settings row and more.
Layout, panels and pages
- Move and resize with the mouse; guides and the grid help you line things up. Arrow keys nudge by 1 px, Shift + arrows by 10 px.
- Panels — drop a widget on a panel (or set Inside panel in the inspector) and it moves, clips, scrolls and hides together with the panel.
- Visible if — show a widget only when a checkbox is on (
chk_x), off (!chk_x) or a tab/list/dropdown has an index (tabs_main=1, counted from 0). This is how tabbed menus work. - Pages — add pages with the + above the canvas. Buttons switch pages with the Go to page action, with a page transition of your choice. The Free plan has up to 2 pages.
Styling
Every widget's colors, fonts, rounding, borders, glow and entrance animation are in the inspector. A setting left on Auto follows the project theme, so changing the theme restyles everything at once.
- Style editor (Ctrl E) — all settings of one widget in a larger window, with a live preview.
- Theme (window settings → Theme) — accent colors, text, frames, font and size for the whole project; or apply a preset.
- Fonts — pick a system font per widget or add your own
.ttffile.
Actions
Buttons (and value changes, or Enter in an input) run a list of actions in order — no code needed.
| Action | What it does |
|---|---|
| Go to page | Switches page with the page transition. |
| Show notification | Shows a toast (info, success, warning, error). |
| Set value / Toggle value | Changes a checkbox, slider, input or tab. |
| Check login PRO | Compares a username and password input, then goes to a page or shows an error. |
| Check license key PRO | Checks a key input against your keys (separated by |; case and spaces don't matter). |
| Fill progress & go PRO | Animates a progress bar for some seconds, then opens a page. |
| Open website / Run program / Copy PRO | Opens a link, starts a program or file, or copies text. |
| Minimize / Close / Toggle fullscreen | Window controls (fullscreen is Pro). |
| Custom code PRO | Your own code in the project's language. |
Window and background
Click an empty part of the canvas to open the window settings.
- Window — size, borderless or native frame, rounding, border, solid/gradient/image background, open and page animations, drag mode, start in fullscreen (F11 toggles it).
- Titlebar — your own titlebar: height, title, icon, colors, Windows-style or round buttons, an accent line.
- Background effect — 13 animated effects: particles, stars, snow, bubbles, waves, matrix, aurora, fireflies, grid, shapes, hexagons, meteors and ripples. Set amount, speed, size, opacity and two colors.
Notifications
Toasts from the Show notification action can appear inside the window or on the screen, in six positions, with icons, a timer bar and their own style (window settings → Notifications).
The Code tab
The UI file (ui.cpp, UI.cs or src/ui.rs) holds one function per page with a line per widget. Edit it and the canvas updates as you type; change the canvas and the code follows. Keep the // @page markers.
The other files are generated. With Edit mode (Pro) you can change them too — an edited file replaces the generated one when building and can be reset at any time.
Generated files
| C++ | C# | Rust | |
|---|---|---|---|
| Your pages | ui.cpp | UI.cs | src/ui.rs |
| Styles, pages, assets | project.cpp, kavro_assets.h | Project.cs | src/project.rs |
| Kavro runtime | kavro.h | Kavro.cs | src/kavro.rs |
| Host program | main.cpp (Win32 + DirectX 11) | Program.cs (Silk.NET + OpenGL) | src/main.rs (winit + glium) |
| Build | build.bat, CMakeLists.txt | .csproj (ImGui.NET) | Cargo.toml |
Reading values in your code
Use a widget's id to read what the user chose — for example in your own logic or in a Custom code action.
if (kv::GetBool("chk_dark")) ApplyDarkMode();
float volume = kv::GetFloat("sld_volume"); // slider value
int theme = kv::GetInt("cmb_theme"); // dropdown / tabs / list index
std::string name = kv::GetText("inp_name"); // input textif (Kv.GetBool("chk_dark")) ApplyDarkMode();
float volume = Kv.GetFloat("sld_volume");if k.get_bool("chk_dark") { apply_dark_mode(); }
let volume = k.get_float("sld_volume");Building
Kavro finds the tools by itself; you can also point to them in Settings → Build.
| Language | What you need (free) |
|---|---|
| C++ | Visual Studio Community or Build Tools with the Desktop development with C++ workload. The result is a single .exe. |
| C# | The .NET 8 SDK or newer. The first build downloads the NuGet packages. |
| Rust | Rust via rustup with the MSVC toolchain. The first build downloads the crates. |
Build output and errors appear in the console. The built program lives in your project folder under build/<language>.
Using the menu in your own program
The easiest way is Add the menu to my code (Pro), which does the steps below for you and checks that your program still builds. By hand, for C++ with Dear ImGui 1.83 or newer:
- Export source code and copy
kavro.h,project.cpp,ui.cpp,kavro_assets.handstb_image.hinto your project. - Add a
kavro_impl.cppcontaining#define KAVRO_IMPLEMENTATIONand#include "kavro.h", and add it,project.cppandui.cppto your build. - After creating the ImGui context and backends, before the first
NewFrame():
#include "kavro.h"
void KavroConfigure();
// setup
KavroConfigure();
kv::platform().windowed = true; // its own movable window
kv::platform().createTexture = MyCreateTexture; // images: RGBA -> ImTextureID
kv::Init(); // adds the menu's fonts
// every frame, between ImGui::NewFrame() and ImGui::Render()
if (menuOpen) {
kv::Frame();
if (kv::platform().wantClose) menuOpen = false;
}Connect an AI provider
Kavro AI is part of Pro and uses your own AI provider — Kavro never charges for AI. Open the AI tab, pick a provider on the right, paste its API key and press Test. Keys are stored encrypted on your PC and only sent to that provider.
| Provider | Cost | Get a key |
|---|---|---|
| Google Gemini | Free tier | aistudio.google.com/apikey |
| AiHubMix | Free models (default coding-glm-5.3-free) | console.aihubmix.com |
| OpenRouter | Free models (ending in :free) | openrouter.ai/keys |
| Ollama | Free, runs on your PC, no key | ollama.com/download, then ollama pull qwen2.5-coder:14b |
| Anthropic Claude | Paid key | console.anthropic.com |
| OpenAI | Paid key | platform.openai.com |
Leave Model empty for the default, or pick any model your key can use from the suggestions.
The AI tab
- Edit menu — describe a change (“add a Settings tab with three toggles and a volume slider”). It edits this page or the whole project; every change is one step you can undo with Ctrl Z.
- Ask — questions about your menu and the generated code, answered with snippets you can copy.
- Live status — while it works you see whether it's waiting, thinking (open What it's thinking) or writing, with a timer.
- Chats — New chat on the left; rename or delete chats on hover. Each project keeps its own chats.
- Review before applying — shows a change in the live preview first; you Apply or Discard it.
- Settings — answer language, creativity, answer length, default scope, how many earlier messages it remembers, and Your instructions, which are sent with every request.
The AI button in the Visual tab (Ctrl I) opens the same chat as a side panel, so you can see the canvas while it works.
Add the menu to my code
In the AI tab (or the build menu) choose Add the menu to my code and pick your program's folder. Kavro:
- finds the files that set up and draw ImGui, your build file (
.sln,.vcxproj, CMake,.csprojorCargo.toml) and your ImGui version; - lets the AI plan the changes — you review every change as a diff before anything is written;
- writes the menu files and the edits, builds your program, and lets the AI fix compile errors (up to three tries);
- keeps a backup, so Undo all changes puts everything back — even later, after closing the dialog.
If you pick a subfolder, Kavro moves up to the folder with the build file. If Kavro files are already in your project, Only update the menu files refreshes them without the AI.
When something goes wrong
| Message | What to do |
|---|---|
| The provider is very busy | A free model is overloaded for everyone. Kavro already tried other free models; wait a minute or choose another model or provider. |
| The provider's limit was reached | Free tiers allow a few requests per minute or day. Wait, or switch provider. |
| Your API key isn't allowed to use the model | Your key is limited to some models. Allow the model for the key on the provider's site, or pick another model. |
| The model needs credit | It's a paid model. Choose a free one (on AiHubMix: ending in -free) or add credit at the provider. |
| The provider rejected the API key | Paste the key again — the whole key, no spaces. |
| The AI stopped responding | Nothing arrived for two minutes. Try again, ask for a smaller change, or use another model. |
Free and Pro
Free has the full visual editor, Test mode, 15 widgets, up to 2 pages and a C++ code preview. Pro ($10 per month) adds Build & Run and source export, C# and Rust, all widgets, templates, actions and backgrounds, two-way code sync and custom code, Kavro AI and commercial use. See the full comparison.
Cancel any time from your dashboard — Pro stays until the end of the month you paid for, and your projects and exported code stay yours.
Computers and license keys
Pro works on up to 3 computers at a time. Free a slot from your dashboard. A license key (for example from a store purchase) can be redeemed in the dashboard, or used to sign in to the app directly.
Keyboard shortcuts
| New / open / save project | Ctrl N · Ctrl O · Ctrl S |
| Undo / redo | Ctrl Z · Ctrl Y |
| Copy / paste / duplicate | Ctrl C · Ctrl V · Ctrl D |
| Delete / select all | Delete · Ctrl A |
| Nudge 1 px / 10 px | Arrows · Shift + Arrows |
| Visual / Code / AI tab | Ctrl 1 · Ctrl 2 · Ctrl 3 |
| AI side panel | Ctrl I |
| Style editor | Ctrl E |
| Command palette | Ctrl K |
| Test mode / Build & Run / Build only | F6 · F5 · Ctrl B |
| Zoom / pan the canvas | Ctrl + wheel · Space + drag |
| Fullscreen | F11 |
Troubleshooting
The build says the compiler wasn't found
Install the tools from Building, or set the path in Settings → Build (for C++: vcvars64.bat inside your Visual Studio folder).
My built program needs Kavro?
No — it's a normal standalone program. Your images and fonts are built into it.
My edits in the Code tab disappeared
Generated files are rewritten from the canvas. Edit the UI file, or turn on Edit mode (Pro) to keep changes to other files.
Still stuck?
Write to [email protected] — include the console output if it's about a build.