cdd-cli
v4.0.0
Published
CLI Docker Dashboard
Readme
CDD — CLI Docker Dashboard
A terminal dashboard for Docker containers — monitor, manage, and create, all without leaving your keyboard.
🎉 What's new in v3.2
v3.2 ships the interactive creation wizard — and it's a game changer.
Forget docker run flags, forgotten env vars, and broken :latest tags. Press C and CDD guides you through creating a container in seconds:
- 20 curated image profiles available offline — postgres, redis, nginx, node, mysql, mongo, and more
- Smart default tags that actually work:
postgres:17-alpine,redis:7-alpine,nginx:1.27-alpine— no more silent:latestfailures - Live Docker Hub search with a single
Tabkeystroke — with a[searching Docker Hub...]indicator so you always know what's happening - Contextual env var hints — creating a Postgres container? CDD suggests
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DBautomatically - Context-sensitive HUD — only the keys that make sense right now are shown, nothing more
This is what developer experience should feel like.
Features
- 🐳 Live view of all Docker containers with CPU/memory stats
- 🔄 Auto-refresh every few seconds — always up to date
- ⌨️ Keyboard-driven actions: start, stop, restart, log streaming, removal
- 🎨 Color-coded container states and visual feedback
- ✨ Interactive creation wizard — step-by-step container setup with curated profiles and live Hub search
- 🪵 Real-time log streaming for any selected container
- 🐛 Toggleable live debug panel (
Dkey)
Install globally
npm install -g cdd-cli
cddQuick start (local)
git clone https://github.com/caertos/cdd.git
cd cdd
npm install
npm run build
node dist/index.jsTo use as a global command during development:
npm link
cddUsage
Use ↑ / ↓ to navigate containers. Available keyboard shortcuts:
| Key | Action |
|-----|--------|
| ↑ / ↓ | Navigate container list |
| I | Start selected container |
| P | Stop selected container |
| R | Restart selected container |
| C | Open creation wizard |
| L | Stream logs for selected container |
| E | Erase (remove) selected container — confirmation required |
| D | Toggle live debug panel |
| Q | Quit |
The Creation Wizard
Press C from the dashboard to launch the wizard. A context-sensitive HUD at the bottom always shows which keys are active at each step — no guessing required.
Step 0 — Image
Type to filter through 20 curated offline profiles (postgres, redis, nginx, node, mysql, mongo, python, golang, and more). Results appear instantly.
Press Tab at any time to search Docker Hub live. A [searching Docker Hub...] indicator confirms the search is running. Use ↑ / ↓ to navigate suggestions, Enter to select.
Smart default tags: selecting an image profile automatically applies a known-good tag — postgres:17-alpine, redis:7-alpine, nginx:1.27-alpine, etc. No more containers that fail silently because of a stale :latest.
Step 1 — Container name
Free-text input. Give your container a memorable name.
Step 2 — Port mapping
Enter a port mapping in HOST:CONTAINER format, e.g. 8080:80, 5432:5432. Leave blank to skip.
Step 3 — Environment variables
Enter KEY=VALUE pairs one at a time. Contextual hints show recommended variables for the selected image:
| Image | Suggested vars |
|-------|---------------|
| postgres | POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB |
| mysql | MYSQL_ROOT_PASSWORD, MYSQL_DATABASE |
| redis | (no required vars) |
| mongo | MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD |
| node / nginx / others | Common runtime vars as applicable |
Press Enter on an empty line to finish and create the container.
Requirements
- Node.js >= 18
- Docker installed and running (CDD connects to the local Docker socket)
Development
npm install
npm run build # compile src/ → dist/
node dist/index.js # run from compiled outputRe-run npm run build after any source changes. Use npm link to test the global cdd command locally.
Tests
npm testTests live in test/ and cover helpers, services, and hooks.
Logging
By default CDD shows info, warn, and error messages. For deeper diagnostics:
CDD_LOG_LEVEL=debug cddPress D inside the dashboard to toggle the live debug panel in real time. Press D again to hide it.
To capture logs to a file:
CDD_LOG_LEVEL=debug cdd > cdd-debug.log 2>&1Troubleshooting
- No containers visible? Make sure Docker is running and your user has access to the Docker socket.
- Permission errors on Linux/macOS? Try
sudo cddor add your user to thedockergroup. - Windows? Run your terminal as Administrator.
dist/missing? Runnpm run build— it's in.gitignoreand not committed.- Wizard search not working? Check your internet connection. Offline profiles always work without network access.
Contributing
See CONTRIBUTING.md.
License
MIT/ISC — see LICENSE.
