Skip to content
/ swimmer Public

A user-friendly Kubernetes GUI client built for the multi-cluster era.

License

Notifications You must be signed in to change notification settings

teru01/swimmer

Repository files navigation

Swimmer

Swimmer

A user-friendly Kubernetes GUI client built for the multi-cluster era.

demo.mp4

Table of Contents

What is Swimmer?

Swimmer is a native desktop GUI for Kubernetes. From a single window you can:

  • Browse and inspect 27+ resource types across any number of clusters
  • Open multiple clusters side-by-side in tabbed, split-panel workspaces
  • Organize contexts with a hierarchical tree, favorites, and color-coded tags
  • Run kubectl and other commands in a built-in terminal scoped to each cluster
  • View cluster dashboards with node health, pod status, and version info

Built with Tauri and Rust for fast startup, low memory usage, and native OS integration.

Why Swimmer?

Modern infrastructure often spans dozens of Kubernetes clusters across multiple cloud providers and regions. Existing tools make you deal with them one at a time — switching contexts, losing your place, and repeating the same navigation for each cluster.

Swimmer treats multi-cluster as the default. Its context tree groups clusters by provider, region, and project so you can find the right cluster instantly. Favorites and tags let you bookmark the clusters you care about and filter out the rest. Split panels let you compare resources across clusters without switching windows. Each tab remembers its own terminal session and view state, so context-switching has zero overhead.

Features

Multi-Cluster Context Management

  • Hierarchical context tree — Contexts are automatically organized by cloud provider:
    • GKE: Project > Region > Cluster
    • EKS: Account > Region > Cluster
    • Others: Docker Desktop, minikube, kind, and any custom context
  • Favorites — Pin frequently used clusters for instant access
  • Tags — Attach color-coded tags to contexts and filter by them
  • Search — Find any context instantly across all providers

Tabbed & Split-Panel Workspaces

  • Open multiple cluster contexts as tabs within a panel
  • Split panels side-by-side (up to 10) to compare resources across clusters
  • Drag-to-resize panes throughout the UI
  • Per-tab terminal sessions and view states

Resource Browser

Browse and inspect 27+ built-in resource types organized by category:

Category Resources
Workloads Pods, Deployments, ReplicaSets, StatefulSets, DaemonSets, Jobs, CronJobs, HPAs
Network Services, Endpoints, Ingresses, NetworkPolicies
Storage PersistentVolumes, PersistentVolumeClaims, StorageClasses
Configuration ConfigMaps, Secrets, LimitRanges, ResourceQuotas
RBAC Roles, ClusterRoles, RoleBindings, ClusterRoleBindings, ServiceAccounts
Cluster Nodes, Namespaces, Events
Custom Resources Dynamically discovered CRDs
  • Namespace filtering with autocomplete
  • Real-time updates via Kubernetes watch API
  • Detailed resource view with metadata, status, conditions, containers, and events
  • Resource operations: delete resources, rollout restart deployments

Cluster Overview

At-a-glance dashboard showing provider, region, cluster name, Kubernetes version, node readiness, pod status, and more.

Integrated Terminal

  • Full shell access (zsh, bash, fish, etc.) powered by a real PTY
  • Each cluster tab gets its own independent terminal session
  • Automatically configured with the selected cluster's kubeconfig context
  • Customizable theme, font, and shell path via Preferences

Installation

Download the latest release for your OS from the Releases page.

OS File
macOS (Apple Silicon) .dmg (aarch64)
macOS (Intel) .dmg (x64)
Windows .msi / .exe
Linux .deb / .AppImage

macOS users: Since the app is not notarized, macOS may block it on first launch. Go to System Settings > Privacy & Security, scroll down and click "Open Anyway" to allow it.

If you prefer to verify the source yourself, see Getting Started to build from source.

Prerequisites

The following are only needed if you want to build from source.

Getting Started

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

# Build for production
npm run tauri build

Development

# Type-check
npx tsc --noEmit

# Lint
npm run lint

# Format
npm run format

# Test
npm run test

Project Structure

src/                          # Frontend (React / TypeScript)
├── main/                     # Main layout, panel logic
├── cluster/components/       # Resource sidebar, list, detail, overview, terminal
├── kubeContexts/components/  # Context tree, modals
├── preferences/              # Settings page
├── lib/                      # Utilities, providers, tags, favorites
├── api/                      # Tauri command wrappers
└── contexts/                 # React context providers

src-tauri/src/                # Backend (Rust)
├── lib.rs                    # Tauri setup & command registration
├── k8s_api.rs                # Kubernetes API client & watch
└── terminal.rs               # PTY terminal session management

License

MIT

About

A user-friendly Kubernetes GUI client built for the multi-cluster era.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published