Run your AI agent command center locally and reach it through a controlled private network
AI Maestro provides a self-hosted browser dashboard for organizing terminal-based AI agents across one or more machines. This guide covers a Linux or Windows WSL2 quick-start installation, verifies the dashboard at http://localhost:23000, and explains the limits of the documented development startup method. For remote administration, the safer default is private access through Localtonet VPN Manager because the available AI Maestro documentation does not establish dashboard authentication. A public HTTP tunnel is covered only as a conditional option for deployments protected by an independently verified authentication and authorization layer.
๐ What's in this guide
Choose the right AI Maestro deployment path
AI Maestro is an open-source orchestration platform for terminal-based AI agents. Its current project material advertises four deployment modes: local tmux, Docker, AWS EC2, and AWS ECS Fargate. Those are distinct operational models, not interchangeable installation commands.
This tutorial deliberately narrows its hands-on scope to the local tmux quick start on Linux and Windows through WSL2. These are the installation paths for which the supplied project evidence provides concrete prerequisites, commands, and a local dashboard endpoint. The guide does not present the quick-start commands as the only complete ways to deploy AI Maestro.
| Deployment mode | When it applies | Coverage in this guide |
|---|---|---|
| Local tmux | Running agents and the dashboard on a Linux environment that you manage directly. | Covered for Linux and Windows WSL2 quick-start use. |
| Docker | Containerized operation where application and network boundaries must be defined explicitly. | Summarized only. Container build, storage, bind-address, and upgrade details must come from the current project documentation. |
| AWS EC2 | A dedicated cloud virtual machine under your AWS account. | Outside this tutorial because the supplied evidence does not contain the complete current provisioning and hardening procedure. |
| AWS ECS Fargate | A managed container deployment on AWS without managing the underlying instance directly. | Outside this tutorial because task definitions, storage, networking, IAM, and update procedures require current project guidance. |
The AI Maestro website also describes use on a MacBook, and the project states that it runs where Node.js and tmux are available. However, the evidence supplied for this revision does not provide a complete, current macOS installation and service-lifecycle procedure. We therefore do not turn Linux package commands into unverified macOS instructions. macOS users should consult the current
AI Maestro repository
and its
project documentation
before selecting a deployment method.
The documented manual command yarn dev starts a development process. It is suitable for evaluating and locally verifying AI Maestro, but it is not evidence of a supervised, boot-persistent production service. This guide does not invent a systemd unit, process-manager configuration, container policy, or restart mechanism that the supplied project material does not document.
Understand the local-first architecture

AI Maestro is designed around a browser dashboard that can discover and organize agents, present terminal activity, retain operational context, and support communication between agents. The project lists Claude Code, Codex, Grok Build, Cursor, OpenClaw, Hermes, Droid, and other terminal-based agents as examples of tools that can fit this model.
An agent is treated as a persistent member of a working environment rather than as a disposable task. It can have a name, working directory, memory, inbox, and responsibility for one or more repositories or processes. The dashboard gives the operator a central place to see and switch between these agents.
Multi-machine operation does not mean that every agent shares one filesystem. The project recommends independent working copies and Git-based collaboration. When two agents need the same repository, each can use its own clone and branch, then integrate work through push, review, and merge. That model continues to work when agents move between laptops, servers, containers, and cloud hosts.
http://localhost:23000 after the service starts successfully.
In this architecture, AI Maestro is the application and Localtonet is the connectivity layer. Our client establishes an outbound connection from the selected device, so you do not need inbound router port forwarding or a public IP address. The application must still be healthy and reachable from the device running our client.
Keep those responsibilities separate while troubleshooting. First make AI Maestro respond locally. Next verify the Localtonet client or VPN connection. Only then test from the remote device. A connectivity layer cannot repair missing dependencies, a stopped application, or an occupied local port.
Prepare Linux or Windows WSL2
The current AI Maestro quick start lists Node.js 18 or newer and tmux as requirements. The remote installer is described as installing the dashboard and service, the agent messaging components, and a Claude Code plugin with associated skills and scripts. Claude Code is optional for the general dashboard, although Claude-specific functionality naturally requires a compatible Claude Code installation.
Choose a host that remains available whenever you need its agents. If the computer sleeps, shuts down, loses connectivity, or stops AI Maestro, the dashboard will not be reachable. Localtonet does not change the host's uptime or application lifecycle.
| Requirement | Why it matters | What to verify |
|---|---|---|
| Node.js 18 or newer | AI Maestro is a Node.js application. | Confirm the installed major version before using the manual Yarn workflow. |
| tmux | AI Maestro uses tmux for local terminal session discovery and management. | Run the check inside the same Linux or WSL2 environment where AI Maestro will run. |
| Git | The manual installation clones the official source repository. | Confirm Git is available if you choose the manual path. |
| Yarn | The documented manual workflow uses yarn install and yarn dev. |
Use a project-compatible Yarn installation rather than substituting an undocumented package manager. |
| Linux build tools | Native dependencies may require a compiler and related tooling. | For Debian or Ubuntu-style environments, the project calls out build-essential. |
| Free local port 23000 | The documented dashboard endpoint uses this port. | Ensure that another process is not already listening there. |
Prepare a Debian or Ubuntu-style Linux host
Update package metadata according to your normal administration policy, then install the two Linux packages explicitly identified by the project:
sudo apt install tmux build-essential
That command does not install Node.js, Git, or Yarn. Install those through the version and package-management method approved for your distribution or organization. A universal Node.js command would be misleading because distribution repositories and supported versions vary.
Check the required commands before continuing:
node --version
tmux -V
git --version
yarn --version
The Node.js result must show version 18 or newer. The remaining commands should return version information rather than a command-not-found error.
Install WSL2 on Windows
AI Maestro's documented Windows path uses WSL2. Open PowerShell as Administrator and use Microsoft's current installation command:
wsl --install
Restart Windows if prompted, open the installed Ubuntu environment from the Start menu, and complete the Linux preparation inside that Ubuntu shell. Microsoft documents the current requirements, supported Windows versions, distribution selection, and troubleshooting in its WSL installation guide.
Run the AI Maestro installer and development commands inside WSL2, not directly in PowerShell or Command Prompt. Keep agent working directories in the Linux filesystem, such as:
~/agents/<agent-name>
The AI Maestro project recommends this location instead of a mounted C:\ directory because access to Windows-mounted project files can be slower from WSL. Windows can browse the Ubuntu home directory through a path such as:
\\wsl.localhost\Ubuntu\home\<your-user>\agents
Replace Ubuntu if your installed distribution uses another name.
The recommended AI Maestro quick start downloads a shell script and passes it directly to sh. That is the project's documented convenience path, but it grants the downloaded script your user permissions. Inspect the current script first when required by your security or change-control policy. The manual repository checkout provides a more visible review point.
Install and start AI Maestro
The current project landing page provides a remote quick-start installer and a manual source workflow. They are two quick-start choices within a project that also advertises Docker, EC2, and ECS Fargate deployment modes. Select one method appropriate to this Linux or WSL2 scope, and do not mix both methods in the same working directory.
Option 1: run the remote quick-start installer
Open the target Linux shell
Use a normal shell on Linux or the Ubuntu shell inside WSL2. Confirm Node.js 18 or newer and tmux before continuing.
Inspect and run the current installer
Review the script first if your policy requires it, then run the documented command from the official repository.
Retain the installation output
The project estimates five to ten minutes. Preserve the output and follow any current start, verification, or lifecycle instructions printed by the installer.
curl -fsSL https://raw.githubusercontent.com/23blocks-OS/ai-maestro/main/scripts/remote-install.sh | sh
The project describes this installer as providing the dashboard and service, Agent Messaging Protocol components, and Claude Code plugin components. Installer behavior is version-sensitive, so read its completion output instead of assuming that a returned shell prompt means every component started successfully.
The supplied evidence does not establish stable commands for post-install status, start, stop, restart, update, failure recovery, or rollback. The repository currently contains update and verification scripts, but their supported invocation and state-management behavior were not included in the evidence for this article. Follow the instructions printed by the current installer and verify those scripts in the repository before using them on an active deployment. This guide does not guess their command-line interface.
Option 2: use the manual source workflow
The manual workflow creates a visible checkout of the official AI Maestro repository. This is useful when you need to inspect the source and dependency files before installation.
Clone the official repository
Create a local checkout using the repository URL published by the project.
Enter the checkout
Change into the ai-maestro directory so Yarn reads the project's package and lock files.
Install dependencies
Run the documented Yarn installation command and resolve dependency or native-build errors before startup.
Start the development process
Run yarn dev. Keep the terminal open while evaluating AI Maestro because this command is not presented here as a supervised production service.
git clone https://github.com/23blocks-OS/ai-maestro.git
cd ai-maestro
yarn install
yarn dev
For this manual path, stopping the foreground development process normally means returning to its terminal and sending the terminal interrupt, commonly with Ctrl+C. Restart it by returning to the same repository checkout and running yarn dev again. This is a development lifecycle, not a boot-persistent deployment design.
Before adopting AI Maestro as a continuously available service, choose and validate one of the project's documented deployment modes. Define how it starts after reboot, where state is stored, how logs are retained, how health is checked, and how updates are rolled back. Those decisions differ substantially between tmux, Docker, EC2, and ECS Fargate.
AI Maestro also publishes a Claude Code plugin-only path. The project states that only the planning skill works independently and that the other skills require the full AI Maestro service. Use a full deployment when your goal is the browser dashboard covered here.
Verify the local dashboard
Open a browser on the AI Maestro host and visit:
http://localhost:23000
A successful result is the AI Maestro dashboard, not a connection error, an unrelated application, or a generic web server page. This confirms that an HTTP service is accepting connections on the documented local endpoint.
With the manual workflow, keep the terminal running yarn dev visible. Build errors, stack traces, and startup failures there are usually more useful than a browser's generic connection message. If the process exits, investigate its first meaningful error before restarting it.
Request the local endpoint from the command line
curl -I http://localhost:23000
The exact response status and headers may change with current application routing, so this guide does not require one specific status code. A connection-refused error usually means no process is listening on that address and port. An HTTP response confirms that the TCP connection reached a web service, but you should still open the page and confirm that it is AI Maestro.
Verify inside WSL2 first
If the Windows browser cannot reach the service, run the command-line check from the WSL2 Ubuntu shell where AI Maestro is running. If it works inside WSL but not from Windows, investigate current Windows-to-WSL localhost integration. If it fails inside WSL too, return to the AI Maestro startup output before changing networking settings.
Check for a port collision
If startup reports that the address is already in use, identify the process occupying port 23000. Do not terminate an unknown service until you know what it is. The supplied evidence does not document a supported alternative-port setting, so this guide does not invent an environment variable or command-line flag.
Do not configure remote reachability until the local dashboard works reliably. Localtonet forwards or privately routes traffic to the service you configure. It cannot start AI Maestro or correct an application failure.
Create and validate your first agent
Loading the dashboard proves that the web service responds. Creating an agent validates more of the actual workflow. The current project material describes a guided creation process using the plus button in the sidebar.
Open the creation workflow
Select the plus button in the AI Maestro sidebar.
Name the agent
Enter a descriptive structured name, such as myproject-backend-api, to make its responsibility clear.
Choose the working directory
Select the directory the agent should own. Use a separate repository clone when another agent also works on the project.
Create and inspect the agent
Select Create Agent, confirm that the agent appears, and verify that you can select it in the dashboard.
AI Maestro can auto-discover tmux sessions, so tmux must be available to the same user and in the same environment as the dashboard. The project also describes heartbeat-based standalone agents, but the integration details depend on the agent and are outside this Linux and WSL2 quick-start scope.
Avoid making several agents modify the same working directory unless you have deliberately designed that workflow. Separate clones and branches reduce the chance that one agent overwrites another agent's uncommitted changes. Use Git as the explicit integration boundary.
Use Localtonet VPN Manager for private remote access
The available AI Maestro documentation does not establish that the dashboard requires users to authenticate or enforces authorization between viewers. For that reason, our recommended remote-access design is a private mesh through Localtonet VPN Manager rather than a public HTTP URL.
VPN Manager is Localtonet's private mesh VPN feature. It can connect authorized devices and bridge local networks, with granular firewall rules controlling permitted traffic. This is different from a standard HTTP, TCP, UDP, or File Server tunnel. Those tunnel types expose a specific service through a public address, while VPN Manager creates private network connectivity between approved participants.
Install the Localtonet client on the reachable host
Sign in to your Localtonet account and download the current client package for the operating system that will participate in the private network. Run the package using the normal installer mechanism for that platform, launch the client, and associate it with the device-specific authentication token supplied through your account.
Install the client either on the AI Maestro host or on another authorized device that can already reach it. Keep the client active whenever remote connectivity is required. Client packaging and installation commands can change by platform and release, so obtain them from the current dashboard rather than copying an old package URL or unverified command.
A Localtonet authentication token identifies a client device. Do not place it in screenshots, source control, shell history shared with others, support posts, or article examples. If a token is exposed, replace it through the account workflow rather than continuing to use it.
Build the private-access policy
Use the current VPN Manager interface to create or select the private mesh, add only the devices that require access, and apply firewall rules that limit the remote client to the AI Maestro host and dashboard port. The intended policy is narrow:
- The operator's approved remote device may reach the AI Maestro host.
- Access is limited to TCP port
23000unless another service is explicitly required. - Unrelated mesh participants should not receive dashboard access by default.
- The AI Maestro host should not gain unnecessary access to other private devices.
Exact rule names and interface fields can change, so copy the current device and network values from your own dashboard. Do not reuse example addresses from another deployment. For the maintained product overview, see our VPN Manager private mesh guide.
Test from an authorized remote device
Connect the remote device to the same authorized VPN Manager network. Open the AI Maestro dashboard using the private VPN address assigned or routed to the AI Maestro host, followed by port 23000. Do not use localhost on the remote computer because that name always refers to the remote computer itself.
Confirm that the dashboard works from the approved device and remains unavailable from a device that is not part of the mesh. This positive and negative test verifies both reachability and isolation. If the approved client cannot connect, test the dashboard locally again, check both clients' connection state, verify the destination address, and review the VPN firewall rule.
VPN Manager reduces public exposure, but anyone authorized onto the permitted private path may still reach the dashboard. Enroll only controlled devices, remove devices that no longer need access, restrict the destination and port, and keep secrets out of terminal output.
Use a public HTTP tunnel only with verified access controls

A Localtonet HTTP tunnel can provide a public HTTPS address for an application listening on a local IP address and port. It does not, by itself, establish who is allowed to operate the application behind that address. Because this revision cannot verify native AI Maestro dashboard authentication, direct public tunneling to port 23000 is inappropriate for the default installation described here.
Use VPN Manager for the installation in this guide. Configure a public HTTP tunnel only after you have independently verified an authentication and authorization layer that protects every dashboard route, API route, WebSocket connection, and sensitive operation required by your installed AI Maestro release. URL secrecy is not access control.
An acceptable public design requires more than a login page that protects only the initial HTML document. The access-control layer must cover the complete application path, including real-time terminal traffic and API requests. It should enforce authenticated identities, restrict authorized users, terminate sessions appropriately, and be maintained as part of the deployment. No such reverse-proxy configuration is supplied in the evidence for this article, so we do not invent one.
Conditional HTTP tunnel sequence
If a qualified administrator has already implemented and tested that independent protection, point Localtonet at the protected local endpoint rather than bypassing it and targeting an unprotected AI Maestro process directly.
Install and run the Localtonet client
Run our current client on the protected endpoint's host or another device that can reach it. Obtain the platform package from your current Localtonet account.
Open the HTTP tunnel configuration
Choose the HTTP tunnel family and select the required Process Type: Random Sub Domain, Custom Sub Domain, or Custom Domain. All three serve the configured content through a public HTTPS address.
Select the device token and relay server
Select the connected device and an available relay server from the current dashboard. Do not hardcode a token, server code, or region from an article.
Enter the protected local target
Configure the local IP address and port of the independently authenticated endpoint. Do not point around that protection directly to an unauthenticated service.
Start the tunnel
Creating the configuration does not make it active. Select Start and wait for the selected device and tunnel to show a connected state.
Test authorization from outside the network
Verify that an unauthenticated browser is denied, an authorized user can sign in, protected API and real-time connections work, and sign-out removes access.
Custom-domain DNS requirements are version-sensitive and must be taken from the current Localtonet HTTP tunnel documentation. Do not guess DNS records or validation values.
The public address remains usable only while the selected Localtonet client is connected, the tunnel is running, and the protected local endpoint is healthy. Stop or delete the tunnel when public reachability is no longer required.
Harden the complete deployment
AI Maestro can display or control sensitive operational context. Depending on configuration and agent activity, the dashboard may expose repository names, working directories, terminal output, messages, conversation context, logs, private code, or actions that influence running agents. Treat access to the dashboard as privileged administrative access.
Review project security guidance and releases
Before remote access, review the project's security policy and current releases. Security behavior is version-sensitive, so identify the revision you actually installed rather than relying on a release number mentioned in an older tutorial.
For example, AI Maestro release v0.62.0 documented fixes for unsafe identifiers, path handling, and shell-command construction. Its release note explicitly advised users who expose AI Maestro beyond a trusted network to update. It also documented route-parity corrections and tests involving hostile identifiers and real-server startup.
That release is evidence that version review matters, not a guarantee that v0.62.0 is the newest or sufficient release when you read this. Check later release notes and the current security policy before exposing or upgrading an active installation.
Localtonet provides connectivity, not permission to disregard organizational controls. Obtain authorization before making a workplace service remotely reachable, comply with data-handling requirements, and avoid granting an AI agent broader credentials simply because its dashboard is privately accessible.
Operate, update, and troubleshoot the setup
Troubleshooting is fastest when each layer is tested independently. Begin with the AI Maestro process, then the local HTTP endpoint, then the Localtonet connection, and finally the remote client.
| Symptom | Likely layer | What to check |
|---|---|---|
localhost:23000 refuses the connection |
AI Maestro process | Confirm the process is running, inspect its output, and check whether another service occupies port 23000. |
| The page works inside WSL but not in Windows | Windows and WSL networking | Verify current WSL localhost integration and confirm the service still responds inside Ubuntu. |
| The local dashboard works but private access fails | VPN Manager path | Check both devices' connection state, the destination address, and the firewall rule permitting TCP port 23000. |
| An unauthorized device can reach the dashboard | Private-access policy | Remove unintended participants and narrow the VPN firewall rules to approved source devices and the required destination port. |
| Yarn fails while compiling a dependency | Build prerequisites | On Debian or Ubuntu-style systems, confirm build-essential is installed and inspect the first meaningful Yarn error. |
| tmux sessions do not appear | User or runtime context | Confirm tmux sessions exist under the same environment and user context in which AI Maestro runs. |
| Access stops after closing a terminal | Development process lifecycle | Determine whether that terminal was running yarn dev, the Localtonet client, or both. |
| Remote access fails after an update | Application or access regression | Stop at the local endpoint first, inspect release notes and logs, then restore remote access only after local verification succeeds. |
Use a layered diagnostic sequence
- Confirm that the AI Maestro process is alive.
- Request
http://localhost:23000from the same environment. - Open the dashboard locally and confirm it is the expected application.
- Check the Localtonet client and private mesh connection state.
- Confirm that the remote device is authorized by the relevant firewall rule.
- Test the private destination address and port from that remote device.
This sequence prevents two common mistakes: changing a correct network configuration while the application is stopped, and reinstalling the application when only the remote access path is disconnected.
Understand address scope
localhost always identifies the environment in which the requesting process runs. On the AI Maestro host, it points back to that host. On a remote laptop, it points back to the laptop. If a Localtonet client runs in a container, another virtual machine, or another physical device, its loopback address does not refer to the AI Maestro host.
The supplied evidence confirms the local endpoint but does not establish every supported bind-address, container, or alternative-port setting. If your architecture requires AI Maestro to listen beyond loopback, verify the current project configuration rather than guessing an environment variable.
Update cautiously
Before an update, record the installed revision, preserve important application and agent state using the project's current guidance, and read all intervening release notes. The repository contains update-related scripts, but this article does not claim a stable invocation or rollback contract without verified documentation for those scripts.
After an update, repeat the local checks before restoring remote access. Confirm that the dashboard opens, expected agents appear, and essential operations work. If the update fails, use the rollback procedure documented for the deployment mode you selected. A source checkout, Docker deployment, EC2 host, and ECS task can require different rollback strategies.
Plan for host restarts
Do not assume that yarn dev returns automatically after a reboot. If you are using the manual quick-start path, plan to enter the repository and restart it yourself. For continuous service, move to a documented supervised deployment and test boot recovery before depending on remote availability.
Stop access cleanly
When remote access is no longer required, disconnect the remote device or remove its permission from the private mesh. For a conditional public HTTP tunnel, use the tunnel's Stop control and delete the configuration if it will not be reused. Before stopping AI Maestro, check whether active agents have uncommitted work or incomplete operations.
Frequently asked questions
What port does AI Maestro use?
The documented quick-start dashboard is available at http://localhost:23000. The evidence used for this guide does not establish a supported alternative-port setting, so we do not invent one.
Is yarn dev a production deployment?
No production or supervised-service behavior should be inferred from that command. It is the project's documented manual development startup method. It normally depends on the launching shell and should not be assumed to start after reboot or recover automatically after failure.
Does AI Maestro support Docker and AWS?
The project currently advertises tmux, Docker, AWS EC2, and AWS ECS Fargate deployment modes. This guide implements only the Linux and WSL2 tmux quick start because complete current container and AWS deployment procedures were not included in the supplied evidence.
Can I use AI Maestro on Windows?
Yes, the documented Windows quick-start path uses WSL2. Install it with Microsoft's current procedure, open Ubuntu, and run the Linux-oriented setup there. Keep agent directories in the WSL Linux filesystem when possible.
Does AI Maestro require Claude Code?
No. AI Maestro describes support for multiple terminal-based agents. Claude Code is optional for the general dashboard, although Claude-specific plugin and inbox functionality requires a compatible Claude Code installation.
Should I expose the AI Maestro dashboard with a public HTTP tunnel?
Not for the default installation described here. The available evidence does not establish built-in dashboard authentication and authorization. Use Localtonet VPN Manager for private access. A public HTTP tunnel is appropriate only when a separately verified access-control layer protects all dashboard, API, and real-time application paths.
Does private VPN access make the dashboard completely secure?
It reduces public exposure, but authorized mesh participants may still reach services permitted by your rules. Limit membership, allow only the required source devices and destination port, keep AI Maestro updated, and run agents with least privilege.
Does Localtonet require router port forwarding?
No. Our client establishes an outbound connection to a Localtonet relay server. You do not need inbound router port forwarding, inbound firewall changes, or a public IP address for the Localtonet connection.
Can the Localtonet client run on another machine?
Yes, if that machine can reach the AI Maestro host through an authorized network path. In that architecture, do not use localhost as the AI Maestro destination because it would refer to the Localtonet client machine.
Connect AI Maestro through a private Localtonet network
Verify AI Maestro locally, enroll only approved devices, and use VPN Manager firewall rules to limit remote access to the dashboard host and port. Consider public HTTP access only after implementing and testing a complete authentication and authorization layer.
Get Started Free โ