Nanomachine is a Virtual Machine (VM) AI agent dashboard that enables intelligent operative system automation and control. It provides a modern, intuitive interface for interacting with AI agents that can navigate and perform tasks in web browsers, filesystems, and more.
Nanomachine consists of three main components that work together to provide a seamless AI agent experience:
- Client: React-based web application that serves as the user interface
- Server: Node.js backend that manages tasks, chats, and system state
- Bridge: Communication layer between the server and Nanobrowser extension
- Docker Container: Docker container that provides an isolated environment for running the Nanobrowser extension (contains the browser and VNC server)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ │ │ │ │ │
│ Client │ ◄──────────────► │ Server │ ◄──────────────► │ Bridge │
│ (React) │ WebSocket/HTTP │ (Node.js) │ WebSocket/HTTP │ Service │
│ │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
▲
│
▼
┌───────────────────┐
│ Docker Container │
│ (Debian Linux) │
│ ┌─────────────┐ │
│ │ │ │
│ │ Nanobrowser │ │
│ │ Extension │ │
│ │ │ │
│ └─────────────┘ │
└───────────────────┘
Nanomachine currently runs on Linux and macOS (Intel & Apple Silicon). Windows support is coming soon.
The client application provides the user interface for interacting with AI agents:
- Chat Interface: Communicate with AI agents through a familiar chat interface
- Task Log: Monitor AI agent tasks with live status updates and progress indicators
- VM Canvas: View and control browser sessions through an embedded VNC interface
- System Status: Track the status of all system components
Learn more about the client component
The server handles the business logic and data persistence:
- HTTP API: RESTful endpoints for chat and task management
- WebSocket Server: Real-time communication using Socket.IO
- Database Integration: MongoDB for data persistence
- Bridge Communication: Integration with the bridge service
- VNC Service: Proxy for remote browser control
Learn more about the server component
The bridge facilitates communication between the Nanomachine application and the Nanobrowser extension:
- WebSocket Server: Handles real-time bidirectional communication
- HTTP REST API: Provides endpoints for configuration and task management
- Task Routing: Manages task creation, tracking, and event processing
- Configuration API: Endpoints for LLM provider and agent model configuration
NOTE: The bridge is installed inside the Docker container automatically.
Learn more about the bridge component
The scripts directory contains utility scripts for managing the Nanomachine environment:
- Installation Scripts: Set up the environment and its components
- Runtime Scripts: Start, stop, and restart services
- Utility Scripts: Perform system checks and maintenance tasks
The Docker container provides an isolated environment for running the Nanobrowser extension:
- Chromium Browser: Pre-configured web browser with the Nanobrowser extension
- VNC Server: Allows remote viewing and control of the browser
- noVNC: Web-based VNC client for browser access
The container is based on a minimal Debian Linux image optimized for browser automation.
- Node.js 18+
- MongoDB 4.4+
- Docker (for running the Nanobrowser container)
-
Clone the repository:
git clone https://github.com/reindent/nanomachine.git cd nanomachine -
Install dependencies for all components:
npm run install:all
-
Configure environment variables:
- Copy
.env.templateto.envin server and client directories - Update the values as needed for your environment
- Copy
-
Start all components:
npm run dev
-
Navigate to http://localhost:5173
Each component can be configured through environment variables. See the individual component README files for detailed configuration options.
- Dashboard
- Docker container
- VNC client
- Install scripts
- Browsing AI agent integration (using Nanobrowser)
- Tests: we need to add tests for all components
- Multiple browser sessions: ideally each session has its own VM
- VM AI agent: operate virtual machines, OS, filesystem, etc. using natural language
- Windows support: add scripts for Windows
- Electron app: add a desktop application for a more native experience
- Mobile app: create a mobile application to monitor and control the AI agents
- More to come...
We welcome contributions to Nanomachine! Please see our Contributing Guide for more information on how to get started.
This project is licensed under the MIT License unless otherwise specified. Some components may have different licensing terms.
© 2025-present Reindent LLC [email protected]