A desktop app for browsing and editing Kubernetes secrets through a clean, intuitive UI
Features • Installation • Usage • Building from Source
SecretDesk reads your ~/.kube/config, connects to clusters, and provides a key-value editor with transparent base64 encoding/decoding.
- 🖥️ Multi-cluster support — Switch between kubeconfig contexts
- 📂 Namespace browser — Navigate namespaces in the sidebar
- ✏️ Secret editor — Vercel-style key-value editor with inline editing
- 👁️ Show/hide values — Toggle visibility per row
- 🔧 Create & delete secrets — Full CRUD with type selection (Opaque, TLS, Docker, etc.)
⚠️ Conflict detection — UsesresourceVersionfor optimistic concurrency (409 handling)- 🔒 Binary data detection — Displays
[Binary data]for non-UTF-8 values - 🎨 Dark/Light/System theme — Follows system preference or manual override
- ⌨️ Keyboard shortcuts — Cmd+S / Ctrl+S to save
Download the latest .zip for your Mac from GitHub Releases:
- Apple Silicon (M1/M2/M3/M4) —
SecretDesk-darwin-arm64-*.zip - Intel —
SecretDesk-darwin-x64-*.zip
Unzip and drag SecretDesk.app to your Applications folder.
- A valid
~/.kube/configwith at least one cluster configured (i.e.kubectlworks)
- Launch SecretDesk
- Select a kubeconfig context from the sidebar dropdown
- Pick a namespace
- Browse, create, edit, or delete secrets in the key-value editor
- Press Cmd+S to save changes
- Electron — Cross-platform desktop framework
- React 19 — UI library
- TypeScript — Type safety
- Vite — Build tool
- Tailwind CSS — Styling
- Radix UI — Accessible UI primitives
- @kubernetes/client-node — Kubernetes API client
# Clone the repo
git clone https://github.com/akshitkrnagpal/secret-desk.git
cd secret-desk
# Install dependencies
pnpm install
# Start development server
pnpm start
# Build distributable
pnpm run makeSecretDesk/
├── assets/ # App icons
├── src/
│ ├── main/ # Electron main process
│ │ ├── ipc/ # IPC handlers
│ │ ├── services/ # Kubernetes service layer
│ │ └── main.ts # Entry point
│ ├── preload/ # Preload scripts
│ ├── renderer/ # React frontend
│ │ ├── components/ # UI components
│ │ ├── context/ # React context providers
│ │ ├── hooks/ # Custom hooks
│ │ ├── lib/ # Utilities
│ │ ├── styles/ # Global styles
│ │ └── App.tsx # Root component
│ └── shared/ # Shared types
└── package.json
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Made with ❤️ by Akshit Kr Nagpal