No description
Find a file
Peter Steinberger 36c4f9066c Merge PR #7: Fix incorrect Rust server directory paths in README
The tty-fwd directory is at the root of the project, not under rust/
This PR corrects the build instructions to reflect the actual project structure.

Co-authored-by: nityeshaga <93742147+nityeshaga@users.noreply.github.com>
2025-06-18 20:00:30 +02:00
.github/workflows Migrate workflows to Blacksmith (#17) 2025-06-18 19:35:22 +02:00
AppIcon.icon Add new icon 2025-06-16 04:42:13 +02:00
assets Add frontend screenshot to README 2025-06-17 02:20:58 +02:00
docs Spawn new Terminal 2025-06-18 04:52:11 +02:00
scripts delete garbage 2025-06-18 10:52:32 +02:00
tty-fwd feat: add integration tests and fix compatibility issues 2025-06-18 19:39:42 +02:00
VibeTunnel redesign debug settings 2025-06-18 19:29:03 +02:00
VibeTunnel.xcodeproj Remove UserInterfaceState.xcuserstate from tracking 2025-06-18 19:37:59 +02:00
VibeTunnel.xcworkspace Added --spawn-terminal experiment 2025-06-17 11:08:28 +02:00
VibeTunnelTests various test fixes 2025-06-18 19:29:03 +02:00
web Add PWA support with web app manifest 2025-06-18 19:53:03 +02:00
.github-config Add macOS app foundation with release infrastructure (#1) 2025-06-15 23:14:29 +02:00
.gitignore Ignore rust codecov stuff 2025-06-17 13:52:58 +02:00
.swiftformat Update to version 1.0.0 build 100 and fix all linting issues 2025-06-16 23:45:44 +02:00
.swiftlint.yml Update to version 1.0.0 build 100 and fix all linting issues 2025-06-16 23:45:44 +02:00
appcast-prerelease.xml Update appcast for 1.0-beta.1 2025-06-17 03:09:23 +02:00
appcast.xml Update appcast for 1.0-beta.1 2025-06-17 03:09:23 +02:00
CHANGELOG.md Prepare fresh 1.0.0-beta.1 release (build 103) 2025-06-17 03:06:35 +02:00
CLAUDE.md Add missing session fields and update linting guidance 2025-06-18 00:08:57 +02:00
KEYCHAIN_OPTIMIZATION.md Fix platform-specific CI issues 2025-06-17 01:45:07 +02:00
LICENSE Initial commit 2025-06-15 19:56:11 +02:00
Package.swift feat: adopt Blacksmith CI runners and comprehensive updates 2025-06-18 19:10:03 +02:00
README.md Merge PR #7: Fix incorrect Rust server directory paths in README 2025-06-18 20:00:30 +02:00
test-server.sh feat: implement working HTTP server with debug panel 2025-06-16 02:00:56 +02:00
test-sessions-endpoint.sh feat: implement working HTTP server with debug panel 2025-06-16 02:00:56 +02:00
test-tty-fwd.swift update test 2025-06-17 01:29:57 +02:00
VibeTunnel-Info.plist prepare sparkle 2025-06-17 01:29:42 +02:00

VibeTunnel Banner

VibeTunnel

Turn any browser into your Mac terminal. VibeTunnel proxies your terminals right into the browser, so you can vibe-code anywhere.

Download License macOS 14.0+

Why VibeTunnel?

Ever wanted to check on your AI agents while you're away? Need to monitor that long-running build from your phone? Want to share a terminal session with a colleague without complex SSH setups? VibeTunnel makes it happen with zero friction.

"We wanted something that just works" - That's exactly what we built.

The Story

VibeTunnel was born from a simple frustration: checking on AI agents remotely was way too complicated. During an intense coding session, we decided to solve this once and for all. The result? A tool that makes terminal access as easy as opening a web page.

Read the full story: VibeTunnel: Turn Any Browser Into Your Mac Terminal

Key Features

  • 🌐 Browser-Based Access - Control your Mac terminal from any device with a web browser
  • 🚀 Zero Configuration - No SSH keys, no port forwarding, no complexity
  • 🤖 AI Agent Friendly - Perfect for monitoring Claude Code, ChatGPT, or any terminal-based AI tools
  • 🔒 Secure by Design - Password protection, localhost-only mode, or secure tunneling via Tailscale/ngrok
  • 📱 Mobile Ready - Check your terminals from your phone, tablet, or any computer
  • 🎬 Session Recording - All sessions are recorded in asciinema format for later playback

Quick Start

1. Download & Install

Download VibeTunnel and drag it to your Applications folder.

2. Launch VibeTunnel

VibeTunnel lives in your menu bar. Click the icon to start the server.

3. Use the vt Command

Prefix any command with vt to make it accessible in your browser:

# Monitor AI agents
vt claude

# Run development servers
vt npm run dev

# Watch long-running processes
vt python train_model.py

# Or just open a shell
vt --shell

4. Open Your Dashboard

VibeTunnel Frontend

Visit http://localhost:4020 to see all your terminal sessions in the browser.

Real-World Use Cases

🤖 AI Development

Monitor and control AI coding assistants like Claude Code remotely. Perfect for checking on agent progress while you're away from your desk.

vt claude --dangerously-skip-permissions

🛠️ Remote Development

Access your development environment from anywhere. No more "I need to check something on my work machine" moments.

vt code .
vt npm run dev

📊 System Monitoring

Keep an eye on system resources, logs, or long-running processes from any device.

vt htop
vt tail -f /var/log/system.log

🎓 Teaching & Collaboration

Share terminal sessions with colleagues or students in real-time through a simple web link.

Remote Access Options

  1. Install Tailscale on your Mac and remote device
  2. Access VibeTunnel at http://[your-mac-name]:4020 from anywhere on your Tailnet

Option 2: ngrok

  1. Add your ngrok auth token in VibeTunnel settings
  2. Enable ngrok tunneling
  3. Share the generated URL for remote access

Option 3: Local Network

  1. Set a dashboard password in settings
  2. Switch to "Network" mode
  3. Access via http://[your-mac-ip]:4020

Command Options

# Claude-specific shortcuts
vt --claude              # Auto-locate and run Claude
vt --claude-yolo         # Run Claude with dangerous permissions

# Shell options
vt --shell               # Launch interactive shell
vt -i                    # Short form for --shell

# Direct execution (bypasses shell aliases)
vt -S ls -la            # Execute without shell wrapper

Configuration

Access settings through the menu bar icon:

  • Server Port: Change the default port (4020)
  • Launch at Login: Start VibeTunnel automatically
  • Show in Dock: Toggle between menu bar only or dock icon
  • Server Mode: Switch between Rust (default) or Swift backend

Architecture

VibeTunnel is built with a modern, secure architecture:

  • Native macOS app written in Swift/SwiftUI
  • High-performance Rust server for terminal management
  • Web interface with real-time terminal rendering
  • Secure tunneling via Tailscale or ngrok

For technical details, see ARCHITECTURE.md.

Building from Source

# Clone the repository
git clone https://github.com/amantus-ai/vibetunnel.git
cd vibetunnel

# Build the Rust server
cd tty-fwd && cargo build --release && cd ..

# Build the web frontend
cd web && npm install && npm run build && cd ..

# Open in Xcode
open VibeTunnel.xcodeproj

Local Development Setup

For local development, configure your development team ID in Local.xcconfig. Without this, you'll face repeated permission and keychain dialogs, especially with ad-hoc installations. With proper code signing, these dialogs only appear on first launch.

To get your team ID:

security find-identity -v -p codesigning

Then copy Local.xcconfig.template to Local.xcconfig and insert your team ID. This file is gitignored to keep your personal settings private.

Credits

Created with ❤️ by:

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

VibeTunnel is open source software licensed under the MIT License. See LICENSE for details.


Ready to vibe? Download VibeTunnel and start tunneling!