A modern, intuitive web-based alternative to K9s terminal UI for Kubernetes cluster management
Features • Installation • Usage • Development • Contributing • License
K9s GUI brings the power of K9s to your web browser with a modern, user-friendly interface. If you find the terminal-based K9s challenging to navigate or want a more visual approach to Kubernetes management, K9s GUI is for you.
- Browser-Based: Access your Kubernetes clusters from any modern web browser
- Modern UI: Clean, intuitive interface with dark/light theme support
- Real-time Updates: Live cluster monitoring and resource management
- Powerful Search: Quick resource filtering and navigation
- Keyboard Shortcuts: K9s-style keyboard navigation for power users
- Secure: Uses your existing kubeconfig for authentication
- Multi-Context: Easy switching between different Kubernetes contexts
- Cluster Overview: Real-time cluster metrics and health status
- Resource Management: View and manage all Kubernetes resources
- Pods, Deployments, Services, ConfigMaps, Secrets
- StatefulSets, DaemonSets, ReplicaSets
- Ingresses, PersistentVolumes, StorageClasses
- Events, Nodes, Namespaces
- Context Switching: Seamlessly switch between different clusters
- Namespace Filtering: View resources by namespace or across all namespaces
- Resource Actions: View, edit, delete resources with ease
- YAML Editor: Built-in YAML editor for resource manifests
- Log Viewer: Stream container logs in real-time
- Shell Access: Execute commands in containers
- Port Forwarding: Forward ports from pods to your local machine
- Keyboard shortcuts matching K9s commands
- Fuzzy search across all resources
- Resource utilization metrics
- Quick actions and navigation
- Node.js 16+ and npm/yarn
- kubectl configured with access to your Kubernetes cluster(s)
- A Kubernetes cluster (local or remote)
# Clone the repository
git clone https://github.com/yourusername/k9s-gui.git
cd k9s-gui
# Install dependencies
npm install
# Start the application
npm start
# Open your browser at http://localhost:3002# Using Docker
docker run -d \
-p 3002:3002 \
-p 3003:3003 \
-v ~/.kube:/home/node/.kube:ro \
--name k9s-gui \
k9s-gui:latest
# Using Docker Compose
docker-compose up -d- Cluster Selection: Use the dropdown in the header to switch between clusters
- Namespace Selection: Choose a specific namespace or "All Namespaces"
- Resource Navigation: Click on any resource type in the sidebar
- Resource Actions: Click on resource names to view details
| Key | Action |
|---|---|
/ |
Focus search |
j/k |
Navigate up/down |
Enter |
View resource |
e |
Edit resource |
d |
Describe resource |
l |
View logs (pods) |
s |
Shell into container |
Ctrl+D |
Delete resource |
Ctrl+K |
Open command palette |
? |
Show help |
k9s-gui/
├── frontend/ # React TypeScript frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── views/ # Resource-specific views
│ │ ├── features/ # Redux slices and state
│ │ └── app/ # App configuration
│ └── public/
├── backend/ # Express TypeScript backend
│ ├── src/
│ │ ├── controllers/ # API endpoints
│ │ ├── services/ # Business logic
│ │ └── config/ # Configuration
│ └── dist/
└── docs/ # Documentation
# Install dependencies
npm install
# Start backend in development mode
cd backend
npm run dev
# In another terminal, start frontend
cd frontend
npm start
# Run tests
npm test
# Build for production
npm run buildFrontend:
- React 18 with TypeScript
- Redux Toolkit for state management
- Ant Design UI components
- React Router for navigation
- Socket.io for real-time updates
Backend:
- Express.js with TypeScript
- @kubernetes/client-node for K8s API
- Socket.io for WebSocket connections
- Express middleware for security
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
Found a bug or have a feature request? Please open an issue using our templates:
This project is licensed under the MIT License - see the LICENSE file for details.
- K9s - The amazing terminal UI that inspired this project
- Kubernetes - The container orchestration platform
- All contributors who help make this project better
Made with love by the K9s GUI community


