Take the helm from anywhere.
A unified mobile-first command center for managing multiple OpenCode instances. Built for iPhone + Tailscale workflows.
Helm is a fork of chriswritescode-dev/opencode-web that adds:
- Multi-server discovery โ Auto-finds all running OpenCode instances
- MCP tool visibility โ See exactly what tools your agents are calling
- Embedded terminal โ Full terminal access from your browser
- Touch-first UX โ Swipe gestures, bottom nav, haptic feedback
- Offline support โ Cache sessions and queue messages when offline
- โ Mobile-first PWA
- โ Git integration (diff, branches, PRs)
- โ MCP server configuration
- โ Session management
- โ File browser with syntax highlighting
- โ Model selection and provider management
- โ Text-to-speech for AI responses
- โก Multi-server discovery โ Auto-detect OpenCode instances via lsof
- ๐ Server switching โ Seamlessly switch between projects
- ๐ MCP tool feed โ Real-time visibility into tool calls
- ๐ป Embedded terminal โ Xterm.js with PTY backend
- ๐ฑ Bottom navigation โ Mobile-optimized tab bar
- ๐ด Offline mode โ IndexedDB caching + message queue
- ๐ Touch gestures โ Swipe-to-go-back, haptic feedback
- Node.js 20+
- pnpm 9+
- OpenCode CLI (
npm install -g @anthropics/opencode)
Run Helm directly on your Mac to discover all local OpenCode instances:
# Clone
git clone https://github.com/BioInfo/helm.git
cd helm
# Install
pnpm install
# Run
pnpm dev
# Open http://localhost:5174 (frontend dev server)
# API available at http://localhost:5001Then start OpenCode in your project directories:
cd ~/project-api && opencode # TUI mode - Helm will find it
cd ~/project-frontend && opencode serve # Headless - Helm will find it
cd ~/project-infra && opencode # TUI mode - Helm will find itHelm auto-discovers all running instances and lets you switch between them.
# On your Mac
pnpm dev
# On your iPhone via Tailscale
# Navigate to http://your-mac.tailnet:5174
# Add to Home Screen for native app feelDocker mode runs a single embedded OpenCode instance. Use this for:
- Isolated environments
- Self-hosted deployments
- Users who don't need multi-server discovery
docker-compose up -d
# Access at http://localhost:5003Note: Docker cannot discover OpenCode instances on the host machine due to process isolation. For multi-server discovery, run Helm natively.
- Multi-server discovery (local via lsof)
- Server switching UI
- Embedded terminal
- MCP tool visibility
- Mobile-first UX
- Docker deployment option
- Claude Code native integration โ Unified discovery and support for both OpenCode and Claude Code
- Multi-machine discovery โ See instances across Mac, Linux servers, Raspberry Pis, cloud VMs
- Network-based server registration
- SSH tunnel support for remote instances
- Server grouping by machine/location
- Swarm task visualization
- Cost budgets and alerts
- Session sharing/collaboration
- Custom MCP server templates
- Agent orchestration UI (parallel task decomposition)
| Document | Purpose |
|---|---|
| CONTRIBUTING.md | Contribution guidelines |
| SECURITY.md | Security policy |
| AGENTS.md | Development context for AI agents |
| docs/PRD.md | Product requirements & architecture |
| docs/CHECKLIST.md | Implementation progress tracker |
If you see posix_spawnp failed errors when opening a terminal:
cd node_modules/.pnpm/node-pty@1.1.0/node_modules/node-pty
npx node-gyp rebuildThen restart with pnpm dev.
# Check what OpenCode instances Helm can see
curl http://localhost:5001/api/servers | jq .curl -X POST http://localhost:5001/api/terminal/create \
-H "Content-Type: application/json" \
-d '{"workdir": "/tmp"}'Helm combines the best ideas from:
- chriswritescode-dev/opencode-web โ Base (mobile PWA, git, MCP config)
- joelhooks/opencode-vibe โ Multi-server discovery pattern
- VibeTunnel โ Terminal in browser concept
- OpenCode โ The AI coding agent
Special thanks to:
- @chriswritescode โ For building opencode-web, the foundation that made Helm possible
- @joelhooks โ For pioneering multi-server discovery patterns in opencode-vibe
- The VibeTunnel team โ For proving that browser-based terminal access can work beautifully
- @anthropics โ For Claude Code and OpenCode, the AI coding agents that power modern development
- The Anthropic community โ For feedback, bug reports, and feature ideas that shape Helm's direction
Helm exists because developers before us shared their work openly. This project stands on the shoulders of giants.
MIT

