Your first ITool call
This page walks the simplest possible end-to-end flow: open the chat panel, ask the agent for the Editor state, and watch a single ITool execute. If this works, your install is healthy.
Open the chat panel
Window → Buril → Chat
You should see a panel docked next to the Inspector with an empty conversation, a model selector at the top, and an input box at the bottom.
Say hello
Type:
What scene is open?
Press Enter.
Behind the scenes the agent does three things:
- Plans. The LLM sees your prompt and the tool catalog. It picks
editor_stateas the right tool to answer "what scene is open". - Calls. Buril dispatches
editor_stateagainst the live Unity process. The tool readsEditorSceneManager.GetActiveScene()and returns the path + dirty flag + GameObject count. - Replies. The LLM gets the tool result and writes a natural-language summary back to you.
The full transcript is visible in the chat panel — you can click any [tool: editor_state] row to see the raw JSON request and response. This is the contract — the chat UX is just a wrapper.
What just happened
Three layers were involved:
You ──prompt──▶ LLM provider ──tool call JSON──▶ bridge MCP server ──C# dispatch──▶ ITool.Run() ──▶ Unity API
│
You ◀──reply──── LLM provider ◀──tool result JSON───────────────────────────────────────────────────────┘
- The bridge MCP server runs on
http://127.0.0.1:8766/rpc(HTTP) andtcp://127.0.0.1:8765(raw socket). Both are loopback-only by default. - The LLM provider is whichever one you wired in BYOK providers. Buril never proxies through a Buril-owned server in Community edition.
- The ITool is a 30-line C# class that implements
ITool.Run(JObject input) → object. Auto-discovered via reflection on Editor reload.
Try a few more
Each of these calls a single tool. Watch the tool name in the transcript:
| Prompt | Tool called |
|---|---|
list 5 GameObjects in the active scene | scene_list_gameobjects |
import this fbx into Assets/Models | asset_import_fbx (after you drag-and-drop or paste a path) |
create an empty GameObject called Player | gameobject_create |
show me the console errors | console_get_logs |
open the Lighting window | editor_window_open |
These are five tools out of 3,691. The full catalog lives at Tools/CATALOG.md.
Try a scenario template
Atomic tools are the building blocks. Most users want bigger results. Try:
Build a small racetrack with lakes.
The agent picks the right pair of scenario templates and chains them in one turn:
scene_template_racetrack— generates a loop track with kerbs, start/finish line, and pit lane.scene_template_terrain_with_lakes— adds a procedural terrain underneath with a couple of lakes, applies a sky preset, places a directional light.
Each tool returns a structured envelope with next_steps (e.g. "place a player vehicle prefab at the start line", "add Cinemachine for race cam"). The agent reads those hints and stops when the task is functionally complete — you should see a playable scene in the Game view within ~15 seconds.
Inspect the result: the new GameObjects appear in the Hierarchy under a racetrack root. The Scene view shows the track. Press Play and you have a drivable surface (well — flat ground plus a track shape; physics + vehicle wiring is the next batch of tools).
Try the Reference-to-Scene Pipeline
Reference → Scene is Buril's flagship 1.0 demo. Paste a reference URL or a screenshot path:
Build a scene that looks like https://www.youtube.com/watch?v=<some-clip>
The agent calls build_scene_from_reference (one ITool, full pipeline):
- Extract — pulls a Reference Profile (palette, sky type, terrain density, hero objects).
- Plan — picks a scenario template that matches the profile.
- Whitebox — generates the rough geometry.
- Greybox — applies the palette + skybox.
- Vision feedback — captures a SceneView screenshot, sends it to the model, the model writes a follow-up turn with fixes if anything looks off (magenta materials, wrong proportions, missing hero).
Same flow accepts: a screenshot path on disk, an asset library URL (Quixel / TurboSquid / FAB), an AI-gen image URL, or a style_guide:<name> reference. See the Reference-to-Scene Pipeline docs for the full mode list.
Multi-step plans
The chat panel is not limited to one tool per message. Try:
Make a cube at the origin, set its color to red, and save the scene as RedCube.unity in Assets/Scenes.
The agent chains:
gameobject_create_primitive(cube)gameobject_set_positionmaterial_create+gameobject_assign_materialscene_save_as
You see every step in the transcript and can interrupt at any point. The Stop button cancels the in-flight tool call cleanly.
Where to read next
- ITool architecture — the contract every tool follows.
- Tool registry — how Buril auto-discovers and dispatches 3,691 ITools.
- Multi-Agent Studio — when one agent isn't enough.
- Headless mode — the same tools, called from a CLI for CI/CD.