a8s-tui
v1.1.25
Published
The official CLI for Autonomous 8s
Maintainers
Readme
a8s-tui
The official command-line interface and terminal dashboard for Autonomous 8s (A8S). It securely authenticates with Keycloak, connects to your backend, and lets you manage workspace projects and database deployments directly from your terminal.
Installation
You can install the A8S CLI using any of the following methods.
NPM
Run without installing:
npx a8s-tuiOr install globally:
npm install -g a8s-tuiRun it with:
a8s-tuiPNPM
Run without installing:
pnpm dlx a8s-tuiOr install globally:
pnpm add -g a8s-tuiRun it with:
a8s-tuiYarn
Run without installing:
yarn dlx a8s-tuiOr install globally:
yarn global add a8s-tuiRun it with:
a8s-tuiBun
Run without installing:
bunx a8s-tuiOr install globally:
bun add -g a8s-tuiRun it with:
a8s-tuiThe Node package installs a tiny launcher that detects your OS/CPU and runs the bundled native Go binary.
Homebrew
For macOS and Linux:
brew tap porkeat/a8s-tui https://github.com/PorKeat/a8s-tui
brew install porkeat/a8s-tui/a8s-tuiRun it with:
a8s-tuiGo Install
For Go developers, install from the current Go module:
go install github.com/PorKeat/a8s-tui@latestRun it with:
a8s-tuiIf you want the local binary name to be a8s-tui, build it explicitly:
go build -o a8s-tui .
./a8s-tuiRunning Locally
From this repository:
go run main.goOr build and run:
go build -o a8s-tui .
./a8s-tuiIf you installed through NPM, PNPM, Yarn, Bun, or Homebrew, use:
a8s-tuiFeatures
- Authentication: Seamless Keycloak integration with automatic token refreshing.
- Projects Dashboard: View live database deployments, monoliths, and microservice workspaces. Monolith details can run a browser route check and show pass/fail results.
- Project Details: Get connection profiles, hostnames, ports, and JDBC URLs instantly.
- Database Deployments: Create single-instance databases and database clusters (PostgreSQL, MySQL, MongoDB, Redis, Cassandra) with version and size selectors.
- Application Deployments: Deploy monolithic apps or scan mono-repo and multi-repo GitHub sources into a microservice workspace.
- Image Scanner: Scan deployed Harbor images, external registry references, or Git repository builds; follow scan progress and review Trivy findings and reports.
- Logs: Inspect workspace Kubernetes pods and load recent runtime log output directly in the terminal.
- Monitoring: View namespace health, resource usage, pod status, and per-project metrics from the backend monitoring API.
- Live Deployment Logs: Watch deployment logs stream directly to your terminal while new workloads are created.
- Customizable UI: Fully integrated themes (Dark, Light, Orange, Green, Ocean, Rose) and support for icon-less environments (set
A8S_NO_ICONS=true). - Light by default: The launcher, dashboard, forms, logs, dialogs, status colors, and monitoring charts all start with the complete light palette.
Keyboard Shortcuts
The UI is highly responsive and designed for power users.
Global Navigation:
Up/Downorj/k: Move cursorTab: Switch focus between Sidebar and Main ContentEnter: Select or openqorctrl+c: Quitesc: Go back
Shortcuts (When Ready):
p: Select Projects, thenEnteropens itd: Select Deployments, thenEnteropens iti: Select Image Scanner, thenEnteropens itg: Select Logs, thenEnteropens itm: Select Monitoring, thenEnteropens ituors: Select User Settings, thenEnteropens itr: Refresh data/: Filter projectso: Logout
User Settings:
Enter,Space, ort: Cycle through available themes
Project Details:
- Open a deployed monolith, select
Check routes, then pressEnterto run the backend browser route check Left/Right,Up/Down, orTab: Switch between project actions
Microservice Deployment:
- Select
Mono Repoto detect multiple services from one repository. - Select
Multi Repoto scan and merge services from several repositories. - Enter a GitHub remote, select
Scan repository, and review the detected services before deploying. - Select
Env servicewithLeft/Right, then pressEnteron.env fileto browse for and import a local environment file into that service. - Imported environment values stay in memory for the deployment session. The TUI displays only variable counts and marks secret-like names as secrets.
- Open
Relationshipsafter detection to choose a source service, target service, and relationship type. The TUI manages bothdependsOnand generated relationship environment variables before deployment. - Relationship values use the target service name, matching the web canvas flow; the platform generates the final in-cluster runtime URL.
- The TUI verifies every scanned Git remote again immediately before deployment.
- The TUI supports public GitHub repositories only and never reads or sends a GitHub token.
Image Scanner:
i, thenEnter: Open Image ScannerLeft/Right: Switch between Harbor, External, Git, and HistoryUp/Downorj/k: Move through images, scan history, or source fieldsEnter: Advance through source fields, start a scan, or open a history resultSpace: Toggle private registry/repository access while its field is selected- Paste external registry and Git repository values directly into the selected field
- Harbor scans select a deployed image; External scans pull an image reference; Git scans clone, build, and scan the resulting image
- Completed scans show severity counts, findings, and a Trivy JSON report preview
n: Return to Harbor and choose another source after viewing a resultx: Force a fresh rescan while viewing a source resultr: Refresh images and scan history
Observability:
g, thenEnter: Open Logsm, thenEnter: Open MonitoringUp/Downorj/k: Move between pods or project metricsEnter: Reload logs for the selected podr: Refresh the current observability view
Development
To build the binary locally:
go build .To run the test suite:
go test ./...To quickly commit and push your code:
./auto_push.sh "your commit message"Publishing a Release
Releases are fully automated via Jenkins, GoReleaser, and NPM. To publish a new version to the world:
- Ensure your NPM and GitHub tokens are set in your Jenkins Credentials Manager.
- Push a new Git tag:
git tag v1.0.0
git push origin v1.0.0Jenkins will automatically build binaries for all platforms, update Homebrew, and publish to NPM!
