A terminal UI (TUI) for managing and monitoring Talos Linux Kubernetes clusters.
talos-pilot provides real-time cluster visibility, diagnostics, log streaming, network analysis, and production-ready node operations - all from your terminal.
https://github.com/user-attachments/assets/4c946c32-1f7e-4ab8-9d88-9937516015d1
Talos Linux removes SSH access for security, replacing it with an API-driven management model. While talosctl is powerful, it requires memorizing many subcommands. talos-pilot provides:
talos-pilot is complementary to k9s, not a replacement. They operate at different layers:
| Tool | Layer | API Port | Use Case |
|---|---|---|---|
| k9s | Kubernetes | :6443 |
Pods, deployments, services, workload debugging |
| talos-pilot | Operating System | :50000 |
Talos services, etcd, kubelet, node health, OS config |
Use k9s for "why won't my pod start?" Use talos-pilot for "why won't my node join the cluster?"
| Feature | Description |
|---|---|
| Cluster Overview | Multi-cluster monitoring, node list with health indicators |
| Node Details | CPU, memory, load averages, Talos/K8s versions |
| Service Status | All Talos services with health indicators |
| Feature | Description |
|---|---|
| Service Logs | Scrollable, searchable (/), color-coded by level |
| Multi-Service Logs | Stern-style interleaved logs from multiple services |
| Processes View | htop-like process list with tree view, CPU/MEM sorting |
| Network Stats | Interface traffic, connections, KubeSpan peers, packet capture |
| Storage/Disks | Disk list with size, transport, serial, system disk indicators |
| etcd Status | Quorum health, member list, alarms, leader tracking |
| Workload Health | K8s deployments, statefulsets, pod issues by namespace |
| Lifecycle View | Version status, config drift detection, cluster alerts |
| Feature | Description |
|---|---|
| System Diagnostics | Automated health checks with actionable fixes |
| CNI Detection | Flannel, Cilium, Calico with provider-specific checks |
| Addon Detection | cert-manager, ArgoCD, Flux, and more |
| Security Audit | PKI certificate expiry, encryption status |
| Feature | Description |
|---|---|
| Node Drain | PDB-aware with configurable timeouts |
| Node Reboot | Post-reboot verification, auto-uncordon |
| Rolling Operations | Sequential multi-node with progress tracking |
| Audit Logging | All operations logged to ~/.talos-pilot/audit.log |
Download the latest release for your platform from the Releases page.
Install prebuilt binaries via shell script:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Handfish/talos-pilot/releases/download/<version>/talos-pilot-installer.sh | sh
Install prebuilt binaries via powershell script:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/Handfish/talos-pilot/releases/download/<version>/talos-pilot-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install Handfish/tap/talos-pilot
git clone https://github.com/Handfish/talos-pilot
cd talos-pilot
cargo build --release
./target/release/talos-pilot
Talos pilot is available as a Nix flake but can also be run without installing.
You can test the app directly by using a nix shell
nix shell github:Handfish/talos-pilot
Or run it directly
nix run github:Handfish/talos-pilot
# flake.nix
{
inputs = {
# ...
talos-pilot.url = "github:Handfish/talos-pilot";
};
outputs =
{
self,
nixpkgs,
talos-pilot,
# ...
}:
{
nixosConfigurations.mymachine = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
{
# provides `pkgs.talos-pilot`
nixpkgs.overlays = [ talos-pilot.overlays.default ];
}
(
{ pkgs, ... }:
{
# install talos-pilot
environment.systemPackages = [ pkgs.talos-pilot ];
}
)
];
};
};
}
~/.talos/config (talosconfig)# Use default context from talosconfig
talos-pilot
# Use specific context
talos-pilot --context homelab
# Set log tail limit
talos-pilot --tail 1000
# Enable debug logging
talos-pilot --debug --log-file ~/talos-pilot.log
For bootstrapping new clusters on bare metal or VMs in maintenance mode, talos-pilot provides an interactive wizard:
https://github.com/user-attachments/assets/0955b5a9-e35d-4fc6-a53d-db16e4558fc9
# Connect to a node in maintenance mode
talos-pilot --insecure --endpoint <node-ip>
The wizard guides you through: 1. Generate Config - Creates talosconfig, controlplane.yaml, and worker.yaml 2. Apply Config - Applies configuration to the node, triggering installation 3. Bootstrap - Initializes etcd and starts the Kubernetes cluster
Once complete, you can manage the cluster using standard talos-pilot commands.
| Key | Action |
|---|---|
? |
Help |
q / Ctrl+C |
Quit |
Esc |
Back / Close |
j/k or ↑/↓ |
Navigate |
Enter |
Select / Expand |
Tab |
Next panel |
r |
Refresh |
a |
Toggle auto-refresh |
/ |
Search (in logs) |
n/N |
Next/prev search match |
| Key | View | Description |
|---|---|---|
c |
Security | PKI and encryption audit |
s |
Storage | Disk list with system disk indicators |
l |
Logs | Single service logs |
L |
Multi-Logs | Interleaved multi-service logs |
p |
Processes | Process tree view |
n |
Network | Interface stats, connections |
e |
etcd | Cluster health, members |
w |
Workloads | K8s deployment health |
y |
Lifecycle | Version status, alerts |
d |
Diagnostics | System health checks |
o |
Operations | Single node operations |
O |
Rolling | Multi-node rolling operations |
crates/
├── talos-rs/ # Talos gRPC client library
├── talos-pilot-core/ # Shared business logic
└── talos-pilot-tui/ # Terminal UI (ratatui)
| Module | Purpose |
|---|---|
indicators |
HealthIndicator, QuorumState, SafetyStatus |
formatting |
format_bytes, format_duration, pluralize |
selection |
SelectableList, MultiSelectList |
async_state |
Loading/error/refresh state management |
diagnostics |
CheckStatus, CniType, PodHealthInfo |
constants |
Thresholds, CRD lists, refresh intervals |
network |
Port-to-service mapping, classification |
errors |
User-friendly error formatting |
# Run all tests
cargo test --all
# Run with debug output
RUST_LOG=debug cargo run
# Watch logs in another terminal
tail -f /tmp/talos-pilot.log
# Check for warnings
cargo clippy --all --all-targets -- -D warnings
See docs/local-talos-setup.md for setting up a local Talos cluster.
| Feature | Priority |
|---|---|
| Container namespace support | Medium |
| Upgrade availability alerts | Low |
MIT License - see LICENSE for details.
$ claude mcp add talos-pilot \
-- python -m otcore.mcp_server <graph>