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.
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.
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:5000Where 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.
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.