vibetunnel/mac
Peter Steinberger d9a30e299d Fix menu bar UI jumping when copy icon appears
Always reserve space for copy icon, use opacity instead of conditional rendering.
This prevents layout shifts when hovering over server addresses.

Fixes #247
2025-07-08 00:53:14 +01:00
..
docs Unified control protocol and deferred screen recording permissions (#239) 2025-07-08 00:42:13 +01:00
node_modules Disable create session modal animation in session detail view 2025-07-08 00:43:51 +01:00
scripts fix: resolve Xcode Node.js detection issues with fnm/homebrew conflicts (#246) (#253) 2025-07-08 00:44:05 +01:00
test-results.xcresult Unified control protocol and deferred screen recording permissions (#239) 2025-07-08 00:42:13 +01:00
VibeTunnel Fix menu bar UI jumping when copy icon appears 2025-07-08 00:53:14 +01:00
VibeTunnel-Mac.xcodeproj Unified control protocol and deferred screen recording permissions (#239) 2025-07-08 00:42:13 +01:00
VibeTunnelTests Unified control protocol and deferred screen recording permissions (#239) 2025-07-08 00:42:13 +01:00
.gitignore Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
.swiftformat Move files to apple subdir 2025-06-22 14:35:42 +02:00
.swiftlint.yml Move files to apple subdir 2025-06-22 14:35:42 +02:00
bun.lock Disable create session modal animation in session detail view 2025-07-08 00:43:51 +01:00
CLAUDE.md Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
MOUSE_CLICK_DEBUG.md Unified control protocol and deferred screen recording permissions (#239) 2025-07-08 00:42:13 +01:00
package-lock.json Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
package.json Disable create session modal animation in session detail view 2025-07-08 00:43:51 +01:00
Package.swift Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
README.md refactor: major project restructuring - move macOS app to mac/ directory 2025-06-20 13:20:01 +02:00
test_display_coordinates.sh Unified control protocol and deferred screen recording permissions (#239) 2025-07-08 00:42:13 +01:00
VibeTunnel-Info.plist refactor: major project restructuring - move macOS app to mac/ directory 2025-06-20 13:20:01 +02:00

VibeTunnel macOS App

This directory contains the macOS version of VibeTunnel.

Quick Start

Building

# Using Xcode
xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel build

# Using build script
./scripts/build.sh

Running Tests

xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel test

Creating Release

./scripts/build.sh --configuration Release --sign
./scripts/create-dmg.sh build/Build/Products/Release/VibeTunnel.app

Project Structure

mac/
├── VibeTunnel/           # Source code
│   ├── Core/            # Core services and models
│   ├── Presentation/    # Views and UI components
│   └── Utilities/       # Helper utilities
├── VibeTunnelTests/     # Unit tests
├── scripts/             # Build and release scripts
├── docs/                # macOS-specific documentation
└── private/             # Signing keys (not in git)

Scripts

  • build.sh - Build the app with optional signing
  • create-dmg.sh - Create a DMG for distribution
  • release.sh - Full release process
  • monitor-ci.sh - Monitor CI build status
  • sign-and-notarize.sh - Code signing and notarization

Documentation

See docs/ for macOS-specific documentation:

  • Code signing setup
  • Release process
  • Sparkle update framework
  • Development signing

CI/CD

The app is built automatically on GitHub Actions:

  • On every push to main
  • On pull requests
  • For releases (tagged with v*)

See .github/workflows/swift.yml for the build configuration.