Machines
Copy a prompt, paste it into NocoAI in a factory session, and replace the words in [brackets] with your own.
- Suggest a machine for this repository with the tools it needs
- Add [Redis] to the machine so the next sessions start with it
A Noco Factory machine sets what a session's cloud computer starts with: languages, package managers, databases and tools. Set up a machine once, and every new session starts ready to run your project. You do not install the same tools in each session.
You manage machines in the factory settings, under Machines: "The environment your sessions start from. New sessions use the default; pick another in the composer."

Before you begin
- To create, edit or build machines, you need the Maintainer or Owner role in the factory. Developers can see machines and pick one for a session.
- Building a machine uses credits.
The base machine
Every factory has the Base machine: "Node.js 24, Python 3, git, GitHub CLI, ripgrep and Chrome. Every machine builds on it, and sessions with no machine run on it." It runs Ubuntu 22.04 with a desktop.
A factory with no custom machine runs all sessions on the base machine.
Open the Machines page
Do one of these:
- In the factory, click Settings (the gear icon) in the left rail, then select Machines.
- Open the project context menu of the factory, select Settings, then Machines.
- In the session launcher, click the machine chip and select Manage machines. The chip shows when the factory has two or more custom machines.
Create a machine
- On the Machines page, click New machine.
- Type a Name.
- Optional: in Copy packages from, select a machine to copy its packages. To start with no packages, keep the default.
- Click Create machine. The machine opens.
- Turn on the packages that the repository needs, and pick a version where the package has one. Packages that NocoDB found in the repository show Detected. See What a machine can have.
- Click Build v1. The build takes a few minutes.
"Builds take a few minutes. Keep working; sessions stay on the current version until it's ready." Until the first version is ready, sessions use the base machine.

What a machine can have
| Category | Packages |
|---|---|
| Languages | Node.js, Python, Go, Rust, Java, Ruby, PHP, .NET, Bun, Deno |
| Package managers | pnpm, Yarn, uv, Poetry |
| Services | PostgreSQL, MySQL, Redis, MongoDB |
| Tools | Docker, Playwright browsers, ffmpeg, AWS CLI, Terraform, kubectl |
For some packages you can pick the version. Type in the search box to find a package.
Services start with every session. NocoDB gives their addresses to NocoAI as environment variables, so tests and dev servers connect without setup:
| Service | Environment variable |
|---|---|
| PostgreSQL | DATABASE_URL |
| MySQL | MYSQL_URL |
| Redis | REDIS_URL |
| MongoDB | MONGODB_URL |
Extra packages and custom commands
For anything that is not in the catalog, use Extra packages. Type the package name under System (apt), Global npm or Global pip, and press Enter.
Use Custom commands for other setup steps. The commands "Run as root after everything above, one per line. A failing command fails the build."
Versions and the default machine
Each build of a machine is a numbered version: v1, v2 and so on. The machine page has three tabs:
| Tab | What it shows |
|---|---|
| Overview | "The version sessions start from, and what's installed." |
| Versions | "Every build of this machine. Choose which one new sessions use." |
| Build log | "Step-by-step output of each build." |
To change a machine, open it and click New version. Turn packages on or off, then click Build v2 (or the next number). Running sessions keep their machine. New sessions use the new version when it is ready.
| To | Do this |
|---|---|
| Use an older version for new sessions | On Versions, select Use this version on the version. |
| Start all new sessions on a machine | On the Machines page, select Make default in the machine's menu. |
| Rebuild a machine on the current base image | Click Upgrade. A machine on an older base image shows Update available. |
| Rebuild with the latest package updates | Select Rebuild with updates. |
Fix a failed build
When a build fails, the version shows Build failed. Open Build log to see the step that failed. NocoDB can suggest a fix for the custom commands: review the Suggested fix, then click Apply fix and rebuild.
Machines that NocoAI suggests
NocoAI can suggest a change to the machine while it works, for example a package that it had to install. The chat shows a card: Add to [machine] for future sessions?.
- Click Add and rebuild to build a new version with the change. "Rebuilds in the background. This session keeps running as is."
- Click Not now to skip it.
If the factory has no machine, Add and rebuild creates one named Main. Only Maintainers and Owners can accept the suggestion.
A factory with no machine can need more tools than the base machine has. Then the session launcher shows "This repo needs tools the default machine doesn't have". Click Set up machine to create a machine with the tools that NocoDB found.

Good to know
- A workspace can build up to 3 machines at the same time.
- Deleting a machine deletes every version. "Running sessions keep going; new ones use the default machine."
- When the factory has two or more custom machines, the session launcher shows a machine chip. The Base machine does not count. Use it to start one session on a different machine.
Related
Last updated on