A lightweight Terminal User Interface (TUI) for managing Docker containers, images, and volumes via WSL2
Project description
๐ณ Nano Whale - Lightweight Docker TUI
A blazingly fast, lightweight Terminal User Interface (TUI) for managing Docker containers, images, and volumes via WSL2. Built with Textual, Nano Whale provides an elegant, keyboard-driven interface for Docker management without the overhead of Docker Desktop.
โจ Features
- ๐ Lightning Fast - Minimal resource footprint, native WSL2 integration
- โจ๏ธ Keyboard-Driven - Navigate and manage Docker resources without touching your mouse
- ๐ฆ Multi-Select Operations - Perform batch operations on multiple containers/images/volumes
- ๐ Real-Time Monitoring - Live container status updates and log streaming
- ๐จ Beautiful TUI - Clean, intuitive interface built with Textual
- ๐ Quick Switching - Toggle between containers, images, and volumes instantly
- ๐งน Smart Cleanup - Built-in prune commands for system maintenance
- ๐ชถ Ultra-Lightweight - Zero dependencies except Textual and WSL2
๐ฏ Why Nano Whale?
Tired of Docker Desktop's resource consumption? Nano Whale gives you:
- No GUI Overhead - Terminal-based means minimal memory usage
- WSL2 Native - Direct integration with Docker Engine in WSL2
- Keyboard Efficiency - Faster than clicking through GUI menus
- SSH-Friendly - Works perfectly over SSH connections
- Open Source - Free and community-driven
๐ Prerequisites
- Windows 10/11 with WSL2 installed
- Docker Engine running in WSL2 (not Docker Desktop)
- Python 3.8+
Quick WSL2 & Docker Setup
If you don't have WSL2 and Docker Engine set up:
# Install WSL2
wsl --install
# After restart, install Docker in WSL
wsl
sudo apt update
sudo apt install docker.io -y
sudo service docker start
๐ฆ Installation
Via pip (Recommended)
pip install nano-whale
Via pipx (Isolated)
pipx install nano-whale
From Source
git clone https://github.com/yourusername/nano-whale.git
cd nano-whale/docker_clui
pip install -e .
๐ Usage
Simply run the command:
nano-whale
โจ๏ธ Keyboard Shortcuts
Navigation & Modes
| Key | Action |
|---|---|
C |
Switch to Containers view |
I |
Switch to Images view |
V |
Switch to Volumes view |
A |
Refresh current view |
โ/โ |
Navigate through list |
Container Operations
| Key | Action |
|---|---|
S |
Start selected container(s) |
X |
Stop selected container(s) |
R |
Restart selected container(s) |
L |
View Logs for container |
D |
Delete selected item(s) |
Multi-Select
| Key | Action |
|---|---|
M |
Mark/Unmark current item for batch operations |
M (multiple) |
Select multiple items, then perform action |
Cleanup & Maintenance
| Key | Action |
|---|---|
P |
Open Prune menu (containers/images/volumes) |
P (twice) |
Confirm and execute full system prune |
General
| Key | Action |
|---|---|
Q |
Quit application |
๐ Usage Examples
Starting Multiple Containers
- Press
Cto enter Containers view - Press
Mon first container to mark it - Press
โto move to next container - Press
Mto mark second container - Press
Sto start all marked containers
Viewing Container Logs
- Navigate to desired container with
โ/โ - Press
Lto stream logs - Logs appear in the bottom panel
- Navigate away to stop streaming
Cleaning Up Unused Images
- Press
Ito switch to Images view - Press
Pto open prune menu - Select "Prune Unused Images"
- Confirm deletion
Full System Cleanup
- Press
Ponce to prepare prune - Press
Pagain within 3 seconds to confirm - All unused containers, images, and volumes will be removed
๐จ Interface Overview
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ณ Nano Whale - Docker TUI โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ CONTAINER ID IMAGE STATUS PORTS โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ abc123def456 nginx:latest Up 2 hours 80->80 โ
โ 789ghi012jkl postgres:15 Up 1 day 5432->5432 โ
โ mno345pqr678 redis:alpine Exited - โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Status: Container abc123def456 started successfully โ
โ Multi-select: 2 items marked โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Q: Quit | A: Refresh | C: Containers | I: Images | V: Volumes
๐๏ธ Architecture
Nano Whale executes Docker commands through WSL2:
nano-whale (Python/Textual)
โ
wsl docker <command>
โ
Docker Engine (WSL2)
โ
Your Containers/Images/Volumes
This architecture means:
- No Docker Desktop required
- Direct engine access
- Minimal overhead
- Maximum performance
๐ง Configuration
Nano Whale uses wsl docker commands by default. If your setup is different, you can modify the command prefix in the source.
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
# Clone the repository
git clone https://github.com/yourusername/nano-whale.git
cd nano-whale/docker_clui
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in development mode
pip install -e .
# Run from source
python -m docker_clui.app
๐ Troubleshooting
"wsl command not found"
Install WSL2:
wsl --install
"Cannot connect to Docker daemon"
Start Docker in WSL:
wsl sudo service docker start
"Permission denied"
Add your user to the docker group:
wsl sudo usermod -aG docker $USER
Then restart your WSL session.
Commands not working from Windows terminal
Prefix commands with wsl:
wsl docker ps
wsl docker images
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with Textual by Textualize.io
- Inspired by the need for a lightweight Docker Desktop alternative
- Thanks to the Docker and WSL2 teams for their excellent tools
๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: svriddhachalam@gmail.com
๐บ๏ธ Roadmap
- Docker Compose support
- Container stats dashboard (CPU, Memory, Network)
- Custom color themes
- Export/Import container configurations
- Remote Docker host support
- Container shell access (exec)
- Network management
- Volume backup/restore
โญ Star History
If you find Nano Whale useful, please consider giving it a star on GitHub!
Made with โค๏ธ by Vriddhachalam S
Swim fast, stay light! ๐ณ
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nano_whale-0.1.1.tar.gz.
File metadata
- Download URL: nano_whale-0.1.1.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a395fd93c1c7a76e6fb50d33fdf36102e880eb46d22b1d5198a40ab4047e7fd
|
|
| MD5 |
f9609d6854e4fa5b433c5b2d49138512
|
|
| BLAKE2b-256 |
ecbcbe822b8663b9a4b1ef687e1697ab8cbf6c259e96606cb0e67fe6ebef8282
|
File details
Details for the file nano_whale-0.1.1-py3-none-any.whl.
File metadata
- Download URL: nano_whale-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7efb24eaa4e67982d8149b3d6f12df411de2d624b75cd84196c2ca12871893d9
|
|
| MD5 |
e57ea19620a77340a35aa3234ceb41e9
|
|
| BLAKE2b-256 |
8258ab6804a9e4e60e7640916e29f6d456926fd6aaf98581cadabfec6d865d06
|