{"id":49537393,"url":"https://github.com/vnknowledge2014/colima-ui","last_synced_at":"2026-05-02T12:03:46.652Z","repository":{"id":347207207,"uuid":"1192400950","full_name":"vnknowledge2014/colima-ui","owner":"vnknowledge2014","description":"A modern, feature-rich desktop \u0026 web GUI for Colima — manage Docker containers, Kubernetes clusters, Linux VMs with AI-powered diagnostics","archived":false,"fork":false,"pushed_at":"2026-04-30T01:23:39.000Z","size":2392,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-30T02:31:02.530Z","etag":null,"topics":["ai-diagnostics","colima","container-management","desktop-app","docker","docker-gui","gui","kubernetes","lima","linux","macos","react","rust","tauri"],"latest_commit_sha":null,"homepage":"https://github.com/vnknowledge2014/colima-ui/releases/latest","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vnknowledge2014.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-26T07:15:23.000Z","updated_at":"2026-04-30T01:21:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vnknowledge2014/colima-ui","commit_stats":null,"previous_names":["vnknowledge2014/colima-ui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vnknowledge2014/colima-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnknowledge2014%2Fcolima-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnknowledge2014%2Fcolima-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnknowledge2014%2Fcolima-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnknowledge2014%2Fcolima-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vnknowledge2014","download_url":"https://codeload.github.com/vnknowledge2014/colima-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vnknowledge2014%2Fcolima-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32533346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T11:28:32.350Z","status":"ssl_error","status_checked_at":"2026-05-02T11:27:30.140Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-diagnostics","colima","container-management","desktop-app","docker","docker-gui","gui","kubernetes","lima","linux","macos","react","rust","tauri"],"created_at":"2026-05-02T12:03:45.711Z","updated_at":"2026-05-02T12:03:46.637Z","avatar_url":"https://github.com/vnknowledge2014.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"src-tauri/icons/128x128@2x.png\" width=\"128\" height=\"128\" alt=\"ColimaUI\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eColimaUI\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A modern, feature-rich desktop \u0026 web GUI for \u003ca href=\"https://github.com/abiosoft/colima\"\u003eColima\u003c/a\u003e — manage Docker containers, Kubernetes clusters, Linux VMs, and more from a beautiful dark-themed interface.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/vnknowledge2014/colima-ui/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/vnknowledge2014/colima-ui?style=flat-square\u0026color=blue\" alt=\"Latest Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/vnknowledge2014/colima-ui/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/vnknowledge2014/colima-ui/ci.yml?branch=main\u0026style=flat-square\u0026label=CI\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/vnknowledge2014/colima-ui/actions/workflows/release.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/vnknowledge2014/colima-ui/release.yml?style=flat-square\u0026label=Release\" alt=\"Release\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Tauri-v2-orange?style=flat-square\" alt=\"Tauri v2\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-19-61dafb?style=flat-square\" alt=\"React 19\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Rust-2021-dea584?style=flat-square\" alt=\"Rust\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey?style=flat-square\" alt=\"macOS \u0026 Linux\" /\u003e\n  \u003ca href=\"https://github.com/vnknowledge2014/colima-ui/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/vnknowledge2014/colima-ui?style=flat-square\" alt=\"License\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 📥 Download\n\nGrab the latest release for your platform from [**GitHub Releases**](https://github.com/vnknowledge2014/colima-ui/releases/latest):\n\n| Platform | File | Architecture |\n|----------|------|--------------|\n| **macOS** (Apple Silicon) | `ColimaUI_*_aarch64.dmg` | M1 / M2 / M3 / M4 |\n| **macOS** (Intel) | `ColimaUI_*_x64.dmg` | x86_64 |\n| **Linux** (Debian/Ubuntu) | `ColimaUI_*_amd64.deb` | x86_64 |\n| **Linux** (Universal) | `ColimaUI_*_amd64.AppImage` | x86_64 |\n\n\u003e **Browser mode:** After launching the app, access the full web UI at `http://127.0.0.1:11420` from any browser.\n\n---\n\n## ✨ Features\n\n### 🐳 Docker Management\n- **Containers** — List, start, stop, restart, pause, unpause, remove, rename. View logs, inspect details, see real-time stats (CPU/Memory/Network/IO), run new containers with full configuration\n- **Images** — Pull, remove, prune unused, inspect, tag. Batch operations supported\n- **Volumes** — Create, inspect, remove, prune. View mount details and usage\n- **Networks** — Create (bridge/overlay/macvlan/host), inspect, remove, prune\n- **Docker Compose** — List projects, view services, restart/stop projects, view logs\n\n### ☸️ Kubernetes\n- **Multi-resource browser** — Pods, Deployments, Services, ConfigMaps, Secrets, StatefulSets, DaemonSets, Jobs, CronJobs, Ingresses, PVCs, Namespaces, Nodes, Events\n- **Custom Resource Definitions (CRDs)** — Discover and browse custom resources dynamically in the sidebar\n- **Resource actions** — Describe, view/edit YAML, view logs (with container selection), delete, restart, scale replicas\n- **Real-time log streaming** — Follow pod logs via SSE with auto-scroll toggle\n- **HTTP Benchmark** — Benchmark Kubernetes services with configurable concurrency, request count, and latency statistics (p50/p95/p99)\n- **Port forwarding** — Create and manage port forwards to services and pods\n- **Exec** — Shell into pod containers\n- **Cluster health** — Health scan dashboard with node status, resource pressure, component health\n- **Context switching** — Switch between multiple Kubernetes contexts\n- **Kind clusters** — Create and manage [Kind](https://kind.sigs.k8s.io/) clusters\n\n### 🖥️ Linux VMs (Lima)\n- Create VMs from templates with custom CPU, memory, and disk settings\n- Start, stop, delete VMs\n- Shell into VMs directly\n\n### 🤖 AI Features\n- **Dockerfile Generator** — Choose from templates (Node.js, Python, Go, Rust, Java, Ruby, .NET) and edit interactively\n- **AI Chat** — Chat with AI to generate/optimize Dockerfiles. Supports multiple providers:\n  - Anthropic (Claude)\n  - OpenAI (GPT)\n  - Google (Gemini)\n  - Ollama (local models)\n  - OpenRouter, Groq, Together AI, Mistral, DeepSeek, and more\n- **AI Models** — Pull, delete, and serve Ollama models directly\n\n### 🔬 AI Diagnostic Agent\n- **Self-learning diagnostic AI** — Expert-level troubleshooting for Colima/Lima/Docker/Kubernetes errors\n- **5-tool agent loop** — Web search, page fetch, diagnostic log collection, safe command execution, and user-approved command execution\n- **Knowledge Bank (SQLite)** — 22+ builtin solutions for common Colima/Lima errors, user-contributed fixes via like/dislike feedback\n- **Like/Dislike feedback** — 👍 saves a working fix to the knowledge bank for future reuse; 👎 marks it as an anti-pattern so the AI avoids it\n- **Command Sandbox** — AI can execute safe read-only diagnostic commands (e.g., `ps`, `docker ps`, `cat logs`) automatically, and request user approval for state-changing commands (e.g., `colima stop --force`, `pkill`)\n- **3-tier safety system** — Safe (auto-run), Approve (user click), Banned (rejected at Rust level). Prevents destructive commands (`rm`, `sudo`, `eval`, etc.) even if AI hallucinates\n- **SearXNG / DuckDuckGo integration** — Multi-engine web search fallback for researching unknown errors\n- **Deep diagnostics** — Reads Lima VM logs (`ha.stderr.log`, `serial.log`), detects zombie processes, inspects stale lock/PID/socket files\n\n### 📊 Dashboard\n- System overview with running/stopped instance counts, total CPU/memory allocation\n- Docker resource counts (containers, images, volumes, networks, compose projects)\n- Kubernetes status (connection, pod/namespace counts, Kind clusters)\n- Linux VM status (total/running counts)\n- Clickable cards for quick navigation\n\n### 🔧 Additional Features\n- **Terminal** — Integrated xterm.js terminal with SSH into Colima instances or Lima VMs\n- **Instance Management** — Create/start/stop/delete Colima instances with full configuration (runtime, CPU, memory, disk, VM type, architecture, mounts, DNS, K3s)\n- **Setup Wizard** — First-run guided setup for installing dependencies\n- **Getting Started Tour** — Interactive walkthrough for new users\n- **Global Toast Notifications** — Persistent notifications across tab switches for long-running operations\n- **System Settings** — View installed dependencies, disk usage, system prune\n- **Context Menus** — Right-click context menus on containers, images, volumes, and networks\n- **Keyboard Shortcuts** — Hotkeys for common actions (search, refresh, navigation)\n- **Persistent AI Memory** — SQLite-backed knowledge bank at `~/.colima-ui/knowledge.db` that learns from user feedback across sessions\n\n---\n\n## 🏗️ Architecture\n\nColimaUI uses a **dual-mode, event-driven architecture** that works as both a native desktop app and a web application:\n\n```mermaid\ngraph TD\n    subgraph Frontend[\"Frontend — React 19 + TypeScript + Vite 7\"]\n        APP[\"App.tsx\"]\n        PAGES[\"Pages (13 lazy-loaded)\"]\n        STORE[\"Jotai Atoms (store/)\"]\n        LIB[\"Lib (api.ts)\"]\n        COMP[\"Components (5)\"]\n    end\n\n    APP \u0026 PAGES \u0026 COMP --\u003e LIB\n    APP --\u003e STORE\n\n    subgraph API[\"Dual-Mode API Layer\"]\n        TAURI_IPC[\"Tauri IPC (invoke)\"]\n        HTTP[\"Axum HTTP (:11420)\"]\n    end\n\n    LIB --\u003e|\"Desktop\"| TAURI_IPC\n    LIB --\u003e|\"Browser\"| HTTP\n\n    subgraph Events[\"Real-time Updates\"]\n        TAURI_EVT[\"Tauri Events (push)\"]\n        SSE[\"SSE /api/events (push)\"]\n        POLL[\"HTTP Polling (fallback)\"]\n    end\n\n    TAURI_EVT --\u003e|\"Desktop\"| STORE\n    SSE --\u003e|\"Browser\"| STORE\n    POLL --\u003e|\"SSE unavailable\"| STORE\n\n    subgraph Backend[\"Backend — Rust\"]\n        CMD[\"Command Handlers\"]\n        BROADCAST[\"tokio::broadcast\"]\n        WATCHER[\"Docker Event Watcher\"]\n    end\n\n    TAURI_IPC --\u003e CMD\n    HTTP --\u003e CMD\n    WATCHER --\u003e BROADCAST\n    BROADCAST --\u003e SSE\n    BROADCAST --\u003e TAURI_EVT\n\n    subgraph CLI[\"CLI Tools\"]\n        COLIMA[\"colima\"]\n        DOCKER[\"docker\"]\n        KUBECTL[\"kubectl\"]\n        KIND[\"kind\"]\n        LIMACTL[\"limactl\"]\n        OLLAMA[\"ollama\"]\n    end\n\n    CMD --\u003e CLI\n```\n\n### Event-Driven Updates\n\nColimaUI uses a **push-first architecture** for real-time state synchronization:\n\n| Mode | Mechanism | Fallback |\n|------|-----------|----------|\n| **Desktop (Tauri)** | Tauri IPC events (`instances-update`, `docker-state-updated`) | — |\n| **Browser (SSE available)** | `EventSource` → `/api/events` | — |\n| **Browser (SSE unavailable)** | Automatic HTTP polling (3–5s intervals) | Graceful degradation |\n\n### Frontend (`src/`)\n\n| Directory | Contents |\n|-----------|----------|\n| `pages/` | 13 lazy-loaded page components (Dashboard, Instances, Containers, Images, Volumes, Networks, Compose, Kubernetes, LinuxVMs, Models, DockerfileGen, Terminal, Settings) |\n| `components/` | Shared components (ConfirmDialog, ContextMenu, SetupWizard, GettingStartedTour, AiChatBubble, Icons) |\n| `store/` | Jotai atomic state — `dockerAtom.ts`, `resourceAtom.ts`, `dashboardAtom.ts`, `k8sAtom.ts` |\n| `hooks/` | Custom hooks — `useHotkeys.ts` |\n| `lib/` | API layer (`api.ts`) with dual-mode Tauri/HTTP support, global toast (`globalToast.ts`), display formatters (`formatters.ts`) |\n| `assets/` | Static assets |\n\n### Backend (`src-tauri/`)\n\n| File | Purpose |\n|------|---------|\n| `lib.rs` | Tauri app setup, plugin registration, IPC command handlers |\n| `api_server.rs` | Axum HTTP API server (port 11420) with SSE `/api/events` endpoint and Docker event watcher |\n| `docker_state.rs` | Bollard Docker event stream for real-time push updates (container/image state changes) |\n| `commands/` | Modular CLI-based command handlers: `colima`, `docker`, `volumes`, `networks`, `compose`, `kubernetes`, `lima`, `models`, `ai_chat`, `searxng`, `knowledge_bank`, `shell_sandbox`, `system` |\n| `knowledge_bank.rs` | SQLite knowledge bank — builtin solutions, user feedback, anti-pattern tracking |\n| `path_util.rs` | macOS PATH fixup for Finder/Dock launches |\n| `instance_reader.rs` | Colima instance YAML config parser |\n| `terminal_session.rs` | PTY-based terminal session management for xterm.js |\n| `poller.rs` | Background instance status poller |\n\n---\n\n## 📦 Prerequisites\n\n- **[Colima](https://github.com/abiosoft/colima)** — Container runtime manager (macOS / Linux)\n- **[Docker CLI](https://docs.docker.com/engine/install/)** — Container engine client\n- **[Lima](https://lima-vm.io/)** — Linux VM manager (installed with Colima)\n- **[Node.js](https://nodejs.org/) ≥ 18** — For frontend development\n- **[Rust](https://www.rust-lang.org/tools/install)** — For Tauri backend\n- **[kubectl](https://kubernetes.io/docs/tasks/tools/)** *(optional)* — For Kubernetes features\n- **[Kind](https://kind.sigs.k8s.io/)** *(optional)* — For Kind cluster management\n- **[Ollama](https://ollama.ai/)** *(optional)* — For local AI model management\n\n\u003e **Note:** The desktop app (Tauri) runs on **macOS and Linux**. The web mode runs on any platform with a modern browser.\n\n---\n\n## 🚀 Getting Started\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/vnknowledge2014/colima-ui.git\ncd colima-ui\n```\n\n### 2. Install dependencies\n\n```bash\nnpm install\n```\n\n### 3. Run in development mode\n\n#### Desktop App (Tauri)\n\n```bash\nnpm run tauri dev\n```\n\nThis starts both the Vite dev server (port 1420) and the Tauri native window.\n\n#### Web-only (Browser)\n\n```bash\nnpm run dev\n```\n\nThen open `http://localhost:1420` in your browser. The app will use HTTP API on port 11420 (requires the Tauri backend to be running, or a standalone API server).\n\n### 4. Build for production\n\n#### Desktop App\n\n```bash\nnpm run tauri build\n```\n\nProduces a native `.app` bundle in `src-tauri/target/release/bundle/`.\n\n#### Web-only\n\n```bash\nnpm run build\n```\n\nOutput goes to `dist/`.\n\n---\n\n## 🛠️ Tech Stack\n\n| Layer | Technology | Version |\n|-------|-----------|---------|\n| **Frontend** | React | 19.1 |\n| **State Management** | Jotai | 2.x |\n| **Language** | TypeScript | 5.8 |\n| **Bundler** | Vite | 7.x |\n| **Desktop** | Tauri | 2.x |\n| **Backend** | Rust (Edition 2021) | — |\n| **HTTP Server** | Axum | 0.8 |\n| **Docker Client** | Bollard | — |\n| **Terminal** | xterm.js | 6.0 |\n| **Virtualization** | @tanstack/react-virtual | 3.x |\n| **Styling** | Vanilla CSS (dark theme) | — |\n\n### Key Dependencies\n\n**Frontend:**\n- `jotai` — Atomic state management for Docker/K8s resource caching\n- `@tauri-apps/api` — Tauri IPC bridge\n- `@tauri-apps/plugin-shell` — Shell command execution\n- `@xterm/xterm` + `@xterm/addon-fit` + `@xterm/addon-web-links` — Terminal emulation\n- `@tanstack/react-virtual` — Virtualized scrolling for large container/image lists\n\n**Backend (Rust):**\n- `tauri` (with `tray-icon` feature) — Desktop framework\n- `axum` + `tower-http` (CORS) — HTTP API server with SSE support\n- `bollard` — Native Docker API client for event streaming\n- `tokio` (broadcast channels) — Async runtime with pub/sub for SSE\n- `async-stream` — Async stream helpers for SSE log streaming\n- `reqwest` — HTTP client for benchmark tool and web search\n- `rusqlite` (bundled) — SQLite knowledge bank for AI diagnostic memory\n- `regex-lite` — Lightweight regex for error pattern matching\n- `scraper` + `html2md` — HTML parsing and markdown conversion for web search\n- `serde` + `serde_json` + `serde_yaml` — Serialization\n- `tauri-plugin-shell` — Shell command execution from Tauri\n\n---\n\n## 📁 Project Structure\n\n```\ncolima-ui/\n├── src/                        # Frontend source\n│   ├── App.tsx                 # Main app shell, SSE/event listeners, sidebar\n│   ├── main.tsx                # React entry point\n│   ├── index.css               # Global styles (dark theme, animations)\n│   ├── pages/                  # Page components (lazy-loaded)\n│   │   ├── Dashboard.tsx       # System overview \u0026 resource counts\n│   │   ├── Instances.tsx       # Colima instance \u0026 Kind cluster management\n│   │   ├── Containers.tsx      # Docker container management (virtual scroll)\n│   │   ├── Images.tsx          # Docker image management\n│   │   ├── Volumes.tsx         # Docker volume management\n│   │   ├── Networks.tsx        # Docker network management\n│   │   ├── Compose.tsx         # Docker Compose project management\n│   │   ├── Kubernetes.tsx      # Kubernetes resource browser \u0026 actions\n│   │   ├── LinuxVMs.tsx        # Lima VM management\n│   │   ├── Models.tsx          # Ollama AI model management\n│   │   ├── DockerfileGen.tsx   # AI-powered Dockerfile generator\n│   │   ├── Terminal.tsx        # Integrated terminal (xterm.js)\n│   │   └── Settings.tsx        # System info, disk usage, prune\n│   ├── store/                  # Jotai atomic state management\n│   │   ├── dockerAtom.ts       # Container \u0026 image state atoms\n│   │   ├── resourceAtom.ts     # Volume \u0026 network state atoms\n│   │   ├── dashboardAtom.ts    # Dashboard cached state\n│   │   └── k8sAtom.ts          # Kubernetes resource state\n│   ├── hooks/                  # Custom React hooks\n│   │   └── useHotkeys.ts       # Keyboard shortcut manager\n│   ├── components/             # Shared components\n│   │   ├── ConfirmDialog.tsx   # Reusable confirmation dialog\n│   │   ├── ContextMenu.tsx     # Right-click context menus\n│   │   ├── SetupWizard.tsx     # First-run setup wizard\n│   │   ├── GettingStartedTour.tsx  # Interactive tour\n│   │   ├── AiChatBubble.tsx    # AI diagnostic agent (chat, tools, feedback)\n│   │   └── Icons.tsx           # SVG icon components\n│   └── lib/                    # Utilities\n│       ├── api.ts              # Dual-mode API layer (Tauri IPC / HTTP)\n│       └── globalToast.ts      # Global toast notification system\n├── src-tauri/                  # Tauri backend (Rust)\n│   ├── src/\n│   │   ├── lib.rs              # App setup \u0026 command registration\n│   │   ├── main.rs             # Entry point\n│   │   ├── api_server.rs       # Axum HTTP API (port 11420)\n│   │   ├── commands/           # Modular command handlers\n│   │   │   ├── colima.rs       # Colima instance management + diagnostics\n│   │   │   ├── docker.rs       # Docker operations (all via Docker CLI)\n│   │   │   ├── kubernetes.rs   # Kubernetes resource management\n│   │   │   ├── knowledge_bank.rs  # SQLite AI knowledge bank\n│   │   │   ├── shell_sandbox.rs   # 3-tier command execution sandbox\n│   │   │   ├── searxng.rs      # SearXNG/DuckDuckGo web search\n│   │   │   └── ...             # volumes, networks, compose, lima, models, ai_chat, system\n│   │   ├── instance_reader.rs  # Colima config parser\n│   │   ├── terminal_session.rs # PTY terminal management\n│   │   ├── poller.rs           # Background status polling\n│   │   └── path_util.rs        # macOS PATH fixup\n│   ├── tauri.conf.json         # Tauri configuration\n│   ├── Cargo.toml              # Rust dependencies\n│   └── icons/                  # App icons\n├── package.json                # Node.js dependencies \u0026 scripts\n├── vite.config.ts              # Vite configuration (port 1420)\n├── tsconfig.json               # TypeScript configuration\n└── index.html                  # HTML entry point\n```\n\n---\n\n## 🎨 Design\n\nColimaUI features a premium **dark theme** with:\n- Glassmorphism effects and subtle transparency\n- Smooth micro-animations and transitions\n- Custom CSS variables for consistent theming\n- Responsive layout with collapsible sidebar\n- macOS-native title bar integration (overlay style)\n- Global toast notifications with slide-in animation\n\n## ⚡ Performance\n\n- **Code Splitting** — All 13 pages lazy-loaded via `React.lazy` + `Suspense`\n- **Vendor Chunk Splitting** — Separate bundles for React, xterm, Tauri, and Jotai\n- **Virtual Scrolling** — `@tanstack/react-virtual` for large container/image lists\n- **Deferred Search** — `useDeferredValue` for non-blocking search filtering\n- **Event-Driven Updates** — SSE push replaces polling; zero overhead when idle\n- **Graceful Degradation** — Automatic HTTP polling fallback when SSE unavailable\n\n---\n\n## 📝 Scripts\n\n| Command | Description |\n|---------|-------------|\n| `npm run dev` | Start Vite dev server (port 1420) |\n| `npm run build` | TypeScript check + Vite production build |\n| `npm run preview` | Preview production build |\n| `npm run tauri dev` | Start Tauri desktop app in dev mode |\n| `npm run tauri build` | Build Tauri desktop app for production |\n\n---\n\n## 🔄 CI/CD \u0026 Releases\n\nThis project uses **GitHub Actions** for automated CI and releases:\n\n- **CI** (`.github/workflows/ci.yml`) — Runs on every push/PR:\n  - TypeScript type checking\n  - Rust `cargo check` + `cargo clippy` (macOS ARM64, macOS x86, Linux)\n  - Frontend build validation\n\n- **Release** (`.github/workflows/release.yml`) — Triggered by version tags (`v*`):\n  - Builds DMG for macOS (ARM64 + x86)\n  - Builds `.deb` + `.AppImage` for Linux\n  - Auto-creates GitHub Release with all assets\n  - Auto-syncs version across `package.json`, `Cargo.toml`, `tauri.conf.json`\n\n### Creating a Release\n\n```bash\n# Bump version, commit, tag, and push (triggers CI + Release build)\n./scripts/release.sh patch   # 0.1.1 → 0.1.2\n./scripts/release.sh minor   # 0.1.1 → 0.2.0\n./scripts/release.sh major   # 0.1.1 → 1.0.0\n./scripts/release.sh 2.0.0   # explicit version\n```\n\nThe script automatically:\n1. Updates version in all 3 config files\n2. Creates an atomic commit + signed tag\n3. Pushes to GitHub → triggers release workflow\n4. GitHub Actions builds all platforms and creates a GitHub Release\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nPlease follow [Conventional Commits](https://www.conventionalcommits.org/) for commit messages.\n\n---\n\n## 📄 License\n\nMIT License. This project is part of the [Colima](https://github.com/abiosoft/colima) ecosystem.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Built with ❤️ using \u003ca href=\"https://tauri.app\"\u003eTauri\u003c/a\u003e, \u003ca href=\"https://react.dev\"\u003eReact\u003c/a\u003e, and \u003ca href=\"https://www.rust-lang.org\"\u003eRust\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvnknowledge2014%2Fcolima-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvnknowledge2014%2Fcolima-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvnknowledge2014%2Fcolima-ui/lists"}