VibeIOS is a powerful iOS application that provides remote terminal session management through the VibeTunnel API. Built with SwiftUI, this app enables developers to manage coding projects, create terminal sessions, and interact with AI agents like Claude Code directly from their iPhone or iPad.
VibeIOS serves as a mobile interface for remote development environments, allowing developers to:
- Manage multiple coding projects from their iOS device
- Create and monitor terminal sessions in project directories
- Launch Claude Code with automatic permission handling
- Parse real-time AI session status with countdown timers and token tracking
- Execute commands and view terminal output with enhanced formatting
- Use voice input for hands-free command execution
- Create Projects: Set up new projects with custom names and working directories
- Project Overview: View all projects with running session counts
- Session Tracking: See active terminal sessions per project
- Directory Association: Link projects to specific working directories
- Session Creation: Spawn new terminal sessions with customizable commands
- Real-time Monitoring: Track session status (running, exited, stopped)
- Auto-start Claude: Automatically launch Claude Code when creating sessions
- Permission Bypass: Optional
--dangerously-skip-permissions
flag support - Session Details: View individual session info, output, and send commands
- Claude Code Launch: One-tap Claude Code activation with custom prompts
- Session State Parsing: Real-time detection of AI running state
- Countdown Timers: Display elapsed time when AI is actively running
- Token Tracking: Show token consumption during AI sessions
- Output Processing: Parse terminal output to detect AI activity patterns
- Status Indicators: Visual feedback for idle, running, and active AI states
- Speech Recognition: Convert voice to text for command input
- Voice Commands: Send voice-converted commands to terminal sessions
- Hands-free Operation: Execute terminal commands without typing
- Enhanced Output: Syntax-highlighted terminal output with line numbers
- Claude Code Detection: Specialized formatting for Claude Code output
- ANSI Processing: Clean removal of terminal escape codes
- Unicode Normalization: Proper handling of special characters
- Real-time Updates: 5-second refresh intervals for session states
VibeIOS App Structure
βββ vibeiosApp.swift # App entry point and configuration
βββ ContentView.swift # Root navigation view
βββ Models.swift # Data models (Project, Session, etc.)
βββ DataStore.swift # Centralized state management
βββ VibeTunnelAPI.swift # API service and terminal output parsing
βββ ProjectsListView.swift # Main projects overview
βββ ProjectDetailView.swift # Individual project management
βββ CreateProjectView.swift # New project creation
βββ CreateAgentView.swift # New session creation with Claude integration
βββ SessionDetailView.swift # Terminal session interface
βββ SettingsView.swift # API configuration
βββ VoiceInputView.swift # Speech recognition interface
βββ SpeechRecognitionManager.swift # Voice processing logic
Project
βββ id: UUID
βββ name: String
βββ workingDirectory: String
βββ createdDate: Date
Session (from VibeTunnel API)
βββ id: String
βββ command: String
βββ workingDir: String
βββ status: String
βββ exitCode: Int?
βββ startedAt: String
βββ lastModified: String
βββ pid: Int?
SessionState (AI Detection)
βββ isAIRunning: Bool
βββ runningSeconds: Int?
βββ tokenCount: Int?
βββ isIdle: Bool
- SwiftUI: Modern iOS UI framework
- Combine: Reactive programming for state management
- URLSession: HTTP API communication
- Speech Framework: Voice input processing
- UserDefaults: Persistent settings storage
- Regular Expressions: Terminal output parsing
- JSON: API data serialization
The app integrates with VibeTunnel server providing:
- Create Sessions: POST
/api/sessions
- Start new terminal sessions - List Sessions: GET
/api/sessions
- Retrieve all active sessions - Session Snapshot: GET
/api/sessions/{id}/snapshot
- Get terminal output - Send Input: POST
/api/sessions/{id}/input
- Execute commands - Kill Session: DELETE
/api/sessions/{id}
- Terminate sessions
- Health Check: GET
/api/health
- Server connectivity status - File System: GET
/api/fs/browse
- Directory browsing - Ngrok Tunneling: Secure tunnel management
The app includes sophisticated parsing logic to detect:
- Claude Code Status: Running vs idle states
- Time Tracking: Elapsed seconds from terminal timestamps
- Token Counting: AI token consumption tracking
- ANSI Cleanup: Terminal escape sequence removal
- Unicode Handling: Proper character normalization
- iOS 15.0 or later
- iPhone or iPad
- Internet connection to VibeTunnel server
- Microphone access (for voice input)
- Clone the repository:
git clone https://github.com/yourusername/vibeios.git
cd vibeios
- Open in Xcode:
open vibeios.xcodeproj
-
Configure VibeTunnel connection:
- Run the app
- Go to Settings
- Enter your VibeTunnel server URL and credentials
-
Enable voice input (optional):
- Grant microphone permissions when prompted
- See
SPEECH_PERMISSIONS_SETUP.md
for details
- Start your VibeTunnel server
- Note the server URL (e.g.,
http://localhost:8080
) - Configure authentication if required
- Update app settings with connection details
- Automatic Claude Code launching when creating sessions
- Configurable permission bypass flag
- Custom prompt support through quick actions
- Real-time session monitoring and status detection
- Clean card-based layout showing all projects
- Running session indicators with real-time counts
- Quick access to project details and settings
- Create new project button
- Active session list with AI status indicators
- Session creation with Claude auto-start options
- Real-time session state updates every 5 seconds
- Visual status indicators (running, idle, AI active)
- Full terminal output with syntax highlighting
- Command input with voice recognition support
- Claude Code quick actions and custom prompts
- Real-time output refresh and ANSI processing
- VibeTunnel server configuration
- Authentication credentials management
- Connection status monitoring
- Voice input preferences
The app uses advanced pattern matching to detect:
- Claude Code running states from terminal output
- Timestamp parsing from JSON-formatted terminal data
- Token consumption tracking during AI interactions
- Session idle vs active state determination
- Real-time speech-to-text conversion
- Command execution from voice input
- Error handling for recognition failures
- Seamless integration with terminal interface
- ANSI escape sequence removal
- Unicode character normalization
- JSON timestamp extraction
- Syntax highlighting for different output types
- Line numbering and enhanced readability
- Complete SwiftUI interface
- VibeTunnel API integration
- Project and session management
- Claude Code auto-start functionality
- AI session state detection and monitoring
- Voice input for terminal commands
- Enhanced terminal output formatting
- Real-time session status updates
- Settings management with persistent storage
- Additional voice command shortcuts
- Enhanced error handling and retry logic
- Improved offline mode capabilities
- Advanced session filtering and search
- Push notifications for session events
- Session sharing and collaboration
- Custom Claude Code templates
- Advanced terminal emulation features
- File system browsing and editing
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes with proper documentation
- Add comprehensive comments to new code
- Test thoroughly on iOS devices
- Submit a pull request
- Use clear, descriptive variable and function names
- Add comprehensive comments explaining complex logic
- Follow SwiftUI best practices
- Maintain consistent formatting and structure
- Document all public APIs and complex algorithms
All Swift files include comprehensive comments explaining:
- Class and struct purposes
- Complex algorithm implementations
- API integration details
- UI component functionality
- State management patterns
- VibeTunnel API endpoint documentation
- Request/response format specifications
- Error handling procedures
- Authentication requirements
Connection Problems:
- Verify VibeTunnel server is running
- Check network connectivity
- Validate server URL and credentials
- Review server logs for errors
Voice Input Issues:
- Ensure microphone permissions are granted
- Check device microphone functionality
- Verify Speech Recognition availability
- Review privacy settings
Session Creation Failures:
- Confirm working directory exists
- Validate command syntax
- Check server capacity and resources
- Review session creation logs
[License details to be added]
For questions or support:
- GitHub Issues: Create an issue in the repository
- Documentation: Check the code comments and this README
- VibeTunnel Setup: Refer to VibeTunnel documentation
- iOS Development: Apple Developer documentation
VibeIOS - Professional terminal session management with AI integration for iOS ππ±