Mac and Linux boxes on Namespace
Namespace rents Macs and Linux machines by the minute. With a Namespace backend, each box is a machine of its own that BB Box makes in Namespace when a thread asks for one, and destroys when the box is released. You need no Mac or server of your own.
This page sets it up from a new Namespace workspace. It was first done on 22 October 2026.
What it costs
Namespace bills a machine for every minute it exists, from when BB Box makes it until BB Box destroys it. Nothing is billed while you have no boxes there.
Namespace’s prepaid prices on 22 October 2026, excluding tax:
| A box of | A minute | An hour |
|---|---|---|
| Mac, 4 vCPU, 7 GB | $0.04 | $2.40 |
| Mac, 6 vCPU, 14 GB | $0.06 | $3.60 |
| Linux, 2 vCPU, 4 GB | $0.002 | $0.12 |
| Linux, 4 vCPU, 8 GB | $0.004 | $0.24 |
Larger machines cost more: see Namespace’s pricing page. Minutes beyond what you prepaid cost half as much again.
BB Box gives each box the smallest machine Namespace offers that has at least the cores and memory the box’s size asks for, and for a Mac its disk. Namespace’s machines come in fixed shapes, so a box can have more than it asked for, and you pay for the machine it gets.
Linux boxes also need BB Box’s Linux images. BB Box builds each in a Linux machine of 8 vCPU and 16 GB, about 4 minutes for the Linux image, 6 to 7 for the desktop’s and 9 for the Wayland desktop’s, and keeps it in the workspace’s container registry. It builds an image when a box first needs it, and again, while boxes use it, when BB Box’s image scripts or BB’s app change, or after a week.
What your plan allows
Your Namespace plan sets 2 limits that matter here:
- How long a machine can live: 3 hours on Developer, 5 on Team, up to 24 on Business, for Macs and Linux machines alike. A box ends then, whatever it is doing. Its thread hears an hour before, and the Box panel shows when it ends.
- How many Mac cores you can have at once: 12 on Developer. Namespace’s trial allowed 6, which is one box of 6 vCPU. When you have as many as your plan allows, a thread that asks for another Mac box is told there is no room. Linux machines have a limit of their own, 32 cores on the trial.
BB Box also has its own limit, Most machines, which is 2 by default.
Before you start
You need:
- a Namespace workspace for BB Box, made at namespace.so. Use one that runs nothing else, so what BB Box makes is easy to see
- a computer with a terminal, to make the token in step 2
- a way for the machines to reach BB’s server: if BB is on a Tailscale tailnet, set BB Box up to join them to it; otherwise BB’s server needs a URL they can reach, such as bb connect’s
Set it up
1. Install Namespace’s command line, and sign in
curl -fsSL https://get.namespace.so/cloud/install.sh | shnsc loginnsc login opens Namespace in your browser. Sign in, and choose the workspace for BB Box.
2. Make a token for BB Box
BB Box uses a token that can only make, find, extend, reach and destroy machines, and read how many the workspace allows. Make it with:
nsc token create \ --name bb-box \ --description "BB Box's boxes" \ --expires_in 8760h \ --grant '{"resource_type":"instance","resource_id":"*","actions":["create","destroy","get","list","refresh","wait","ssh","exec","dial_host","suspend","resume"]}' \ --grant '{"resource_type":"tenant/usage","resource_id":"*","actions":["get"]}'The second grant lets BB Box read the workspace’s limits: how many Mac cores and how much memory it allows at once, and how many are in use. With it, BB Box turns down a Mac box the workspace has no room for before asking Namespace, so another backend can take it. A token made without it still works: bb box doctor warns, and BB Box finds a full workspace only when Namespace refuses a Mac.
It prints the token once, after Bearer Token:, below its Token ID and dates. Copy the value after Bearer Token: for step 4, and do not save it anywhere else. Keep the token ID too: you need it to revoke the token. The token lasts a year, the longest Namespace allows. Make a new one before then.
To replace a token, such as one made before the second grant, make the new one with another name, such as --name bb-box-2: Namespace refuses a name a token already has. Set the new token in BB Box’s settings, then revoke the old one with nsc token revoke --token_id and its ID.
3. Choose where the Macs run
Namespace puts a workspace’s Macs where its regional preference says. You cannot choose a place for each Mac. On 22 October 2026, a new workspace’s Macs ran in Namespace’s sites in the eastern US.
If BB’s server is in Europe and you want the Macs near it, ask Namespace’s support to set the workspace’s regional preference to Europe. Boxes work from either continent. A box’s details say on which continent it runs.
4. Add the backend to BB Box
- In BB Box’s settings, select Add backend, then Namespace.
- Paste the token from step 2 into API token.
- Set API region to
euif BB’s server is in Europe, or leave it asus. It only says which of Namespace’s API addresses BB Box calls. - Set Longest life (hours) to your plan’s limit: 3 on Developer, 5 on Team.
- Set Most machines to how many boxes, Mac and Linux together, you are willing to pay for at once.
- Leave Largest machine empty: with the token’s second grant, BB Box reads the largest Mac the workspace allows from Namespace. Set it, as cores x memory in GB such as
6x14, only to keep boxes smaller than that, or for a token without the grant. Without either, BB Box learns it the first time Namespace refuses a Mac for its size. - Select Save, and turn the backend on.
The token is kept as a secret. BB Box’s settings show only that it is set.
5. Turn on the kinds
Under Kinds, turn on:
- macOS, for Mac boxes you use through a terminal
- macOS desktop, for Mac boxes whose desktop you can watch and use
- Linux, Linux desktop and Linux desktop on Wayland, for Linux boxes, if you want them from Namespace too
Check it works
bb box doctorThe doctor checks that Namespace accepts the token, lists the machines BB Box has there, each with when it ends, and says when each Linux image was built. If you turned the tailnet on, it checks the tailnet too.
Then make a box from the Box panel, or ask an agent to.
What a Mac box is like
A Mac box is a Mac virtual machine on Apple silicon, with macOS 26. You use it as runner, who is an administrator and can use sudo. Xcode and Homebrew are installed.
A Mac is ready about 20 seconds after BB Box asks for it. BB Box then gets it ready for its kind:
- a macOS desktop box builds BB Box’s video helper with the Mac’s Xcode, lets it and Screen Sharing see and control the screen, and keeps the display awake. You can watch its desktop over Screen Sharing or as video
- with the tailnet on, it joins the tailnet as
bb-box-ns-, then the install’s ID and the box’s name
When the box is released, BB Box takes it off the tailnet and destroys the Mac. Nothing on it is kept.
A Mac cannot outlive your plan’s limit. BB Box keeps each Mac’s end an hour ahead while its box is held, up to that limit, so a Mac that BB Box loses track of ends within the hour.
iOS boxes on a shared Namespace host
Namespace can also lend ios boxes, as a pool Mac or a Tart host does (064, 065): each box a macOS user of its own, with its own iOS Simulator device, on a Namespace Mac it shares with other ios boxes. Namespace is the last choice for them, after a pool Mac and a Tart host, as its Macs cost by the minute and live at most your plan’s limit. Using them is in device boxes.
- It is on by what BB Box measures. BB Box measures each Namespace Mac it starts, for any box: whether it runs the iOS Simulator, and whether it has a hardware H.264 encoder. Once it has seen one that runs the Simulator, with a slimming list in BB Box for its newest iOS runtime, Namespace offers
ios. Shared iOS hosts, on by default, turns it off. When the last report came from an older BB Box and lacks what an offer needs, BB Box starts a Mac for a few minutes to measure it again, at most once a day, while shared iOS hosts are on. It logs the Mac’s start, its result and its end, and amacosbox refused meanwhile says why. - A host takes the workspace’s Mac. On a plan that allows one Mac at a time, no
macosormacos-desktopbox starts on Namespace while a host lives, and no host starts while such a box does. Each says why. - It lives until its last box goes, at most an hour before your plan’s limit. In that last hour it lends no new slot, and every box on it ends with it: box_status says when.
- The first box waits for the host to be made: the Mac, then idb_companion from its pin, BB Box’s slimming list and a device made from it, and
bb-box-h264, a few minutes in all. Boxes asked for meanwhile join it. A later box gets a ready slot in seconds. - Its device is the first of BB Box’s models the Mac’s Xcode has, on its newest iOS runtime: on Xcode 26.1.1, the iPhone 17 on iOS 26.2.
- Video comes from the Mac’s hardware H.264 encoder where it has one, and from
bb-box-h264, in software, where it does not. Namespace’s Macs of one kind can differ: of the M4 Pro VMs measured in October 2026, one had no hardware encoder. Each host measures its own Mac, and where Macs have differed,box_listandbb box doctorsay Namespace’s Macs vary by machine. - A slot’s commands run as its user, in its own launchd session, through Namespace’s gateway and
sudo, as Namespace’s Macs run no SSH server of their own for other users. So such a box has nossh <box name>, and no terminal in the panel.
bb box doctor has a check, Shared iOS hosts on Namespace, that says whether a host runs, its slots, when it ends and how its video is encoded.
What a Linux box is like
A Linux box is BB Box’s own Linux image, with Ubuntu, as on any Docker host, in a container on a Linux machine of its own. You use it as box, who can use sudo, and it has Docker of its own. Desktops have the same apps as on other backends.
Once its kind’s image is built, a Linux box is ready in about 25 seconds, and a desktop in about 35: the machine starts in a few seconds, and pulling the image from the workspace’s registry takes most of the rest. The first box of a kind also waits for its image to be built, and says so while it waits, with how long the build takes: in its row in the Boxes page, in bb box status, and in what an agent’s box_acquire and box_status answer.
BB Box reaches the machine through Namespace’s SSH gateway, and the box’s commands run with docker exec through it. With the tailnet on, the machine joins the tailnet, as a Mac does, and the box reaches BB through it.
A Linux box can run VMs and emulators of its own: Namespace’s machines have KVM, and the box’s user may use /dev/kvm. So a thread that asks for linux-kvm can get a box from Namespace. As such boxes cost by the minute, a thread that asks for plain linux gets one from Namespace only when no other backend has room.
A Linux box ends at your plan’s limit, as a Mac does, and is destroyed when it is released.
Check that nothing is left running
BB Box labels every machine it makes. To list every machine in the workspace:
nsc list --allWithout --all, nsc list leaves out machines made through the API, which is how BB Box makes them.
Each machine listed should be a box in BB Box’s Boxes page, or, for at most an hour, a machine building a Linux image, with the label bbbox-role=image-build. BB Box checks its backends every few minutes, and destroys a machine whose box has gone once BB says the box’s thread has ended. bb box doctor lists any machine no box claims. If one stays, destroy it with nsc destroy followed by its ID.
The workspace’s container registry keeps BB Box’s Linux images, under bbbox/. They cost nothing but their storage.
With the tailnet on, the machines show in Tailscale’s admin console, under Machines, with the tag tag:bb-box. BB Box removes any it no longer has within 15 minutes.
Turn it off
-
Release the boxes on Namespace.
-
Turn the Namespace backend off in BB Box’s settings. Boxes it already has keep working until they are released.
-
Check that
nsc list --alllists nothing of BB Box’s. -
Revoke the token.
nsc token listshows its ID:Terminal window nsc token revoke --token_id <ID>
Once the token is revoked, BB Box cannot make machines, and Namespace bills for nothing more.