{"id":30320443,"url":"https://github.com/darksworm/argonaut","last_synced_at":"2026-02-14T11:10:54.331Z","repository":{"id":309418838,"uuid":"1034142340","full_name":"darksworm/argonaut","owner":"darksworm","description":"Keyboard-first terminal UI for Argo CD. Browse apps, scope by clusters/namespaces/projects, stream live resource status, trigger syncs, inspect diffs, and roll back safely — all without leaving your terminal.","archived":false,"fork":false,"pushed_at":"2026-01-17T21:57:30.000Z","size":28559,"stargazers_count":308,"open_issues_count":12,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-18T06:57:05.746Z","etag":null,"topics":["argo-cd","argocd","cd","cli","continuous-delivery","devops","gitops","helm","infrastructure-as-code","k8s","k9s-like","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darksworm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["darksworm"],"patreon":null,"open_collective":null,"ko_fi":"darksworm","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-08-07T23:18:43.000Z","updated_at":"2026-01-17T21:04:16.000Z","dependencies_parsed_at":"2025-12-03T07:10:09.275Z","dependency_job_id":null,"html_url":"https://github.com/darksworm/argonaut","commit_stats":null,"previous_names":["darksworm/argonaut"],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/darksworm/argonaut","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Fargonaut","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Fargonaut/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Fargonaut/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Fargonaut/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darksworm","download_url":"https://codeload.github.com/darksworm/argonaut/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Fargonaut/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28630938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argo-cd","argocd","cd","cli","continuous-delivery","devops","gitops","helm","infrastructure-as-code","k8s","k9s-like","terminal","tui"],"created_at":"2025-08-17T21:02:22.428Z","updated_at":"2026-02-14T11:10:54.313Z","avatar_url":"https://github.com/darksworm.png","language":"Go","readme":"# 🐙 Argonaut — Argo CD TUI\n\n[![Github Downloads](https://img.shields.io/github/downloads/darksworm/argonaut/total?style=flat-square\u0026label=github+downloads)](https://github.com/darksworm/argonaut/releases/latest)\n[![License](https://img.shields.io/github/license/darksworm/argonaut?style=flat-square)](https://github.com/darksworm/argonaut/blob/main/LICENSE)\n[![CodeRabbit](https://img.shields.io/coderabbit/prs/github/darksworm/argonaut?style=flat-square)](https://www.coderabbit.ai)\n\nArgonaut 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.\n\n\u003e ❤️ 🐶\n\u003e \u0026nbsp;Inspired by the great UX of [k9s](https://k9scli.io) — but for Argo CD.\n\n---\n\n## 📦 Prerequisites\n\n- [**Argo CD CLI**](https://argo-cd.readthedocs.io/en/stable/cli_installation/) installed\n- [**Delta**](https://dandavison.github.io/delta/installation.html) installed for enhanced diffs (optional, falls back to `git`)\n\n---\n\n## 🚀 Installation methods\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eInstall Script (Linux/macOS)\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\ncurl -sSL https://raw.githubusercontent.com/darksworm/argonaut/main/install.sh | sh\n```\n\nThe install script automatically detects your system (including musl vs glibc on Linux) and downloads the appropriate binary from the latest release.\n\nYou can also install a specific version:\n```bash\ncurl -sSL https://raw.githubusercontent.com/darksworm/argonaut/main/install.sh | sh -s -- v1.13.0\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eHomebrew (Linux/MacOS)\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\nbrew tap darksworm/homebrew-tap\nbrew install darksworm/tap/argonaut\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eAUR (Arch User Repository)\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\nyay -S argonaut-bin\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003cstrong\u003eNix\u003c/strong\u003e\u003c/summary\u003e\nWith Nix and Flakes enabled, you can run or install Argonaut directly from the repository.\n\n### Run Directly\n\nTo run Argonaut without permanently installing it, use the `nix run` command:\n\n```bash\nnix run github:darksworm/argonaut\n```\n\n### Development Shell\n\nTo enter a development shell with Argonaut and its dependencies (like Go, Delta, and Argocd) available for development, use the `nix develop` command:\n\n```bash\nnix develop github:darksworm/argonaut\n```\n\n### Flakes\n\nIf you are using Flakes to manage your systems add this to your Flake:\n\n```nix\ninputs = {\n  argonaut = {\n    url = \"github:darksworm/argonaut\";\n    inputs.nixpkgs.follows = \"nixpkgs\";\n  };\n  # ...\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eDocker\u003c/strong\u003e\u003c/summary\u003e\n\nPull the image:\n```bash\ndocker pull ghcr.io/darksworm/argonaut:latest\n```\n\nRun with mounted Argo CD config (as your host user to preserve permissions):\n```bash\ndocker run -it --rm \\\n  -u $(id -u):$(id -g) \\\n  -v ~/.config/argocd:/home/appuser/.config/argocd:ro \\\n  ghcr.io/darksworm/argonaut:latest\n```\n\nThe container needs access to your Argo CD configuration for authentication. The `:ro` flag mounts it as read-only for security.\n\u003c/details\u003e\n\n[//]: # (\u003c/details\u003e)\n\n[//]: # (\u003cdetails\u003e)\n\n[//]: # (  \u003csummary\u003e\u003cstrong\u003eNUR \u0026#40;Nix User Repository\u0026#41;\u003c/strong\u003e\u003c/summary\u003e)\n\n[//]: # ()\n[//]: # (```bash)\n\n[//]: # (nix-env -iA nur.repos.darksworm.argonaut)\n\n[//]: # (```)\n\n[//]: # (\u003c/details\u003e)\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eDownload a binary\u003c/strong\u003e\u003c/summary\u003e\n\nYou can download binaries and packages in from the [**latest release**](https://github.com/darksworm/argonaut/releases/latest).\n\n\u003c/details\u003e\n\n## ⚡ Quickstart\n```bash\n# Log in to your Argo CD server\nargocd login\n\n# Start Argonaut\nargonaut\n```\n\n---\n\n## ✨ Highlights\n\n- **Instant app browsing** with live updates (NDJSON streams)\n- **Scoped navigation**: clusters → namespaces → projects → apps\n- **Command palette** (`:`) for actions: `sync`, `diff`, `rollback`, `resources`, etc.\n- **Live resources view** per app with health \u0026 sync status\n- **External diff integration**: prefers `delta`, falls back to `git --no-index diff | less`\n- **Guided rollback** with revision metadata and progress streaming\n- **Keyboard-only workflow** with Vim-like navigation\n\n---\n\n## 📸 Screenshots\n\n### **Live Apps**  \n\u003cimg src=\"assets/argonaut_apps.png\" alt=\"Apps list\"/\u003e\n\n### **Sync**\n\u003cimg src=\"assets/argonaut_sync.png\" alt=\"Sync apps\"/\u003e\n\n### **Live Resources**\n\u003cimg src=\"assets/argonaut_resources.png\" alt=\"Resources view\"/\u003e\n\n### **Diff**  \n\u003cimg src=\"assets/argonaut_diff.png\" alt=\"External diff\"/\u003e\n\n### **Rollback**  \n\u003cimg src=\"assets/argonaut_rollback.png\" alt=\"Rollback flow\"/\u003e\n\n### **Delete apps**  \n\u003cimg src=\"assets/argonaut_delete_apps.png\" alt=\"Delete apps\"/\u003e\n\n### **Enjoy colorful themes**  \n\u003cimg src=\"assets/argonaut_themes.gif\" alt=\"Many themes to choose from\"/\u003e\n\n## Advanced Features\n\n### Client certificate authentication\nArgonaut supports client certificate authentication. You just need to pass a couple arguments to the argonaut command:\n\n```bash\nargonaut --client-cert=/path/to/cert --client-cert-key=/path/to/key\n```\n\n### Self-signed certificates\nIf your Argo CD server uses a self-signed certificate, you can provide a custom CA certificate to trust:\n\n```bash\nargonaut --ca-cert=/path/to/ca.crt\n```\n\n### Port-forward mode\n\nIf your Argo CD server isn't directly accessible (e.g., running in a private cluster), Argonaut can connect via kubectl port-forward:\n\n```bash\n# Configure ArgoCD CLI for port-forward mode\nargocd login --port-forward --port-forward-namespace argocd\n\n# Start Argonaut (automatically detects port-forward mode)\nargonaut\n```\n\n**Requirements:**\n- `kubectl` configured with access to the cluster\n- ArgoCD server pod running in the target namespace\n\n**Custom namespace:** If ArgoCD is installed in a different namespace, add to your config:\n```toml\n# ~/.config/argonaut/config.toml\n[port_forward]\nnamespace = \"my-argocd-namespace\"\n```\n\n---\n\n## ⚙️ Configuration\n\nArgonaut stores its configuration in a TOML file at `~/.config/argonaut/config.toml` (or `$XDG_CONFIG_HOME/argonaut/config.toml`).\n\nYou can override the config path with the `ARGONAUT_CONFIG` environment variable.\n\n### Example Configuration\n\n```toml\n[appearance]\ntheme = \"tokyo-night\"\n\n[appearance.overrides]\n# Override individual theme colors (hex format)\n# accent = \"#ff79c6\"\n# success = \"#50fa7b\"\n\n[sort]\nfield = \"name\"      # name, sync, health\ndirection = \"asc\"   # asc, desc\n\n[k9s]\ncommand = \"k9s\"           # Path to k9s executable\ncontext = \"\"              # Override Kubernetes context for k9s\n\n[diff]\nviewer = \"\"               # Interactive diff viewer (e.g., \"code --diff {left} {right}\", \"meld {left} {right}\")\nformatter = \"\"            # Diff formatter command (e.g., \"delta --side-by-side\")\n\n[http_timeouts]\nrequest_timeout = \"10s\"   # Timeout for HTTP requests (increase for large deployments)\n\n# Start in apps view instead of clusters (supports :command syntax)\ndefault_view = \"apps\"\n```\n\n### Configuration Options\n\n#### `[appearance]`\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `theme` | Color theme name (see available themes below) | `tokyo-night` |\n\n**Available themes:**\n- **Dark themes**: `catppuccin-mocha`, `dracula`, `gruvbox-dark`, `monokai`, `nord`, `one-dark`, `oxocarbon`, `solarized-dark`, `tokyo-night`, `tokyo-storm`\n- **Light themes**: `catppuccin-latte`, `gruvbox-light`, `one-light`, `onehalf-light`, `solarized-light`\n- **Accessibility**: `colorblind-safe`, `grayscale-lowchroma`, `high-contrast`\n- **Special**: `inherit-terminal` (uses your terminal's ANSI color palette)\n\nYou can also change the theme at runtime using the `:theme \u003cname\u003e` command.\n\n#### `[appearance.overrides]`\n\nOverride individual theme colors with hex values. Available color keys:\n- `accent`, `warning`, `dim`, `success`, `danger`, `progress`, `unknown`, `info`, `text`, `gray`\n- `selected_bg`, `cursor_selected_bg`, `cursor_bg`, `border`, `muted_bg`, `shade_bg`, `dark_bg`\n\n#### `[sort]`\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `field` | Sort field (`name`, `sync`, `health`) | `name` |\n| `direction` | Sort direction (`asc`, `desc`) | `asc` |\n\nYou can also change sorting at runtime using the `:sort \u003cfield\u003e \u003cdirection\u003e` command.\n\n#### `[k9s]`\n\nIntegration settings for [k9s](https://k9scli.io), the Kubernetes TUI.\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `command` | Path to k9s executable | `k9s` |\n| `context` | Override Kubernetes context when launching k9s | (none) |\n\nPress `K` on a resource in the tree view to open it in k9s.\n\n#### `[diff]`\n\nSettings for diff viewing and formatting.\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `viewer` | Interactive diff viewer command. Use `{left}` and `{right}` as placeholders for file paths. | (none) |\n| `formatter` | Non-interactive diff formatter piped through before display | (none, falls back to `delta` if installed) |\n\n**Examples:**\n\n```toml\n[diff]\n# Use VS Code as diff viewer\nviewer = \"code --diff {left} {right} --wait\"\n\n# Use meld as diff viewer\nviewer = \"meld {left} {right}\"\n\n# Use delta with custom options\nformatter = \"delta --side-by-side --line-numbers\"\n```\n\nIf no `viewer` is set, diffs are shown in an internal pager. If no `formatter` is set but [delta](https://dandavison.github.io/delta/) is installed, it will be used automatically.\n\n#### `[http_timeouts]`\n\nSettings for HTTP request timeouts. Useful for large deployments with thousands of applications where API responses take longer.\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `request_timeout` | Timeout for all HTTP requests to ArgoCD API. Use Go duration format (e.g., \"30s\", \"1m\", \"90s\") | `\"10s\"` |\n\n**Examples:**\n\n```toml\n[http_timeouts]\n# For large deployments with thousands of applications\nrequest_timeout = \"60s\"\n\n# For very large deployments\nrequest_timeout = \"2m\"\n```\n\n\u003e **Note:** If you're experiencing timeout errors when listing applications or resources, increase this value. The timeout applies to all API operations including listing applications, getting resources, and sync operations.\n\n#### `default_view`\n\nConfigure which view Argonaut starts in. Uses the same syntax as `:commands`, with an optional scope argument to drill down into a specific cluster, namespace, project, or application set.\n\n| Value | Startup view |\n|-------|-------------|\n| `\"apps\"` | Applications list |\n| `\"clusters\"` | Clusters list (default) |\n| `\"ns\"` | Namespaces list |\n| `\"proj\"` | Projects list |\n| `\"appsets\"` | ApplicationSets list |\n| `\"cluster production\"` | Namespaces scoped to cluster \"production\" |\n| `\"ns my-namespace\"` | Projects scoped to namespace \"my-namespace\" |\n| `\"project myproj\"` | Apps scoped to project \"myproj\" |\n| `\"appset myset\"` | Apps scoped to ApplicationSet \"myset\" |\n\nAll view aliases from `:commands` are supported (e.g., `app`/`apps`/`applications`, `cls`/`cluster`/`clusters`, `ns`/`namespace`/`namespaces`, etc.).\n\n**Examples:**\n\n```toml\n# Start in apps view\ndefault_view = \"apps\"\n\n# Start scoped to a cluster (shows its namespaces)\ndefault_view = \"cluster production\"\n\n# Start scoped to a namespace (shows its projects)\ndefault_view = \"ns my-namespace\"\n```\n\n#### `[port_forward]`\n\nSettings for port-forward mode (when ArgoCD CLI is configured with `server: port-forward`).\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `namespace` | Kubernetes namespace where ArgoCD is installed | `argocd` |\n\n---\n\n## 🤝 Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute to this project.\n","funding_links":["https://github.com/sponsors/darksworm","https://ko-fi.com/darksworm"],"categories":["Ecosystem Projects","Table of Contents"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarksworm%2Fargonaut","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarksworm%2Fargonaut","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarksworm%2Fargonaut/lists"}