Dolaima

A Chinese-first coding agent · Vibe Coding Agent
Say what you want changed — it reads your files, edits the code, runs the program and fixes what breaks.

.NET 10 NativeAOT single file·No runtime to install·Five desktop front ends + mobile·Built-in VML virtual machine

The Dolaima chat screen on a phone

SCROLL

And all of these

The same VM, the same phone — every picture below was compiled and run on the device. The sources live under examples/.

Gomoku running on a phone
Gomoku
Chinese Chess running on a phone
Chinese Chess
Tetris running on a phone
Tetris
Pac-Man running on a phone
Pac-Man
Gorilla (C++) running on a phone
Gorilla (C++)
Piano running on a phone
Piano
Calculator running on a phone
Calculator
1945 Air Force running on a phone
1945 Air Force
Minesweeper running on a phone
Minesweeper

What it looks like

Phone and tablet run the same UI: the editor, compile-and-run and the same agent. Tap a thumbnail below to switch.

The Dolaima home screen on a phone

Home · the entry point

Five tabs along the bottom: Home, Chat, Shell, Files, Settings. Home shows which model is in use and whether a key is configured — you do not have to dig through settings to find out.

The bundled examples

44 example programs that ship with an icon — games, tools, graphics demos. Each runs on your phone with vml run; the icon is the one the program itself carries.

1945 空战
1945 空战
Air3d
Air3d
Blackjack
Blackjack
Breakout
Breakout
Calc
Calc
Chess
Chess
Donkey
Donkey
2048
2048
Gomoku
Gomoku
Gorilla
Gorilla
Gorilla Pro
Gorilla Pro
Gyro
Gyro
Hammurabi
Hammurabi
Hurkle
Hurkle
Invaders
Invaders
Lander
Lander
Life
Life
Mario
Mario
Matrix Rain
Matrix Rain
Maze
Maze
Minesweeper
Minesweeper
Nibbles
Nibbles
Nyancat
Nyancat
Pacman
Pacman
Piano
Piano
Plane
Plane
Pong
Pong
Pool3d
Pool3d
数字华容道
数字华容道
Qbjc Guess
Qbjc Guess
Race3d
Race3d
Racer
Racer
Snake
Snake
Snake3d
Snake3d
Sokoban
Sokoban
Solar3d
Solar3d
Starfall
Starfall
Tank3d
Tank3d
Tetris
Tetris
Tilt
Tilt
Typing Rain
Typing Rain
Weather
Weather
Whack
Whack
Wordle
Wordle

One VM, 27 languages

The bundle carries the VML virtual machine, an assembler, 27 language front ends and 18 backend translators — C, C++, Python, Go, Rust, BASIC, Pascal, Lua and more all compile to its own bytecode.

That is how the sample programs and small games on the phone are built. All 27 languages compile to the same backend, sharing one runtime and one drawing interface.

CC++PythonGoRustJava C#JavaScriptSwiftKotlinDart RubyLuaSchemeForthFortran PascalBASICObjective-CDRLadder

Compile and run, locally

The compiler ships inside the app: no network, no SDK, no system compiler to install first. Unpack it and build one of the samples.

The same holds on a phone — workspace, editor and compile-and-run all live on the device, and no executable code is ever downloaded.

→ vml run primes.c
✔ Compiled: primes.c in 7.7 s
[phase] link 7.7s (80 library modules, 69,873 instructions)
46 primes below 200
2  3  5  7  11  13  17  19  23  29
31  37  41  43  47  53  59  61  67  71

An outline and an AI in the editor

The editor's bottom panel has five pages: Problems, Output, Find, Outline and AI. Outline lists the functions and types in the current file, each with its parameter list and return type; tap one to jump to that line, with the same syntax colours as the code.

The AI page chats about the whole file: Ask only answers, Edit returns a complete rewritten file and shows a diff line by line — nothing is written until you tap Apply, and one step undoes it. Each file keeps its own conversation, and Stop is one tap away while it works.

Problems  Output  Find   Outline  AI

ƒ add(int a, int b) → int      L12
ƒ main() → int                 L28
Color                          L41

Terminal, web or graphical

The default is a full-screen ANSI terminal UI; you can also drive it from a browser, from plain CLI in a script, or open the graphical UI. All five front ends share the same agent and the same config.

And there is watch mode: it watches files for AI! comments and acts on them.

# Full-screen terminal UI (default)
waycoder

# Web UI in your browser
waycoder --web

# Plain CLI (scripts / CI)
waycoder --cli

# Graphical UI
waycoder --gui

# One-shot task
waycoder -p "collect every TODO under src into a single list"

# Watch files for AI! comments and act on them
waycoder --watch

49 built-in tools

Read and write files, edit, search, Git, LSP navigation, background jobs, web fetch, memory, todos, batch runs across repositories — and when a job is big enough it splits the work out to sub-agents running in their own workspaces.

Permissions, sandbox and cost all stay visible: you can look before anything on your machine is touched.

Read and write filesEditSearchGitLSP navigation Background jobsWeb fetchMemoryTodosBatch runs NotebooksScreenshots and imagesSpeech to textDrawingSub-agents

Your key, no proxy

Point it at your own provider (DeepSeek, OpenAI, Anthropic, Gemini, Ollama…) and you are billed by that provider directly.

We do not resell, proxy or collect your conversations. Configuration stays on your own machine.

Your device
→
Your model provider

There is no server of ours in the middle.

Go deeper into VML

VML is the virtual machine and compiler toolchain bundled with Dolaima. It covers five kinds of programs — stdio, colour TTY, classic BGI graphics, cross-platform UI and cross-platform 3D — each with complete, readable, runnable examples (including the solar-system one).

Free to download, pay only to unlock

The editor and compile-and-run for C and VML assembly are free. The Full edition is a one-time purchase (not a subscription) that unlocks the compiler and the optimizer for all 27 languages. Desktop builds are portable — unpack and run.

See pricing

🪟 Windows
Windows 10/11 · GUI / terminal editions · x64 and ARM64
🐧 Linux
GUI / terminal editions · x64 and ARM64 · apt available
🍎 macOS
GUI / terminal editions · Apple silicon and Intel · Homebrew available
🤖 Android
Direct APK · free edition, one-time purchase unlocks all compilers
📱 iOS
App Store · free download, one-time in-app purchase
⬆️ Already installed?
Built-in self-update: waycoder --update

Current version: — Configure a model API key on first run — see the guide.