- Update CLIInstaller to install both vt script and vibetunnel binary
- Remove duplicate replacement dialog for better UX
- Check versions of both files and use lowest version for updates
- Prioritize finding vibetunnel in same directory as vt script
- Bump vt version to 1.0.6
- Add comprehensive CLI versioning documentation
- Move all macOS-specific code from root to mac/ directory
- Move app icons and assets to dedicated assets/ directory
- Update GitHub workflows for new structure
- Consolidate documentation files
- Clean up root directory for better multi-platform organization
- Fix working directory validation to fall back to home directory when iOS sends invalid paths
- Fix file browser API client to handle correct response format (absolutePath + files)
- Improve session creation header design with translucent material and fixed height
- Add authentication support placeholder for future API protection
- Add better error logging for debugging API issues
- Move TerminalTextFieldStyle to SessionCreateView for better organization
The iOS app can now create sessions successfully and browse directories without errors.
- Add 'claude' as the first quick start command
- Set 'claude' as the default command instead of 'zsh'
- Add sparkle icon for Claude command
- Remove 'irb' to make room for Claude in the grid
- Change from bright accent fill to dark terminal background
- Add accent color border that gets thicker when active
- Use accent color for text instead of terminal foreground
- Better visual consistency with the dark terminal aesthetic
Major improvements to the iOS VibeTunnel app:
SwiftTerm Integration:
- Properly integrated SwiftTerm 1.2.5 for terminal emulation
- Fixed naming conflicts and API compatibility issues
- Added proper actor isolation with @preconcurrency
- Terminal data now feeds correctly via SSE streams
Session Management:
- Fixed session model to match Go server's JSON response format
- Added CodingKeys mapping for field name differences (cmdline, cwd, etc.)
- Support for "starting" session status
- Enhanced date parsing for both ISO8601 and RFC3339 formats
Working Directory Fixes:
- Changed default working directory from iOS sandbox to server paths
- Now uses ~/ as default (matching web frontend)
- Added common server directories as quick options
- Server expands ~ to actual home directory
Terminal Streaming:
- Implemented Asciinema cast v2 format parsing
- SSE client properly handles output, resize, and exit events
- Added terminal snapshot loading for existing sessions
- Fixed special key handling with proper ANSI escape sequences
UI Improvements:
- Updated session list to grid layout (2 columns)
- Added session count and "Kill All" functionality
- Redesigned session cards with inline kill/clean buttons
- Shows command and working directory in session preview
Error Handling:
- Added comprehensive logging for debugging
- Enhanced error messages for better user experience
- Detailed API request/response logging
- Network error descriptions (connection refused, timeout, etc.)
Server Configuration:
- Set default server address to 127.0.0.1:4020
- Sessions now created with spawn_terminal: false for PTY mode
- Both web and iOS clients can share terminal sessions
The iOS app now provides a full terminal experience using SwiftTerm,
mirroring the web frontend's functionality with proper server integration.
- Add xcodegen project specification (project.yml)
- Configure for iOS 18.0+ deployment target
- Add SwiftTerm package dependency
- Create asset catalogs:
- App icon placeholder
- Accent color (terminal blue)
- Terminal background color
- Configure proper Info.plist settings
- Set up build configurations and schemes
The project is now ready to open in Xcode.
- Beautiful terminal-inspired UI design with custom theme
- Full SwiftUI implementation targeting iOS 18+
- SwiftTerm integration for terminal emulation
- Real-time session management with SSE streaming
- Complete feature parity with web frontend:
- Server connection management
- Session list with auto-refresh
- Create, kill, and cleanup sessions
- Full terminal emulation with input/output
- Keyboard toolbar with special keys
- Font size adjustment
- Haptic feedback throughout
- Comprehensive error handling and loading states
- iPad optimizations (basic, split view pending)
- Complete documentation and setup instructions
The app provides a native, performant alternative to the web interface
with a stunning dark theme and smooth animations.