
Browse files, view content, shell into, and tail logs for your Kubernetes pods — without leaving the terminal.
podview is an interactive TUI that replaces the repetitive kubectl exec workflow with vim-style navigation, real-time search, and type-ahead filtering across pods, directories, and files.
- Context & namespace selector — switch clusters and namespaces from the home screen
- Pod list —
/ search, type-ahead filtering, status indicators, multi-container support
- Directory browser — starts in the container's working directory, with go-to path and filtering
- File viewer — line wrapping,
/ search with match highlighting, vim-style scrolling
- Interactive shell —
Ctrl+S to drop into bash (or sh) inside any container
- Log viewer — streaming real-time logs (
kubectl logs -f) with auto-tail, in-log search, log level coloring, word wrap, timestamp toggle, and pause/resume/clear controls
- Multi-pod log grid — select multiple pods with
Space and view their logs side by side in a smart auto-sized grid; each panel has independent scroll, tail, and search; Tab to switch focus, Enter to zoom
- Activity indicators — green dot next to pods with recent log activity, updated every 3 seconds
- 5 color themes — Catppuccin Mocha, Dracula, Nord, Gruvbox Dark, Tokyo Night
Grab the latest binary from Releases:
# macOS (Apple Silicon)
curl -L https://github.com/federivo/podview/releases/latest/download/podview-darwin-arm64 -o podview
# Linux (x64)
curl -L https://github.com/federivo/podview/releases/latest/download/podview-linux-x64 -o podview
# Linux (ARM64)
curl -L https://github.com/federivo/podview/releases/latest/download/podview-linux-arm64 -o podview
chmod +x podview
sudo mv podview /usr/local/bin/
git clone https://github.com/federivo/podview.git
cd podview
bun install
bun run build
sudo mv podview /usr/local/bin/
git clone https://github.com/federivo/podview.git
cd podview
bun install
bun run start
- A valid
~/.kube/config (or KUBECONFIG environment variable)
- A Nerd Font for file icons (optional but recommended)
- Bun runtime (only if building from source or running directly)
Keyboard Shortcuts
| Key |
Action |
j/k |
Switch field |
Enter |
Open dropdown / Continue |
Esc |
Close dropdown |
Ctrl+Q |
Quit |
| Key |
Action |
j/k |
Navigate |
PgDn/PgUp |
Page navigation |
/ |
Search pods (filters list) |
| Type |
Quick filter (type-ahead) |
Space |
Mark/unmark pod for multi-pod log view |
Enter |
Select pod (open file explorer) |
l |
Open log viewer (single pod, or all marked pods) |
Ctrl+S |
Shell into pod |
Ctrl+R |
Refresh |
Esc |
Cancel search / Back to home |
Ctrl+Q |
Quit |
| Key |
Action |
j/k |
Navigate |
PgDn/PgUp |
Page navigation |
| Type |
Filter entries |
Enter |
Open file/directory |
Backspace |
Parent directory |
Ctrl+S |
Shell into container |
Ctrl+G |
Go to path |
Ctrl+R |
Refresh |
Esc |
Back to pods |
Ctrl+Q |
Quit |
| Key |
Action |
j/k |
Scroll |
PgDn/PgUp |
Page scroll |
g |
Go to top |
Shift+G |
Go to bottom |
/ |
Search |
n/N |
Next/previous match |
Esc |
Clear search / Back to directory |
Ctrl+Q |
Quit |
| Key |
Action |
j/k |
Scroll (pauses auto-tail) |
PgDn/PgUp |
Page scroll (pauses auto-tail) |
g |
Go to top |
Shift+G |
Go to bottom / resume auto-tail |
/ |
Search within logs |
n/N |
Next/previous match |
w |
Toggle word wrap |
t |
Toggle RFC3339 timestamps |
p |
Pause/resume log stream |
c |
Clear log buffer (keeps stream alive) |
Esc |
Back to pod list |
Ctrl+Q |
Quit |
| Key |
Action |
Tab |
Focus next panel |
Shift+Tab |
Focus previous panel |
j/k |
Scroll focused panel |
Enter |
Zoom focused panel to fullscreen |
Esc |
Return to grid from zoom / Back to pod list |
Ctrl+Q |
Quit |
| Key |
Action |
Ctrl+] |
Exit shell and return to TUI |
Project Structure
src/
index.tsx Entry point, renderer setup
App.tsx View routing and state management
theme.ts Color theme definitions and context
types/index.ts TypeScript interfaces
components/
HomeScreen.tsx Context/namespace/theme selection
PodList.tsx Pod listing with filter and multi-select
FileExplorer.tsx Directory browser
FileViewer.tsx File content viewer with search
LogViewer.tsx Single-pod streaming log viewer
LogPanel.tsx Individual log panel (used in grid)
LogGrid.tsx Multi-pod log grid with focus management
Breadcrumb.tsx Path navigation header
SearchBar.tsx In-file search input
StatusBar.tsx Help text footer
Spinner.tsx Loading animation
hooks/
usePods.ts Pod fetching
useFileSystem.ts Directory listing state
useFileContent.ts File content state
useTextSearch.ts Search logic
useLogStream.ts Streaming log state with 50k line buffer
usePodActivity.ts Pod activity detection via K8s API polling
services/
kubernetes.ts K8s client configuration
podExec.ts Command execution in pods
fileOperations.ts File/directory operations
shellSession.ts Interactive shell session
launchShell.ts Shell launch orchestration
utils/
logLevel.ts Log level detection and color mapping
By default, podview disables TLS certificate verification (NODE_TLS_REJECT_UNAUTHORIZED=0 in src/index.tsx). This is set to support clusters with self-signed certificates, which is common in development and internal environments. If your cluster uses valid TLS certificates and you want strict verification, remove that line from src/index.tsx.
Contributions are welcome! Feel free to open issues or submit pull requests.
MIT