Skip to main content

A lightweight Terminal User Interface (TUI) for managing Docker containers, images, and volumes via WSL2

Project description

๐Ÿณ Nano Whale - Lightweight Docker TUI

Python Version License Textual

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.

Nano Whale TUI Screenshot

โœจ 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

  1. Press C to enter Containers view
  2. Press M on first container to mark it
  3. Press โ†“ to move to next container
  4. Press M to mark second container
  5. Press S to start all marked containers

Viewing Container Logs

  1. Navigate to desired container with โ†‘/โ†“
  2. Press L to stream logs
  3. Logs appear in the bottom panel
  4. Navigate away to stop streaming

Cleaning Up Unused Images

  1. Press I to switch to Images view
  2. Press P to open prune menu
  3. Select "Prune Unused Images"
  4. Confirm deletion

Full System Cleanup

  1. Press P once to prepare prune
  2. Press P again within 3 seconds to confirm
  3. 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

๐Ÿ—บ๏ธ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nano_whale-0.1.1.tar.gz (6.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nano_whale-0.1.1-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

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

Hashes for nano_whale-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2a395fd93c1c7a76e6fb50d33fdf36102e880eb46d22b1d5198a40ab4047e7fd
MD5 f9609d6854e4fa5b433c5b2d49138512
BLAKE2b-256 ecbcbe822b8663b9a4b1ef687e1697ab8cbf6c259e96606cb0e67fe6ebef8282

See more details on using hashes here.

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

Hashes for nano_whale-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7efb24eaa4e67982d8149b3d6f12df411de2d624b75cd84196c2ca12871893d9
MD5 e57ea19620a77340a35aa3234ceb41e9
BLAKE2b-256 8258ab6804a9e4e60e7640916e29f6d456926fd6aaf98581cadabfec6d865d06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page