https://github.com/unknwon/kargo-tui
The missing Kargo console for sane operators at scale
https://github.com/unknwon/kargo-tui
bubbletea go kargo tui
Last synced: about 1 month ago
JSON representation
The missing Kargo console for sane operators at scale
- Host: GitHub
- URL: https://github.com/unknwon/kargo-tui
- Owner: unknwon
- License: mit
- Created: 2026-05-03T00:41:41.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-06-15T20:15:23.000Z (about 2 months ago)
- Last Synced: 2026-06-15T22:07:53.825Z (about 2 months ago)
- Topics: bubbletea, go, kargo, tui
- Language: Go
- Homepage:
- Size: 1.05 MB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README

Kargo is nice, Kargo is cute, Kargo's UI works like crap, Kargo's CLI won't even start. Don't ask me to reproduce, don't ask me to report. I got no energy talking to void.
Here it is, the missing Kargo console for operating with hundreds of stages. Entirely vibe-coded, use at your own risk. Themed by [Pierre themes](https://diffs.com/theme).
## Demo

Demo video
https://github.com/user-attachments/assets/2be76079-b716-45ca-a4ab-a6c02d897359
## Installation
```zsh
go install unknwon.dev/kargo-tui/cmd/kargo-tui@latest
```
Or download [archives built from the latest `main`](https://github.com/unknwon/kargo-tui/releases/tag/latest-commit-build).
## Authentication
`kargo-tui` authenticates against a Kargo API server using the same OIDC SSO (PKCE auth-code) flow as `kargo login --sso`. Credentials are saved as named "contexts" in the kargo-tui config file.
### First-run prompt
If no context is configured, launching `kargo-tui` prints `Kargo API URL:` and reads the URL from stdin, then opens your browser to complete SSO. The resulting context is saved and set as current, so subsequent launches are non-interactive.
You can also add a new context from inside the TUI via the context switcher, which runs the same SSO flow.
### Logging in manually
To log in (or add another context) without going through the first-run prompt:
```zsh
kargo-tui auth login
```
Useful flags:
- `--name ` — local name for this context (default: derived from the URL host)
- `-p, --project ` — default project for this context
- `--callback-port ` — port for the OIDC callback listener (`0` picks a free port)
- `--insecure-skip-tls-verify` — skip TLS verification against the Kargo server
- `--no-make-current` — don't switch the active context to the one being created
Example:
```zsh
kargo-tui auth login https://kargo.example.com --name prod -p my-project
```
### Managing contexts
```zsh
kargo-tui contexts list # show all configured contexts (* marks current)
kargo-tui contexts use # switch active context
kargo-tui auth logout # remove a stored context
kargo-tui --context # one-off override for a single launch
```
## Local development
This project uses [moon](https://moonrepo.dev/) as its task runner. Install it with Homebrew:
```zsh
brew install moon
```
Common tasks:
```zsh
moon run :install # Build and install the kargo-tui binary to $GOBIN.
moon run :lint # Tidy Go modules and run golangci-lint.
moon run :test # Run the test suite.
moon run :build # Compile all packages.
moon run :mock-server # Run the local mock Kargo API server (see Demo above).
```
After `moon run :install`, launch the TUI directly with `kargo-tui`.
## License
This project is under the MIT License. See the [LICENSE](LICENSE) file for the full license text.