https://github.com/atilladeniz/kubeli
A modern, native Kubernetes management desktop app for macOS & Windows. Multi-cluster support, real-time monitoring, AI assistant, terminal access, and more.
https://github.com/atilladeniz/kubeli
cloud-native devops k8s kubectl kubernetes kubernetes-dashboard kubernetes-monitoring kubernetes-ui pods
Last synced: 9 days ago
JSON representation
A modern, native Kubernetes management desktop app for macOS & Windows. Multi-cluster support, real-time monitoring, AI assistant, terminal access, and more.
- Host: GitHub
- URL: https://github.com/atilladeniz/kubeli
- Owner: atilladeniz
- License: mit
- Created: 2026-01-17T12:27:49.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-02-18T20:55:25.000Z (about 1 month ago)
- Last Synced: 2026-02-18T23:36:20.653Z (about 1 month ago)
- Topics: cloud-native, devops, k8s, kubectl, kubernetes, kubernetes-dashboard, kubernetes-monitoring, kubernetes-ui, pods
- Language: TypeScript
- Homepage: https://kubeli.dev
- Size: 5.48 MB
- Stars: 230
- Watchers: 0
- Forks: 19
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Kubeli
A modern, beautiful Kubernetes management desktop application with real-time monitoring, terminal access, and a polished user experience.
## Features
- **Multi-Cluster Support** - Connect to multiple clusters, auto-detect provider type (Minikube, EKS, GKE, AKS)
- **Real-Time Updates** - WebSocket-based pod watching with efficient Kubernetes watch API
- **Resource Browser** - View and manage Pods, Deployments, Services, ConfigMaps, Secrets, Nodes, and more
- **Pod Logs** - Stream logs in real-time with filtering, search, and export
- **Terminal Access** - Interactive shell access to running containers via XTerm.js
- **Port Forwarding** - Forward ports from pods/services to localhost with status tracking
- **Metrics Dashboard** - CPU and memory usage visualization (requires metrics-server)
- **YAML Editor** - Full Monaco editor integration for viewing and editing resources
- **AI Assistant** - Integrated AI support with Claude Code CLI and OpenAI Codex CLI
- **MCP Server** - Model Context Protocol server for IDE integration (VS Code, Cursor, Claude Code)
- **Helm Releases** - View and manage Helm deployments
- **Proxy Support** - HTTP/HTTPS/SOCKS5 proxy configuration for corporate environments
- **Internationalization** - English and German language support
- **Dark/Light Mode** - Theme support with vibrancy effects
## Tech Stack
| Layer | Technology |
|-------|------------|
| Frontend | Vite, React 19, TypeScript, Tailwind CSS 4 |
| Desktop | Tauri 2.9 (Rust) |
| K8s Client | kube-rs with k8s-openapi v1.35 |
| State | Zustand |
| UI Components | Radix UI, Lucide Icons |
| Editor | Monaco Editor |
| Terminal | XTerm.js |
| Charts | uPlot |
## Installation
### Build from Source
**Prerequisites:**
- Node.js 18+
- Rust 1.70+
- npm (default) or pnpm
```bash
# Clone the repository
git clone https://github.com/atilladeniz/kubeli.git
cd kubeli
# Install dependencies
make install
# Run in development mode
make dev
# Build for production (macOS)
make build
# Build for Windows (cross-compile from macOS)
make install-windows-build-deps # One-time setup
make build-windows
# Build both platforms
make build-all
```
## Development
```bash
# Start Tauri + Vite dev environment
make dev
# Start Vite only (no Tauri)
make web-dev
# Run linting
make lint
# Format code
make format
# Type check
make check
```
### Debug Bundle vs Dev Mode
- `make dev` runs the live Tauri dev server with hot reload (uses the dev URL).
- `make screenshot-build` creates a **bundled debug app** (`Kubeli.app`) used for deep-link screenshot automation. This is not the same as dev mode.
For automated screenshots (deep links are debug-only):
```bash
# Build bundled debug app for screenshots
make screenshot-build
# Capture all screenshots
make screenshots
```
You can override the target context:
```bash
SCREENSHOT_CONTEXT="minikube (dev)" make screenshots
```
## Testing
```bash
# Frontend unit tests
npm run test
# Backend unit tests
cd src-tauri && cargo test
# E2E smoke tests (static export + mocked IPC)
npm run test:e2e
```
`npm run test:e2e` loads environment defaults from `config/e2e.env` and injects a mocked Google Fonts response from `config/font-mocks.cjs`.
## Local Testing Lab
For testing Kubeli with simulated environments (OpenShift, EKS/GKE/AKS contexts, auth errors, scale testing), see the [Local Testing Lab documentation](.dev/README.md). This allows you to test environment detection and error handling without cloud provider access.
```bash
# Quick examples
make minikube-setup-openshift # OpenShift CRDs + Routes
make kubeconfig-fake-eks # Fake EKS context
make minikube-setup-scale N=100 # Create 100 dummy pods
```
## SBOM (Software Bill of Materials)
Kubeli provides [CycloneDX](https://cyclonedx.org/) SBOMs for supply chain security and compliance.
### What's Included
| SBOM File | Contents | Format |
|-----------|----------|--------|
| `sbom-npm.json` | Production npm dependencies | CycloneDX 1.5 JSON |
| `sbom-rust.json` | Production Rust crates | CycloneDX 1.5 JSON |
### Automatic Generation
Every [GitHub Release](https://github.com/atilladeniz/Kubeli/releases) includes validated SBOMs as downloadable assets. The CI pipeline:
1. Generates SBOMs excluding dev/build dependencies
2. Validates against CycloneDX 1.5 schema
3. Attaches to release for audit/compliance download
### Local Generation
```bash
# Generate both SBOMs
make sbom
# Generate and validate (requires Docker)
make sbom-validate
```
### Enterprise Use
These SBOMs support:
- **Vulnerability scanning** (Grype, Trivy, Snyk)
- **License compliance** audits
- **Supply chain security** (SLSA, SSDF frameworks)
- **Regulatory requirements** (FDA, EU CRA, Executive Order 14028)
## Security Scanning
Kubeli includes automated security scanning in CI and local development.
### Automated Scans (CI)
| Scanner | Purpose | Trigger |
|---------|---------|---------|
| **Trivy** | SBOM vulnerability scanning | PRs, pushes to main |
| **Trivy** | Secret & misconfiguration detection | PRs, pushes to main |
| **Semgrep** | Static code analysis (SAST) | PRs, pushes to main |
Results appear in the GitHub Security tab (requires GitHub Advanced Security for private repos).
### Local Scanning
```bash
# Run all security scans (requires Docker)
make security-scan
# Individual scans
make security-trivy # Vulnerability + secret scanning
make security-semgrep # Static code analysis
```
### Configuration
- `trivy.yaml` - Severity thresholds and scan settings
- `trivy-secret.yaml` - Secret detection rules
- `.semgrep.yaml` - Custom SAST rules for TypeScript and Rust
## Code Verification (Vet)
[Vet](https://github.com/imbue-ai/vet) is an AI-powered code verification tool that reviews code changes for correctness, security issues, and goal adherence. It uses your existing Claude Code subscription (no extra API keys needed).
### Quick Start
```bash
# Review all changes in current branch against main
# (auto-generates goal from commit messages if GOAL is omitted)
make vet
# Review with a specific goal
make vet GOAL="Refactor storage layer without breaking API"
```
### Use Cases
| Scenario | Command | Description |
|----------|---------|-------------|
| **Branch review** | `make vet` | Review all commits in the branch against main |
| **Goal verification** | `make vet GOAL="Add auth to API"` | Verify changes match the intended goal |
| **PR preparation** | `make vet GOAL="..."` | Self-review entire branch before opening a PR |
| **Post-refactor check** | `make vet GOAL="Refactor X without breaking Y"` | Ensure refactoring didn't introduce regressions |
| **Security review** | `make vet GOAL="Harden input validation"` | Check for security issues in new code |
### How It Works
1. Vet compares all commits in the current branch against `main` (full branch diff)
2. Sends the diff + your goal description to Claude (via Claude Code)
3. Returns a list of issues: logic errors, security problems, goal mismatches
4. Exit code `0` = no issues, `10` = issues found
### Installation
`make install` will attempt to install vet automatically (requires Python with pipx, uv, or pip). If Python is not available, vet is skipped with a warning. To install separately:
```bash
make vet-install
```
### Agent Skill
Vet is also installed as a Claude Code skill (`.claude/skills/vet/`). When using Claude Code for development, the agent will proactively run vet after code changes to catch issues early.
## Platform Support
### macOS
- **Requirements:** macOS 10.15+ (Catalina or later)
- **Architecture:** Apple Silicon (arm64) native
- **Auto-Updates:** Fully supported via Tauri updater
### Windows
- **Requirements:** Windows 10/11 (64-bit)
- **WebView2:** Automatically installed if missing (embedded bootstrapper)
- **Auto-Updates:** Fully supported via Tauri updater
- **Note:** First launch may show SmartScreen warning (app is not code-signed with Microsoft certificate)
### Linux
- **Requirements:** x64 Linux with GLIBC 2.31+ (Ubuntu 20.04+, Fedora 33+, etc.)
- **Format:** AppImage (portable, no installation required)
- **Auto-Updates:** Fully supported via Tauri updater
### Windows Development Setup
For developing or testing Kubeli on Windows, see the [Windows Setup Guide](.dev/windows/WINDOWS-SETUP.md).
## Supported Kubernetes Providers
| Provider | Detection | Icon |
|----------|-----------|------|
| Minikube | Context name | Yes |
| AWS EKS | Context/URL pattern | Yes |
| Google GKE | Context/URL pattern | Yes |
| Azure AKS | Context/URL pattern | Yes |
| Generic K8s | Fallback | Yes |
## Project Structure
```
kubeli/
├── src/ # React frontend (Vite)
│ ├── app/ # App styles/tests
│ ├── components/ # React components
│ │ ├── features/ # AI, Dashboard, Home, Logs, Port Forward, Resources,
│ │ │ # Settings, Shortcuts, Terminal, Updater, Visualization
│ │ ├── layout/ # Sidebar, Tabbar, Titlebar
│ │ └── ui/ # Radix UI components
│ └── lib/
│ ├── hooks/ # useK8sResources, useLogs, useShell, etc.
│ ├── stores/ # Zustand stores
│ ├── tauri/ # Tauri command bindings
│ └── types/ # TypeScript definitions
├── src-tauri/ # Tauri/Rust backend
│ └── src/
│ ├── commands/ # clusters, resources, logs, shell, portforward,
│ │ # flux, helm, metrics, mcp, network, watch, etc.
│ ├── k8s/ # KubeClientManager, config parsing
│ ├── ai/ # AI assistant integration
│ └── mcp/ # MCP server
├── web/ # Landing page (Astro)
└── Makefile # Development shortcuts
```
## Contributing
We welcome contributions! Please read our [Contributing Guide](CONTRIBUTING.md) and [AI Usage Policy](AI_POLICY.md) before submitting PRs.
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for a detailed list of changes.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Author
Created by [Atilla Deniz](https://atilladeniz.com)