Releases: zrougamed/portainer-cli
Releases · zrougamed/portainer-cli
Release list
v0.1.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0 - 2026-02-27
Initial Release
First public release of portainer-tui — a full-featured Terminal User Interface for managing Portainer CE from the command line.
Added
Authentication
- JWT token authentication via username/password login
- Community Edition X-API-Key support
- Automatic session management with re-authentication on token expiry
- Graceful redirect to login screen on
401 Unauthorizedwithout restarting the app - Config stored at
~/.config/portainer-tui/config.yamlwith environment variable and CLI flag overrides
CLI Commands
portainer-tui— launch the interactive TUIportainer-tui login— authenticate and save token to configportainer-tui open— open Portainer web UI in the default browser (macOS/Linux/Windows)portainer-tui config— display current configurationportainer-tui version— show version info
Environments
- Browse and switch between Portainer endpoints/environments
- Display endpoint type (Docker, Kubernetes, Azure, Edge, etc.)
- Set active environment for all subsequent operations
Containers
- List all containers with status, name, image, and uptime
- Toggle between running-only and all containers (
a) - Start, stop, and restart containers (
S/s/R) - View scrollable container logs (
l) - Expand log tail in increments (
+) - Docker log header stripping for clean output
Stacks
- List all stacks with status and type (Swarm/Compose)
- Deploy new stacks with an inline Docker Compose editor (
n) - Start and stop existing stacks (
S/s) - Delete stacks with confirmation dialog (
d)
Images
- Browse Docker images with repository tags and sizes
- Human-readable size formatting (B / KB / MB / GB)
Volumes
- Browse Docker volumes with driver, scope, and mountpoint
- Truncation of long paths for clean display
Error Handling
- Scrollable error modal for long error messages
- Cross-platform clipboard support for copying error details
- Detailed API error messages surfaced in the TUI
Testing
- 178 unit tests across all modules
httptest-based mock server for full API client coverage- TUI model tests for all screens and key bindings
make test,make test-v,make test-cover,make test-racetargets
Developer Experience
- Docker Compose setup for local Portainer CE with automated admin bootstrap
- Automated API token generation script for development
- Makefile with
build,install,tidy,test,linttargets - Portainer-themed Lipgloss UI (cyan/teal palette)
Keyboard Reference
| Key | Action |
|---|---|
| ↑ / ↓ | Navigate list |
| enter | Select / confirm |
| esc | Go back |
| r | Refresh current view |
| q | Quit |
| a | Toggle show all containers |
| S | Start container / stack |
| s | Stop container / stack |
| R | Restart container |
| l | View container logs |
| n | New stack (deploy) |
| d | Delete stack |
| + | Load more log lines |
| ctrl+s | Submit / deploy stack |
| y / n | Confirm dialog |
Known Limitations
- Portainer's API rejects requests containing both
BearerandX-API-Keyheaders simultaneously; the client handles this by sending only one auth header per request type - No multi-select for bulk container operations yet