Skip to main content
Luno Builder is Luno OS’s built-in building agent (the platform agent), the home of Studio. Open a chat in the web app, describe the agent, workflow, or automation you want, and it builds it — writing real TypeScript in your project, connecting integrations, testing what it built, and deploying when you’re ready. No IDE, CLI install, or repo on your machine. It is one of three ways to build with AI on Luno OS: All three edit the same project source and deploy to the same platform, so you can move between them freely — start something in the app, refine it from your editor, or vice versa. Luno Builder is not Luno, the read-only assistant everyone gets in the chat dock: Luno answers questions about what you can see and never creates or changes anything. See Chat.

Start a chat

Open Luno Builder, the home of Studio (/studio); builders, admins and owners have Studio. Each chat session is bound to one Space (project) in your active organization — to work on a different one, start a chat there. With no Space yet, your first message creates one. Describe the outcome you want rather than choosing a primitive up front, the same way you would prompt a coding agent:
Luno Builder inspects your project’s existing code, reads these docs as it works, and asks before consequential choices.

How it works

Behind the chat, Luno Builder works in a hosted session with the luno CLI and a checkout of your project’s managed Git repository — the same source a coding agent edits locally.
  • It edits the shared draft. Every project repository has two branches: main holds the deployed, live state, and luno/draft is the shared work-in-progress draft. Luno Builder saves its edits to luno/draft (and again when its turn ends). Teammates and their sessions share the same draft.
  • The web app renders the deployed state. Workflow canvases, agent pages, and run history show what’s live. Draft edits appear in the Space’s Files tab in Studio (which tracks the draft in real time) until they’re deployed.
  • Deploying promotes the draft. When the agent runs luno deploy, the draft is built, health-checked, and promoted to main and the live runtime. Until then, changes exist only on the draft.
  • It’s already authenticated. Sessions carry your project’s API credentials. Luno Builder never asks you to log in and never runs luno auth login.
When it finishes building or changing something, it links the resource so you can open it directly in the app.

Connect integrations from chat

When a build needs an app connection (Slack, Google, Linear, an API key), Luno Builder shares a connect link. Opening it launches the in-app connect dialog, where you approve OAuth or enter the key and choose the scope. The agent then verifies the connection and continues. Secrets never pass through the chat — you enter them in the connect flow, and they’re stored as credentials like any other connection.

Working alongside coding agents

Luno Builder and coding agents are collaborators on the same project, not alternatives you must choose between once:
  • A coding agent working locally picks up Luno Builder edits with luno pull (which fetches the shared draft) and publishes its own work through luno deploy.
  • Luno Builder sees local work as soon as it’s deployed or on the draft.
  • Everything either one builds is ordinary TypeScript in the project — reviewable, testable, and maintainable by the other.
For editor-based workflows, see CLI for agents. For a walkthrough of the local setup, see the Quickstart.

If you are an agent reading this in a hosted session

Reading this from inside a Luno OS-hosted session (Luno Builder, or an MCP workspace)? The local-setup docs don’t apply to you:
  • You are already authenticated — never run luno auth login, and skip install/luno init/projects link bootstrap steps.
  • Your edits go to the shared draft (luno/draft): Luno Builder saves them with its save tool (never with git commands), MCP workspaces with the file tools and exec_command. Run luno typecheck before you finish — a broken shared draft affects everyone.
  • You cannot open a browser. For app connections, use the connect_app tool (or luno connect <slug> --print-url) and share the link with the user.
  • Draft edits are not live until luno deploy promotes them — say so when you finish without deploying.
Models. Luno Builder offers only the models your organization enabled in Governance → Models (Luno’s curated list until an admin changes it) and Chat models. It starts on MiMo V2.6 Pro (xiaomi/mimo-v2.6-pro); the Luno assistant and other chats start on DeepSeek V4.1 Flash (deepseek/deepseek-v4.1-flash). When the organization turned that default off, the organization’s default model is used, else the first enabled one. The picker remembers your last model and Space. Prompts with a model the organization doesn’t offer are rejected with 403.
Self-hosting: Luno Builder runs on your platform’s model gateway and sandbox provider, so a self-hosted deployment needs a model provider key configured (for example AI_GATEWAY_API_KEY or ANTHROPIC_API_KEY) before chat can answer.

Next steps

CLI for agents

The local editor path: headless CLI, JSON output, deploy-first loop.

MCP for agents

Build from ChatGPT, Claude, or any MCP client in a hosted workspace.

Deploy a project

The draft/main model and what deploy actually does.

Connect credentials

Connect apps, API keys, and OAuth accounts.