- Add Linux/headless support documentation to introduction.mdx and project-overview.md - Fix sidebar navigation with descriptive titles instead of generic README labels - Remove experimental Tauri references from docs.json - Reorganize docs.json with better categorization and all relevant files - Keep architecture-mario.md and consolidated org-migrate.md as TODO
3.5 KiB
VibeTunnel Project Overview
VibeTunnel turns any browser into a terminal for your Mac, enabling remote access to command-line tools and AI agents from any device. Built for developers who need to monitor long-running processes, check on AI coding assistants, or share terminal sessions without complex SSH setups.
The project provides a native macOS menu bar application that runs a local HTTP server with WebSocket support for real-time terminal streaming. Users can access their terminals through a responsive web interface at http://localhost:4020, with optional secure remote access via Tailscale or ngrok integration.
Key Files
Main Entry Points
mac/VibeTunnel/VibeTunnelApp.swift- macOS app entry point with menu bar integrationios/VibeTunnel/App/VibeTunnelApp.swift- iOS companion app entryweb/src/index.ts- Node.js server entry point for terminal forwardingmac/VibeTunnel/Utilities/CLIInstaller.swift- CLI tool (vt) installer
Core Configuration
web/package.json- Node.js dependencies and build scriptsmac/VibeTunnel.xcodeproj/project.pbxproj- Xcode project configurationmac/VibeTunnel/version.xcconfig- Version managementapple/Local.xcconfig.template- Developer configuration template
Technology Stack
macOS Application - Native Swift/SwiftUI app
- Menu bar app:
mac/VibeTunnel/Presentation/Views/MenuBarView.swift - Server management:
mac/VibeTunnel/Core/Services/ServerManager.swift - Session monitoring:
mac/VibeTunnel/Core/Services/SessionMonitor.swift - Terminal operations:
mac/VibeTunnel/Core/Services/TerminalManager.swift - Sparkle framework for auto-updates
Web Server - Node.js/TypeScript with Bun runtime
- HTTP/WebSocket server:
web/src/server/server.ts - Terminal forwarding:
web/src/server/fwd.ts - Session management:
web/src/server/lib/sessions.ts - PTY integration:
@homebridge/node-pty-prebuilt-multiarch
Web Frontend - Modern TypeScript/Lit web components
- Terminal rendering:
web/src/client/components/terminal-viewer.ts - WebSocket client:
web/src/client/lib/websocket-client.ts - UI styling: Tailwind CSS (
web/src/client/styles.css) - Build system: esbuild bundler
iOS Application - SwiftUI companion app
- Connection management:
ios/VibeTunnel/App/VibeTunnelApp.swift(lines 40-107) - Terminal viewer:
ios/VibeTunnel/Views/Terminal/TerminalView.swift - WebSocket client:
ios/VibeTunnel/Services/BufferWebSocketClient.swift
Platform Support
macOS Requirements
- macOS 14.0+ (Sonoma or later)
- Apple Silicon Mac (M1+)
- Xcode 15+ for building from source
- Code signing for proper terminal permissions
Linux & Headless Support
- Any Linux distribution with Node.js 20+
- Runs as standalone server via npm package
- No GUI required - perfect for VPS/cloud deployments
- Install:
npm install -g vibetunnel - Run:
vibetunnel-server
iOS Requirements
- iOS 17.0+
- iPhone or iPad
- Network access to VibeTunnel server
Browser Support
- Modern browsers with WebSocket support
- Mobile-responsive design for phones/tablets
- Terminal rendering via canvas/WebGL
Server Platforms
- Primary: Bun runtime (Node.js compatible)
- Build requirements: Node.js 20+, npm/bun
- Supports macOS, Linux, and headless environments
Key Platform Files
- macOS app bundle:
mac/VibeTunnel.xcodeproj - iOS app:
ios/VibeTunnel.xcodeproj - Web server:
web/directory with TypeScript source - CLI tool: Installed to
/usr/local/bin/vt(macOS only) - npm package:
vibetunnelon npm registry