Ninoo

Ninoo Builder

Prompting and editing

You build by chatting. These tips get you better results with fewer prompts, which also keeps the cost down.

Write a good first prompt

  • Say what it's for. “A sign-up page for my running club” beats “a form”.
  • List the must-haves. Two or three things it has to do. Leave the rest for later.
  • Describe the look in everyday words. “Clean and calm, lots of white, one green accent”. A screenshot of a site you like works too.
  • Mention phones if most people will use it on one.

If something is unclear, Ninoo makes a sensible choice and tells you what it picked, rather than stopping to ask. Correct it in your next message.

Change it step by step

  • Ask for one or two changes per message. Big lists are harder to get right in one go.
  • Point at things the way you see them: “the second card”, “the blue button under the title”.
  • Describe what's wrong, not just “fix it”: what you did, what you expected, what happened.
  • If a change made things worse, Undo it rather than asking Ninoo to change it back.

Each message is a turn. Ninoo plans, edits files, runs checks and then replies in a few plain sentences about what changed. A turn can use up to 40 steps, and a message can be up to 20,000 characters.

Attach images

Paste, drop or attach screenshots, sketches, logos or photos. Ninoo looks at them and can put them in your app. They're saved in the project under public/uploads/.

File typesPNG, JPEG, WebP, GIF or SVG
SizeUp to 5 MB each. Large photos are shrunk to 2,000 px on the long edge before upload.
Per messageUp to 10 images

While Ninoo is working

The message box while Ninoo is working: a typed follow-up, with a Queue button and a square Stop button
While Ninoo works: Queue sends your next message when the turn ends; the square button stops it.
  • Queue. Keep typing. Your next message waits and goes out as soon as the current turn ends. You can cancel queued messages: the X on the waiting-message notice clears them all.
  • Stop. Ends the turn now. Changes made so far stay; Undo removes them if you don't want them.
  • Someone else is building? On a shared project, others can prompt at the same time. See parallel prompts.

Edit code by hand

Open the Code tab to read every file. Editors can change a file and save with Save, ⌘S on a Mac or Ctrl+S elsewhere. Ninoo is told about your edits at the start of its next turn, so it won't undo them by accident.

The Code tab: a file list on the left and an editor with a Save button
The Code tab. Hand edits are saved as versions too.
  • Files over 512 KB and binary files (images, fonts) can't be opened in the Code tab.
  • If a collaborator saved the same file meanwhile, you're told before anything is overwritten.
  • node_modules and git internals are hidden. Viewers can't see .env files.

The preview

The preview is your app running live in the workspace. Use the buttons above it to switch between desktop, tablet (820px) and phone (390px) widths, reload it, or open it in its own tab. The preview only runs while the workspace is awake. To share the app with people outside the project, publish it.

If the preview stays blank for a long time, you'll see Try again and Open in a new tab. Usually a retry is enough.

When your app breaks

If your app hits an error in the preview, a bar above it says “Something broke in your app” (or “Your app doesn't build”) with the first line of the error. Press Fix it and a message asking Ninoo to find the cause, with the error attached, appears in your chat box. Read it, add anything you know, and press Send. The X hides the bar. The error only ever goes to your own chat, and only when you send it. Viewers see the bar but can't send it.

A bar above the preview: Something broke in your app, the error TypeError: Cannot read properties of undefined (reading 'map'), a Fix it button and a close button
An error in your app, ready to send to Ninoo.
New projects show this bar after the next workspace update. Older projects, and apps whose vite.config.ts no longer has Ninoo's error reporter, don't show it: describe the error to Ninoo instead.

Which AI model builds your app

The Builder uses nicrron/builder: GPT-6 Luna, with GPT-5.4 mini and Claude Sonnet 5.5 as fallbacks, so a provider outage doesn't stop you. You can't pick a different model in the Builder today. Ninoo Code lets you choose one; see the CLI reference.