Getting Started
What You Need
Section titled “What You Need”- Host machine (where you code): macOS, Linux, or Windows with WSL
- Node.js 22.5+
- A user-managed Node install such as Homebrew,
nvm, or Volta if you wantnpm install -gto work withoutsudo - For Pi provider: Pi must be installed separately
- Client device: iOS, Android, macOS, or Linux
- Flutter runtime for the mobile app
- Network: Tailscale, private LAN, or localhost
Install the Daemon
Section titled “Install the Daemon”From npm (recommended)
Section titled “From npm (recommended)”For the default Codex path:
npm install -g sidemesh @openai/codexFrom source (recommended for development)
Section titled “From source (recommended for development)”git clone https://github.com/mukhtharcm/sidemesh.gitcd sidemeshnpm installnpm run buildnpm link # makes sidemesh available globallyConfigure Providers
Section titled “Configure Providers”For the default Codex path, one command is enough:
sidemesh upThis will:
- Create
~/.sidemesh/config.jsonif it does not exist yet - Start the daemon in the background
- Print the base URL, token, and pairing QR code
Use sidemesh setup when you want to customize providers, host features, or advanced settings before starting.
| Provider | Extra setup |
|---|---|
| Codex (default) | Install codex CLI: npm install -g @openai/codex |
| Pi | Install Pi: npm install -g @mariozechner/pi-coding-agent, then pi /login |
| Copilot | Install GitHub Copilot CLI and authenticate |
| Fake | No extra setup; for testing only (--dev flag) |
Start the Daemon
Section titled “Start the Daemon”Background mode (manual)
Section titled “Background mode (manual)”sidemesh up # create config if needed, start, and print pairing detailsUse this if you want Sidemesh running in the background without setting up a service. The app can connect normally, but if you use Restart or Update in the app, you may need to start Sidemesh again yourself.
Foreground mode (for debugging)
Section titled “Foreground mode (for debugging)”sidemesh daemon # runs in terminal, shows live logsClosing the terminal stops the daemon. Use this mode when you want live logs and do not mind starting it again yourself.
As a system service (recommended for day-to-day use)
Section titled “As a system service (recommended for day-to-day use)”Linux (systemd):
sudo sidemesh service installsudo sidemesh service restart --yesmacOS (LaunchAgent):
sidemesh service installsidemesh service restart --yesUse this if you want the app’s Restart and Update buttons to bring the host back on their own.
Connect the Mobile App
Section titled “Connect the Mobile App”Option 1: QR code
Section titled “Option 1: QR code”- Use the QR code printed by
sidemesh up, or runsidemesh pairon the host - Open the Sidemesh app
- Tap the host editor -> “Scan QR”
- Point camera at the terminal QR code
Option 2: Manual entry
Section titled “Option 2: Manual entry”- Use the base URL and token printed by
sidemesh up, or runsidemesh pairagain - In the app, tap “Add host manually”
- Enter:
- Label: any friendly name
- Base URL:
http://HOST:PORT - Token: the bearer token
Example URLs:
- Tailscale:
http://100.94.10.20:8787 - LAN:
http://192.168.1.50:8787 - Localhost:
http://localhost:8787
In-App Restart and Update
Section titled “In-App Restart and Update”From the host details screen, you can choose an update channel, restart the daemon, and run self-update.
- Stable gets tagged releases.
- Bleeding edge gets the newest commits on
mainfor local repo installs. - If you want the app’s Restart and Update buttons to work reliably, use
sidemesh service install. - If you run
sidemesh daemon,sidemesh start, orsidemesh up, update and restart it yourself when needed.
Daily Workflow
Section titled “Daily Workflow”- Start daemon on host:
sidemesh upfor most manual runs, or let the OS service auto-start - Open app on phone/desktop
- Select host from the host list
- Create or resume a session
- Chat with the agent
Useful Commands
Section titled “Useful Commands”| Command | Purpose |
|---|---|
sidemesh up | Create a default config if needed, start the daemon, and print pairing details |
sidemesh setup | Customize providers, host features, and advanced settings |
sidemesh doctor | Check provider health |
sidemesh status | Show config, PID, health |
sidemesh pair | Re-print connection QR |
sidemesh stop | Stop background daemon |
sidemesh restart --yes | Restart a daemon started with sidemesh start or sidemesh up |
sidemesh service restart --yes | Restart the OS service on macOS/Linux |