## Summary - Initial SwiftUI macOS app structure with menubar and settings - Complete release automation scripts adapted from VibeMeter - Sparkle framework integration for automatic updates (stable/pre-release channels) - Launch at login functionality - Single instance detection - About window with version info and links ## Features Added - Settings window with General and Advanced tabs - Update channel switching (stable/pre-release) - Launch at login toggle - Debug mode and server port configuration - Interactive About window with app info - Single app instance enforcement ## Infrastructure - Complete release automation (build, sign, notarize, DMG, GitHub release) - Version 0.1 (build 100) - Bundle ID: com.amantus.vibetunnel - Domain: vibetunnel.sh - GitHub: https://github.com/amantus-ai/vibetunnel ## Next Steps - Add Sparkle framework dependency - Generate EdDSA keys for update signing - Set up appcast hosting on vibetunnel.sh
4 KiB
VibeTunnel
A macOS application for remotely controlling Claude Code and other terminal applications through a secure tunnel interface.
Overview
VibeTunnel is a native macOS app built with SwiftUI that enables remote control of terminal applications like Claude Code. It provides a seamless tunneling solution with automatic updates, configurable settings, and the ability to run as either a dock application or menu bar utility.
Features
- Remote Terminal Control: Tunnel connections to control Claude Code and other terminal apps remotely
- Flexible UI Modes: Run as a standard dock application or minimal menu bar utility
- Auto Updates: Built-in Sparkle integration for seamless updates with stable and pre-release channels
- Launch at Login: Automatic startup configuration
- Native macOS Experience: Built with SwiftUI for macOS 14.0+
Requirements
- macOS 14.0 or later
- Xcode 15.0 or later (for development)
Installation
From Release
- Download the latest DMG from the Releases page
- Open the DMG and drag VibeTunnel to your Applications folder
- Launch VibeTunnel from Applications or Spotlight
From Source
# Clone the repository
git clone https://github.com/yourusername/vibetunnel.git
cd vibetunnel
# Build using Xcode
open VibeTunnel.xcodeproj
# Or build from command line
xcodebuild -scheme VibeTunnel -configuration Release
Configuration
VibeTunnel can be configured through its Settings window (⌘,):
General Settings
- Launch at Login: Start VibeTunnel automatically when you log in
- Show Notifications: Enable/disable system notifications
- Show in Dock: Toggle between dock app and menu bar only mode
Advanced Settings
- Update Channel: Choose between stable releases or pre-release builds
- Server Port: Configure the tunnel server port (default: 8080)
- Debug Mode: Enable additional logging for troubleshooting
Development
Project Structure
VibeTunnel/
├── VibeTunnel/ # Main app source
│ ├── Core/ # Core functionality
│ │ ├── Models/ # Data models
│ │ └── Services/ # Business logic
│ ├── Views/ # SwiftUI views
│ └── Resources/ # Assets and resources
├── VibeTunnelTests/ # Unit tests
├── VibeTunnelUITests/ # UI tests
├── scripts/ # Build and release automation
└── docs/ # Documentation
Building
The project uses standard Xcode build system:
# Debug build
xcodebuild -scheme VibeTunnel -configuration Debug
# Release build
xcodebuild -scheme VibeTunnel -configuration Release
# Run tests
xcodebuild test -scheme VibeTunnel
Release Process
The project includes comprehensive release automation scripts in the scripts/ directory:
# Create a new release
./scripts/release.sh --version 1.2.3
# Build and notarize
./scripts/build.sh
./scripts/notarize.sh
# Generate appcast for Sparkle updates
./scripts/generate-appcast.sh
Architecture
VibeTunnel is built with a modular architecture:
- SparkleUpdaterManager: Handles automatic updates with support for multiple update channels
- StartupManager: Manages launch at login functionality using macOS ServiceManagement
- UpdateChannel: Defines update channels and appcast URLs
- AppDelegate: Coordinates app lifecycle and system integration
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Created by Peter Steinberger / Amantus Machina
Note: VibeTunnel is currently in active development. Core tunneling functionality is being implemented.