TutorialStefan VaskevichStefan Vaskevich

Kimi K3 + Unity CLI: 10 Games Built by an AI Agent

Unity's new CLI lets an agent write, run and inspect a live Editor. Kimi K3 built eight playable Unity games in 22 prompts for $103 - the full setup, the per-game numbers, and where Unreal lost.

Unity CLI key art: a stone tower blasted apart by heavy spheres, with the words Unity CLI Create Games

Tools used in this article

Can an AI agent build a working game in Unity on its own? Yes, and it is now boring enough to measure. Stefan handed Kimi K3 ten written briefs and Unity’s new command-line interface, then walked away. Eight came back as playable Unity builds: 22 prompts, about 23 hours of unattended agent time and $103.34 of API tokens in total. Below: the setup, the per-game numbers, and the part where the same model on Unreal Engine lost badly.

A model that writes C# is not new. It has been able to do that for two years. What changed in July 2026 is that Unity gave it a way to run the C#, look at the running game and fix its own mistakes, without a human relaying console output back and forth.

The whole setup in one line
Install Kimi Code CLI → install the Unity CLI (one PowerShell command) → unity auth login → add com.unity.pipeline to a Unity 6 project → confirm with unity editors running → drop a .mcp.json in the project root → start the agent in that folder with max thinking and YOLO mode. Ten minutes, zero problems, and every piece is free except the model tokens.
The .mcp.json config, since Kimi is not on Unity's client list

unity mcp configure covers Claude, Cursor, VS Code, Codex, Windsurf, Cline, Zed and a dozen others. Kimi is not one of them yet, so write the file by hand. Save this as .mcp.json in your Unity project root and change the two paths to yours.

{
  "mcpServers": {
    "unitycli": {
      "command": "C:/Users/<you>/AppData/Local/Unity/bin/unity.exe",
      "args": ["mcp", "--project-path", "C:/Users/<you>/kimi-test"],
      "env": { "NO_PROXY": "*", "UNITY_NO_BANNER": "1" }
    }
  }
}

The third argument is the same project path that unity editors running reports. If those two strings disagree, the agent connects to nothing.

Watch all ten tests

Every brief, every result and every number, on YouTube.

1. What the Unity CLI actually changes

Unity shipped the CLI on 20 July 2026. It is a single self-contained unity binary that installs editors, resolves project versions, manages modules and handles auth from the terminal. Useful for CI on its own. The part that matters for agents is the layer above it.

The CLI manages Unity
unity install, unity editors, unity open, unity auth login. JSON and TSV output, exit codes 0 / 1 / 130, non-interactive installs, service-account auth.
The Pipeline package drives it
com.unity.pipeline turns a running Editor into an automation target. unity command lists what it exposes; any static method becomes a command with a [CliCommand] attribute.
eval reaches inside it
unity command eval compiles C# with Roslyn and runs it on the Editor's main thread. No recompile, no domain reload, answers in milliseconds, gated behind a security token.

Two properties turn that into an agent loop. The output is structured, so a model gets parseable results instead of scraped console text. And the Editor is self-describing: run unity command with no arguments and it reports the operations it currently exposes, so the agent discovers its own capabilities at runtime instead of working from a hardcoded list.

Why this beats the old MCP round trip
The usual change-and-check cycle costs seconds at best: edit, recompile, relaunch, screenshot, read. Against an Editor that is already up, eval answers in milliseconds. Multiply that by the 236 to 544 model calls a single game took in these tests and the difference stops being a detail.

2. Install it in about ten minutes

1

Install the agent first

Stefan runs Kimi here, so that goes in first: one install command from the Kimi site, then kimi login. The CLI, the desktop app and the web interface all reach the same account, and the web one is only used in the video so the chat history is visible on screen. Any MCP-capable agent works in its place.

2

Install the Unity CLI and sign in

One line in a terminal. On Windows, PowerShell:

$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex

On macOS or Linux the equivalent is a curl | bash one-liner from the same CDN. The installer adds itself to PATH, so close the window, reopen it, and run unity auth login. A browser tab opens, you sign in (Google works), and the terminal says you are signed in.

Unity command-line interface documentation page with the install script for Windows PowerShell
The install is one line and self-contained. There is nothing to add to PATH by hand and nothing else to install on a fresh machine.
3

Add the pipeline package to a Unity 6 project

The CLI on its own only manages Unity. To let it talk to a running Editor, the project needs com.unity.pipeline. Create a project in Unity 6 (these tests ran on 6000.4.0f1), open Window → Package Management → Package Manager, and install com.unity.pipeline by name. From the terminal, unity pipeline install does the same thing.

That single package brings both the MCP surface and eval support. Unity 6.0 LTS is the floor; older versions are not supported.

Unity 6 Package Manager opened from the Window menu to install com.unity.pipeline
Window, Package Management, Package Manager, then add com.unity.pipeline by name. The terminal route does the same in one command.
4

Confirm the Editor is visible

Open a terminal and run unity editors running. It lists every Editor the CLI can currently see, with the process ID, the version and the project path. If your project appears here, the hard part is done.

unity editors running listing the kimi-test project with its process ID, Unity version and path
Unity CLI v1.0.0-beta.3 seeing the live Editor. Copy the project path from here; the MCP config has to match it exactly.
5

Point your agent at it

For a supported client this is one command, for example unity mcp configure claude. Run unity mcp configure --list to see who is on the list: Claude Desktop, Claude Code, Cursor, VS Code, VS Code Insiders, Copilot CLI, Windsurf, Cline, Codex, Kiro, Trae, OpenClaw, Antigravity, Zed, Continue and the MCP Inspector.

Kimi is not there yet, so write the .mcp.json from the callout at the top of this article into the project root by hand. Note the flag is unity mcp configure --list and not unity mcp list, which errors out.

unity mcp configure --list printing the supported MCP clients and their config file locations
Sixteen clients configure themselves in one command. For anything else, including Kimi, it is one hand-written JSON file.
The .mcp.json file open in VS Code with the unitycli MCP server entry
The whole config. The command is the unity binary, the third argument is the project path, and the file has to be named .mcp.json.
6

Start the agent in that folder and test the connection

Open a new chat in the project folder, or start the CLI there. Stefan sets max thinking and YOLO mode, the Kimi equivalent of bypassing permission prompts in Claude Code, then asks it to test the connection. On a first run the agent reads .mcp.json itself to work out what it has been given.

Kimi reading .mcp.json and confirming the Unity MCP connection works
Connection test on the first try. Setup to first prompt took under ten minutes with no troubleshooting.

3. Ten briefs, eight Unity builds, and the numbers

Each test was one written brief, no reference project, no starter template, primitives only and no imported assets. Every brief ended with an instruction to verify the result before reporting back, along the lines of “actually play it before you say it works” or “run a few waves yourself before telling me it works”. The follow-up prompts were visual passes and bug fixes, not rebuilds.

#BuildDriven byPromptsTimeTokens in / outAPI cost
01Stack TowerUnity CLI22 h 17 m283k / 124k$9.16
02Spider WalkerUnity CLI31 h 49 m359k / 157k$11.60
03Shader GardenUnity CLI32 h 20 m370k / 162k$11.97
04Ping PongUnity CLI21 h 34 m265k / 116k$8.57
05Cross RoadUnity CLI45 h 08 m693k / 303k$22.38
06Beat PulseUnity CLI21 h 36 m247k / 108k$7.98
07DemolitionUnreal MCP3~7 hnot shownnot shown
08Suika MergeUnity CLI34 h 37 m565k / 247k$18.24
09NavMesh DefenseUnity CLI33 h 40 m416k / 182k$13.44
10Fireworks NightUnreal MCP48 h 38 m928k / 406k$29.99
Unity totals (8 builds)2223 h 01 m3.20M / 1.40M$103.34

Costs are recalculated at Kimi K3 API rates ($3 in, $0.30 cached, $15 out per million tokens). Stefan ran the tests on a subscription, which works out cheaper; the API figures exist so the numbers are comparable.

The ones that worked

Stack Tower was the first test and set the tone: two prompts, one to build and one to upgrade the visuals, and the result is playable and fun. Slabs slide back and forth, the overhang gets sliced off and falls away as debris, colours cycle as the tower grows. The camera sits slightly left of centre and the stacking animation is plain, but nobody had to touch a line of it.

Stack Tower running in Unity: a neon stack of sliced slabs with a score counter
Test 01, two prompts, $9.16. The falling-debris VFX was the part Stefan liked most, and it was never asked for explicitly.

Spider Walker is the one to steal for your own project. A six-legged walker with no animation clips and no Animator: every leg is posed in code with inverse kinematics, feet plant on the ground and stay planted while the body moves, and the gait alternates in a tripod pattern. Setting that up by hand for a custom character is an afternoon of bone work in any engine. Here it was three prompts and 1 hour 49 minutes, and two of those prompts were visual polish.

Spider Walker in Unity, a six-legged procedural IK walker crossing blocky terrain
Procedural IK, tripod gait, zero animation clips. The legs stretch a little at extremes, which one more prompt would have fixed.

Ping Pong is the plainest brief of the ten and the one that carries the most weight, because Stefan gave the identical prompt to a second agent on a different engine so the two could be cut side by side. The Unity version came back in two prompts and 1 hour 34 minutes: neon on dark, one accent colour per side, a trail on the ball, a pop and a small shake on impact, first to five. A square artefact still flickers on some hits. Cheapest but one, at $8.57.

Neon Pong running in Unity: cyan and magenta paddles on a dark court with a glowing ball trail
Two prompts in Unity. The glow, the impact ring and the readable score all arrived without a follow-up asking for them.

Shader Garden asked for five effects hand-written in CG with no Shader Graph: dissolve, hologram, lava, toon and waves, plus a plain lit sphere as the control. Four of the five landed. The toon shader is the miss, and a sphere is a poor subject for a toon shader, so the brief carries some of that. The agent’s own test was a good one: every effect that failed to compile would have shown up as Unity’s magenta error material.

Shader Garden in Unity showing simple lit, dissolve, lava and hologram spheres on pedestals
Five hand-written CG shaders, no Shader Graph. Dissolve, lava, hologram and waves work; the toon pass is the one that missed.

Cross Road is the most complete build of the set and the most expensive Unity one. Endless recycled lanes, a chicken that hops one grid square per key press, cars, rivers with rideable logs, a rail lane with a train that warns before it arrives, and a camera that creeps forward so falling behind kills you. It was playable on the first pass, which is why it earned two visual passes and a bug fix on top: four prompts, 5 hours 8 minutes, $22.38.

The Cross Road test card showing four prompts, five hours eight minutes, 693k tokens in and $22.38
The brief, the build and the bill. 544 model calls went into this one, and the sound design was added in a later pass.

NavMesh Defense is the least glamorous build here and the most useful. Enemies pathfind on a live NavMesh that towers carve at runtime, with no scripted waypoints, and the agent worked out the shortest route through the winding walls without being told anything about routing. The balance is a mess, cannon damage is odd and the health bars are two pixels tall, but the systems layer is correct.

NavMesh Defense running in Unity with a wave of creeps pathfinding along a winding route toward a crystal
Live NavMeshAgents carving a mesh at runtime, no scripted waypoints. Three prompts and $13.44 for the systems; the balance would take a human afternoon.

The ones that fell short

Suika Merge is the honest failure. The fruit-merging jar looks fine in 3D and everything moves, but fruit of the same tier sometimes refuses to merge, and three prompts across 4 hours 37 minutes did not fix it. This is the cheapest concept in the whole set and it took the second-longest Unity run.

Suika Merge running in Unity, a glass jar filling with coloured spheres and a score of 266
Nine tiers, physics pile, no textures. The merge rule fires most of the time, which is the worst kind of bug to hand an agent.

Beat Pulse synthesised every voice in code with no audio files in the project: kick, hat, bass and pad, at 92 BPM, with a visualiser reacting to each. The music is structured rather than random noise, which is the bar the brief set, but the visuals stayed basic and the mix has no limiter. Cheapest run of the ten at $7.98.

Beat Pulse in Unity, neon columns pulsing around a glowing sphere with a procedural audio HUD
Four synthesised voices, zero audio assets. The session also ate nine phantom recompile timeouts on compiles that had already succeeded.

4. Where Unreal Engine lost

Two of the ten ran in Unreal through its MCP instead, with the same model and the same style of brief. They are the two most expensive rows in the table, and they are the reason the other eight stayed in Unity.

The cleanest evidence is not in that table at all. Ping Pong was run twice from the same prompt: once through the Unity CLI, once through VibeUE in Unreal. Same model, same brief, same day. Unity took two prompts. The Unreal counterpart needed far more time and far more revisions to reach the same place, played a little laggier, and lost the look the brief asked for: no glow anywhere, a score you cannot read at 1080p, win text sliced by the centre line, paddles down to thin slivers.

The same Neon Pong brief built in Unreal Engine: flat blue court, thin paddles, no glow
The same brief in Unreal. Put this next to the Unity shot above: the neon never arrived, and it cost more time to get here.

The demolition range was meant to be a Niagara test: a cannon, a brick wall, a stone tower and a wooden shed, with a heavy ball that knocks things apart and slow motion on a key press. The destruction physics came out fine. The Niagara effects came out so dense you cannot see the cannonball. It took about seven hours.

The demolition range in Unreal Engine, a brick wall exploding into debris under cannon fire
Physics: good. Niagara: unusable, and the reason this test ran seven hours. Unreal through MCP, not the Unity CLI.

Fireworks Night is the single most expensive run in the video: 4 prompts, 8 hours 38 minutes, 928k tokens in and $29.99. It ran overnight, crashed the editor three times and had to be resumed. The fireworks themselves look good. The lake reflection is not a reflection at all, just duplicated particles falling the wrong way, which is exactly the sort of thing a screenshot-based review pass fails to notice.

The Fireworks Night test card showing four prompts, eight hours 38 minutes and $29.99
One scene, $29.99 and three editor crashes. Same model, same prompting style, a different execution surface.
The bottleneck is the review loop, not the model
In Unity the agent writes a script, runs it and reads the result in one fast round trip, and in runtime it can query live values, not only look at pictures. In Unreal it drove the editor through MCP and verified its own work by taking screenshots, which is slow and misses anything a still frame hides. Same model, same briefs, roughly triple the wall-clock time. Code-first engines suit this way of working, and that matches what happened with Godot earlier this year.
Which model or tool is ahead right now? Check the Arena
Kimi K3 is open-weight, so with enough VRAM it runs locally, and Stefan rates its results comparable to models that cost several times more per token. That kind of claim ages in weeks. Blind, community-voted comparisons are what the TOP 3D AI Arena exists for, and the leaderboard shows who leads today.

What this actually costs

$103.34 for eight Unity games
about $13 per playable build, at API rates
23 hours of agent time
unattended; roughly 2 h 53 m per build
22 prompts total
2 to 4 per game: build, visual pass, bug fix
Under 10 minutes of setup
install, auth, one package, one JSON file

None of these ten is a shippable game. Balance is off, HUDs are ugly, one merge rule never got fixed and the tower defense needs its numbers redone by hand before anyone would call it playable. What the numbers do say is that the prototype stage of a small 3D idea now costs a tenner and an afternoon you spend elsewhere, and that the engine you pick changes that price by a factor of three. Judgement, taste and balance stay yours. Typing the systems layer no longer has to be.

More on agents inside engines: Claude Code plus Godot MCP, Unreal Engine 5.8’s native MCP, running a local LLM against an engine, and a full UE5 level in one day.

Frequently asked questions

What is the Unity CLI?

A single self-contained unity binary, released in July 2026, that manages editors, modules, projects and auth from the terminal. With the experimental com.unity.pipeline package it also drives a running Editor or a development Player build over a local API, and unity command eval compiles and runs arbitrary C# inside that live instance with no recompile and no domain reload. Structured JSON output and a predictable exit-code contract are what make it usable by an agent, not only by a human.

How do I connect an AI agent to Unity over MCP?

Run unity mcp configure <client> for a supported client (Claude Desktop, Claude Code, Cursor, VS Code, Codex, Windsurf, Cline, Zed and others). For anything not on that list, including Kimi, write a .mcp.json in the project root: the command is the path to unity.exe and the args are mcp, --project-path, and your project path. Then start the agent inside that folder.

Which Unity version do I need?

Unity 6.0 LTS or newer for com.unity.pipeline. These tests ran on 6000.4.0f1 with Unity CLI v1.0.0-beta.3. Install the package from the Package Manager or with unity pipeline install, then confirm the project shows up in unity editors running.

What did the ten games cost?

The eight Unity builds came to 22 prompts, about 23 hours of unattended agent time and $103.34 at Kimi K3 API rates, roughly $13 and under three hours per game. The two Unreal runs were the outliers: Fireworks Night alone cost $29.99 across 8 hours 38 minutes, and the demolition range ran about seven hours.

Why did Unreal do worse than Unity here?

The agent's feedback loop is the bottleneck. In Unity the agent writes a script, runs it and reads the result in one fast round trip, and it can query live runtime values. In Unreal it drove the editor through MCP and checked its work with screenshots, which is slow and hides anything a still frame does not show. The Niagara-heavy runs also crashed the editor three times overnight. The clearest test was Ping Pong, run twice from the identical prompt: two prompts in Unity, far more time and revisions in Unreal through VibeUE, and the Unreal build still missed the look the brief asked for.

Want to compare these tools yourself?

Kimi K3 + Unity CLI: 10 Games Built by an AI Agent | Top 3D AI