A desktop application for managing Docker containers and AInTandem services with a clean, modern interface.
- Service Management: Start, stop, and monitor AInTandem services (Backend)
- Container Management: Full Docker/containerd container lifecycle management
- Health Monitoring: Real-time service health tracking with dependency visualization
- Auto-Recovery: Automatic restart of essential services on failure
- Log Viewer: Real-time log streaming with search, filtering, and download capabilities
- System Tray: Quick access to services and status from the menu bar
- Multiple Runtimes: Support for both Docker and containerd
Choose ONE of the following container runtimes:
-
Docker Desktop (Recommended for most users)
- macOS: Download Docker Desktop
- Verify:
docker --version
-
Containerd (Advanced users, bundled with app)
- Bundled binaries included
- Automatic runtime detection
- No additional installation required
-
Download the latest release for your platform
-
Install the application:
- macOS: Open the
.dmgfile and drag to Applications - Windows: Run the
.exeinstaller - Linux: Install the
.AppImageor.debpackage
- macOS: Open the
-
Launch AInTandem Desktop from your Applications folder or Start menu
On first launch, AInTandem will:
- Detect your container runtime (Docker or containerd)
- Initialize required infrastructure:
- Create
aintandem-netnetwork - Create required volumes (aintandem-data)
- Create
- Load bundled images (if using containerd)
- Start health monitoring for essential services
AInTandem automatically detects and uses available container runtimes:
- Docker: If Docker Desktop is running, it will be used by default
- Containerd: Falls back to bundled containerd if Docker is not available
- Manual Selection: Configure runtime in Settings (⚙️ button)
The dashboard has three main tabs:
Manage Kai services with high-level controls:
- View Service Status: Running, Stopped, Starting, Error states
- Start/Stop Services: Individual or bulk operations
- Monitor Resources: Real-time CPU and memory usage
- View Logs: Click "View Logs" to see container output
- Essential Services: Marked with orange "Essential" badge
Quick Actions:
Start All- Start all services in dependency orderStop All- Stop all running services
Service Cards Show:
- Service name and description
- Current status with color coding
- Health check status (✓ healthy, ✗ unhealthy, ⟳ starting)
- Resource usage (CPU %, Memory MB)
- Container ID (first 12 characters)
Visualize service health and dependencies:
- Overview Stats: Total services, running count, stopped count, errors
- Dependency Graph: Visual representation of service dependencies
- Color-coded by status (green=running, gray=stopped, red=error)
- Shows which services depend on others
- Health Status Table: Detailed view of all services
- Status badges
- Health indicators
- Essential/Optional classification
- Dependency counts
Low-level container management:
- List All Containers: View all containers (running and stopped)
- Container Details: Image, ID, state
- Container Actions:
- Start/Restart stopped containers
- Stop running containers
- Remove containers (with confirmation)
Access detailed container logs:
- Go to Services tab
- Click "View Logs" on a running service
- Log viewer features:
- Real-time streaming: Auto-refreshes every 2 seconds
- Search: Filter logs by keyword
- Line limits: 100, 500, 1000, or All lines
- Timestamps: Toggle timestamp display
- Actions:
- Refresh logs manually
- Download logs to file
- Copy logs to clipboard
Quick access from your menu bar:
- AInTandem icon appears in system tray when app is running
- Right-click (or click) to open menu:
- Service status indicators
- Quick Start/Stop actions
- Show/Hide main window
- Quit application
Tray Icon Indicators:
- Updates every 30 seconds
- Shows count of running/total services
- Click to toggle window visibility
Configure application settings:
- Click ⚙️ Settings button in top-right
- Configure:
- Container runtime (Docker/containerd)
- Auto-start services on launch
- Health monitoring intervals
- Notification preferences
These services are critical and will auto-restart on failure:
- AInTandem Backend: Core API server (port 9900)
- REST API for all operations
- Container orchestration
- Service management
No service dependencies
Services start in dependency order automatically.
AInTandem Desktop includes intelligent auto-restart capabilities:
- Health Monitoring: Checks essential services every 15 seconds
- Failure Detection: Detects stopped or error states
- Auto-Restart: Attempts to restart failed services
- Retry Logic:
- Maximum 3 restart attempts per service
- Resets counter on successful start
- Logs warnings after max attempts reached
- ✅ Essential services (Backend)
- ❌ Optional services (manual restart required)
- ❌ User-stopped services (respects manual actions)
Check Console logs for auto-restart activity:
Auto-restarting essential service: Kai Backend (attempt 1/3)
AInTandem is optimized for minimal resource usage:
- Polling Intervals: 10-second refresh rate (reduced from 5s)
- Health Monitoring: 15-second checks (essential services only)
- Tray Updates: 30-second menu refresh
- Log Streaming: 2-second refresh (only when log viewer is open)
Problem: Service shows "Error" status
Solutions:
- Check logs for error details (View Logs button)
- Verify container runtime is running:
- Docker: Check Docker Desktop is running
- Containerd: Check system permissions
- Restart service manually
- Check port conflicts (9900, 6333, 7474, 7687)
- Verify network and volumes exist
Problem: "No container runtime available"
Solutions:
- If using Docker:
- Start Docker Desktop
- Verify with
docker ps - Restart AInTandem
- If using containerd:
- Check bundled binaries in app resources
- Verify system permissions
- Run as administrator (Windows) or with sudo (Linux)
Problem: Essential services stay stopped
Possible Causes:
- Max restart attempts reached (3 attempts)
- Auto-restart disabled in Settings
- Dependency service is down
- Persistent error condition
Solutions:
- Check health monitoring is enabled (Settings)
- View logs to identify root cause
- Manually fix underlying issue
- Restart service manually to reset attempt counter
Problem: Application using too many resources
Solutions:
- Close log viewer when not needed
- Reduce number of running services
- Check for runaway containers
- Restart application to clear state
Problem: Logs are frozen or outdated
Solutions:
- Click Refresh button manually
- Close and reopen log viewer
- Check service is actually running
- Verify container is producing logs
# Install dependencies
pnpm install
# Run in development mode
pnpm dev
# Build for production
pnpm build
# Package application
pnpm packagekai-desktop/
├── src/
│ ├── main/ # Electron main process
│ │ ├── services/ # Container runtime, service manager
│ │ └── index.ts # Main entry point
│ └── renderer/ # React UI
│ ├── pages/ # Main pages
│ └── components/ # Reusable components
├── resources/ # Bundled images, binaries
├── scripts/ # Build scripts
└── package.json # Dependencies and scripts
- Electron: Desktop application framework
- React: UI framework
- Vite: Build tool and dev server
- TypeScript: Type-safe JavaScript
- Docker API: Container management
- Nerdctl: Containerd CLI wrapper
Configure runtime binary paths in Settings:
- Docker:
/usr/local/bin/docker - Containerd: Bundled in app resources
- Custom: Point to your own installation
Enable debug logging:
- Open Settings
- Enable "Debug Mode"
- Check console output for detailed logs
- Log file location:
~/Library/Logs/aintandem/(macOS)
AInTandem services use the aintandem-net Docker network:
- Driver: Bridge
- Attachable: Yes
- Subnet: Auto-assigned by Docker
- Services: Backend
Persistent data stored in Docker volumes:
aintandem-data: Backend data storage
Backup volumes:
docker run --rm -v aintandem-data:/data -v $(pwd):/backup alpine tar czf /backup/aintandem-data-backup.tar.gz /data- Documentation: See
docs/directory - Issues: Report bugs on GitHub
- Logs: Check application logs for troubleshooting
- Community: Join our discussion forums
See LICENSE file for details.
- v1.0.0: Initial release with Docker support
- v1.1.0: Added containerd support and runtime detection
- v1.2.0: Advanced features (log viewer, system tray, health dashboard)
- v1.3.0: Auto-recovery and performance optimization