dotcommoners · Python · MIT

Browser automation, at fleet scale.

Machineuse is distributed container management for browser automation. Create, schedule, and manage thousands of isolated browser instances across many nodes — with brokerless messaging, load-aware scheduling, and snapshot dormancy. Self-hosted and open source.

Read the docsView on GitHub →

Capabilities

Built to run a fleet, not a browser

Everything you need to operate isolated browsers across a cluster — without a message broker or a SaaS bill.

Distributed architecture

Horizontally scalable across many worker nodes. Add capacity by adding machines — the control plane schedules work automatically.

Brokerless NNG messaging

High-performance communication with no external message broker to run or babysit. Pure NNG, node-to-node.

Intelligent scheduling

Instances are placed by node capability and live load, so browser sessions land where there is capacity.

Container isolation

Each browser runs in a dedicated systemd-nspawn container with its own resources — clean, reproducible, and secure.

Snapshot dormancy

Pause idle instances to filesystem snapshots and revive them on demand. Reclaim resources without losing session state.

Real-time metrics & auto-healing

Time-series metrics per node and automatic failure detection with instance migration keep the fleet healthy.

Quick start

Running in minutes

Start with Docker Compose for a single node, then scale out to a distributed control plane.

# Clone and start a single-node cluster
git clone https://github.com/dotcommoners/machineuse.git
cd machineuse
docker-compose up -d

# Create your first isolated browser instance
machineuse-cli create --image ubuntu:22.04

# Scale out: workers join the control plane over NNG
python -m machineuse.nodes.agent worker-2 tcp://control-plane:5000

Full installation & configuration guide →

Use cases

Where teams run Machineuse

AI agents & computer use

Give agents and MCP tools a scalable pool of isolated, disposable browsers.

Web scraping & data collection

Run large crawling and extraction workloads across nodes with per-session isolation.

End-to-end testing at scale

Parallelize browser test suites across a fleet without a fragile grid.

FAQ

Questions

What is Machineuse?

Machineuse is an open-source platform for distributed container management of browser automation at scale. It lets you create, schedule, and manage isolated browser instances across a cluster of worker nodes, with intelligent load balancing and snapshot-based dormancy. It is built in Python and licensed MIT.

How is Machineuse different from a single headless browser or Selenium Grid?

Machineuse is built for scale and isolation from the ground up: each browser runs in its own systemd-nspawn container, nodes communicate over a brokerless NNG mesh (no central broker to operate), scheduling is load-aware, and idle instances can be snapshotted to dormancy to reclaim resources. It is designed to run a fleet, not a single browser.

Is Machineuse self-hostable and open source?

Yes. Machineuse is MIT-licensed and designed to be self-hosted on your own infrastructure — from a single node to a distributed cluster — with no SaaS dependency.

What do I need to run it?

A Linux host with systemd-nspawn support. You can start in minutes with Docker Compose for a single-node setup, then scale out to a distributed control plane and multiple worker nodes.

Does it work with AI agents and MCP?

Yes. Machineuse targets browser-automation-at-scale use cases including AI agents and computer-use workloads, and the project includes MCP-oriented tooling for programmatic control.

Start automating at scale

Read the docs, browse the source, or reach out. Open source and self-hostable.

github.com/dotcommoners/machineusecontact@dotcommoners.com