Argonaut is a keyboard-first terminal UI for Argo CD, built with Bubbletea. Browse apps, scope by clusters/namespaces/projects, stream live resource status, trigger syncs, inspect diffs in your favorite pager, and roll back safely — all without leaving your terminal.
❤️ 🐶 Inspired by the great UX of k9s — but for Argo CD.
- Argo CD CLI installed
- Delta installed for enhanced diffs (optional, falls back to
git)
Install Script (Linux/macOS)
curl -sSL https://raw.githubusercontent.com/darksworm/argonaut/main/install.sh | shThe install script automatically detects your system (including musl vs glibc on Linux) and downloads the appropriate binary from the latest release.
You can also install a specific version:
curl -sSL https://raw.githubusercontent.com/darksworm/argonaut/main/install.sh | sh -s -- v1.13.0Homebrew (Linux/MacOS)
brew tap darksworm/homebrew-tap
brew install darksworm/tap/argonautAUR (Arch User Repository)
yay -S argonaut-binNix
With Nix and Flakes enabled, you can run or install Argonaut directly from the repository.To run Argonaut without permanently installing it, use the nix run command:
nix run github:darksworm/argonautTo enter a development shell with Argonaut and its dependencies (like Go, Delta, and Argocd) available for development, use the nix develop command:
nix develop github:darksworm/argonautIf you are using Flakes to manage your systems add this to your Flake:
inputs = {
argonaut = {
url = "github:darksworm/argonaut";
inputs.nixpkgs.follows = "nixpkgs";
};
# ...
}Docker
Pull the image:
docker pull ghcr.io/darksworm/argonaut:latestRun with mounted Argo CD config (as your host user to preserve permissions):
docker run -it --rm \
-u $(id -u):$(id -g) \
-v ~/.config/argocd:/home/appuser/.config/argocd:ro \
ghcr.io/darksworm/argonaut:latestThe container needs access to your Argo CD configuration for authentication. The :ro flag mounts it as read-only for security.
Download a binary
You can download binaries and packages in from the latest release.
# Log in to your Argo CD server
argocd login
# Start Argonaut
argonaut- Instant app browsing with live updates (NDJSON streams)
- Scoped navigation: clusters → namespaces → projects → apps
- Command palette (
:) for actions:sync,diff,rollback,resources, etc. - Live resources view per app with health & sync status
- External diff integration: prefers
delta, falls back togit --no-index diff | less - Guided rollback with revision metadata and progress streaming
- Keyboard-only workflow with Vim-like navigation
Argonaut supports client certificate authentication. You just need to pass a couple arguments to the argonaut command:
argonaut --client-cert=/path/to/cert --client-cert-key=/path/to/keyIf your Argo CD server uses a self-signed certificate, you can provide a custom CA certificate to trust:
argonaut --ca-cert=/path/to/ca.crtIf your Argo CD server isn't directly accessible (e.g., running in a private cluster), Argonaut can connect via kubectl port-forward:
# Configure ArgoCD CLI for port-forward mode
argocd login --port-forward --port-forward-namespace argocd
# Start Argonaut (automatically detects port-forward mode)
argonautRequirements:
kubectlconfigured with access to the cluster- ArgoCD server pod running in the target namespace
Custom namespace: If ArgoCD is installed in a different namespace, add to your config:
# ~/.config/argonaut/config.toml
[port_forward]
namespace = "my-argocd-namespace"Argonaut stores its configuration in a TOML file at ~/.config/argonaut/config.toml (or $XDG_CONFIG_HOME/argonaut/config.toml).
You can override the config path with the ARGONAUT_CONFIG environment variable.
[appearance]
theme = "tokyo-night"
[appearance.overrides]
# Override individual theme colors (hex format)
# accent = "#ff79c6"
# success = "#50fa7b"
[sort]
field = "name" # name, sync, health
direction = "asc" # asc, desc
[k9s]
command = "k9s" # Path to k9s executable
context = "" # Override Kubernetes context for k9s
[diff]
viewer = "" # Interactive diff viewer (e.g., "code --diff {left} {right}", "meld {left} {right}")
formatter = "" # Diff formatter command (e.g., "delta --side-by-side")| Option | Description | Default |
|---|---|---|
theme |
Color theme name (see available themes below) | tokyo-night |
Available themes:
- Dark themes:
catppuccin-mocha,dracula,gruvbox-dark,monokai,nord,one-dark,oxocarbon,solarized-dark,tokyo-night,tokyo-storm - Light themes:
catppuccin-latte,gruvbox-light,one-light,onehalf-light,solarized-light - Accessibility:
colorblind-safe,grayscale-lowchroma,high-contrast - Special:
inherit-terminal(uses your terminal's ANSI color palette)
You can also change the theme at runtime using the :theme <name> command.
Override individual theme colors with hex values. Available color keys:
accent,warning,dim,success,danger,progress,unknown,info,text,grayselected_bg,cursor_selected_bg,cursor_bg,border,muted_bg,shade_bg,dark_bg
| Option | Description | Default |
|---|---|---|
field |
Sort field (name, sync, health) |
name |
direction |
Sort direction (asc, desc) |
asc |
You can also change sorting at runtime using the :sort <field> <direction> command.
Integration settings for k9s, the Kubernetes TUI.
| Option | Description | Default |
|---|---|---|
command |
Path to k9s executable | k9s |
context |
Override Kubernetes context when launching k9s | (none) |
Press K on a resource in the tree view to open it in k9s.
Settings for diff viewing and formatting.
| Option | Description | Default |
|---|---|---|
viewer |
Interactive diff viewer command. Use {left} and {right} as placeholders for file paths. |
(none) |
formatter |
Non-interactive diff formatter piped through before display | (none, falls back to delta if installed) |
Examples:
[diff]
# Use VS Code as diff viewer
viewer = "code --diff {left} {right} --wait"
# Use meld as diff viewer
viewer = "meld {left} {right}"
# Use delta with custom options
formatter = "delta --side-by-side --line-numbers"If no viewer is set, diffs are shown in an internal pager. If no formatter is set but delta is installed, it will be used automatically.
Settings for port-forward mode (when ArgoCD CLI is configured with server: port-forward).
| Option | Description | Default |
|---|---|---|
namespace |
Kubernetes namespace where ArgoCD is installed | argocd |
See CONTRIBUTING.md for guidelines on how to contribute to this project.






