Lightweight Docker Compose and Git management CLI
Clean, restart, and manage repositories with a single command
- π³ Docker Management - Clean containers/volumes, rebuild, and restart services
- π Git Batch Operations - Reset multiple repositories to any branch on origin
- π§© Custom Command Packs - Save local automation, share repo-pack commands, and export/import packs for onboarding
- βοΈ Execution-First CLI - Run commands directly; use
dcli commandsanddcli commands uito manage packs and sharing - π Homebrew Distribution - Install with a single command:
brew install dcli - π Auto-Updates - Checks GitHub Releases on launch and self-updates when a newer version is available
- π₯οΈ Cross-Platform - Works on macOS (Intel & Apple Silicon), Linux, and Windows
- βοΈ YAML Configuration - Simple config file at
~/.dcli/config.yaml - π Clear Error Messages - Comprehensive feedback on what went wrong and why
- π§ͺ Well-Tested - 58 tests with 82.4% code coverage across all platforms
brew tap oleg-koval/dcli
brew install dcli
dcli --versiongit clone https://github.com/oleg-koval/dcli.git
cd dcli
make build
./bin/dcli --versionDownload binaries for your platform from GitHub Releases
Set DCLI_DISABLE_AUTO_UPDATE=1 if you want to skip the startup update check.
Set DCLI_AUTO_UPDATE_TIMEOUT=250ms to adjust the best-effort update check timeout (default: 1s).
Set DCLI_AUTO_UPDATE_CHANNEL=prerelease (or beta / alpha) to follow prerelease builds from GitHub Releases instead of stable only.
# Clean all services (remove containers, volumes, rebuild, restart)
dcli docker clean
# Clean specific services
dcli docker clean api web
# Restart services while preserving data
dcli docker restart
# Restart specific services
dcli docker restart api# Reset all configured repos to develop
dcli git reset develop
# Reset all configured repos to develop
dcli git reset develop# Add a personal command
dcli commands add john deploy -- docker compose up -d
# List loaded commands
dcli commands
# Open the interactive browser for management only
dcli commands ui
# Export a pack for onboarding
dcli commands export --file team-pack.json
# Import a shared pack
dcli commands import --file team-pack.jsonCreate ~/.dcli/config.yaml:
repositories:
- path: /Users/username/projects/backend
name: backend
- path: /Users/username/projects/frontend
name: frontend
- path: /Users/username/projects/infra
name: infraDCLI_PROJECT_DIR- Override default project directory (defaults to current directory)DCLI_AUTO_UPDATE_TIMEOUT- Override the startup update check timeout using a Go duration string, such as250msor1s
Example:
DCLI_PROJECT_DIR=/path/to/monorepo dcli docker clean api web-h, --help- Show help-v, --version- Show version
dcli docker clean [service ...] # Clean and rebuild (removes containers, volumes, rebuilds)
dcli docker restart [service ...] # Restart services (preserves data)
dcli git reset [develop|acceptance] # Reset all configured repos to specified branch
dcli commands # List loaded commands
dcli commands show [path...] # Show details for one command
dcli commands add [path...] -- <cmd> # Add a personal command
dcli commands edit [path...] # Edit command metadata or replace the step command
dcli commands enable [path...] # Enable a command
dcli commands disable [path...] # Disable a command
dcli commands delete [path...] # Delete a command
dcli commands export --file <path> # Export a command pack
dcli commands import --file <path> # Import a command pack
dcli commands ui [--export-file <path>] # Open the command management TUI
- Docker 20.10+ with Docker Compose
- Git 2.20+
- macOS 10.14+, Ubuntu 18.04+, or Windows 10+
- π Installation Guide - Detailed installation instructions for all platforms
- βοΈ Configuration Guide - Complete configuration reference with examples
- π Contributing - How to contribute to dcli
- π Security Policy - Reporting security vulnerabilities
Reset your working environment to latest develop:
dcli git reset develop # Fetch and reset all repos
dcli docker clean # Clean all containers and volumes
# Fresh environment ready for new feature branchAfter code changes or configuration updates:
dcli docker restart web api # Restart specific services
# Preserves database data and volumesConfigure all microservices and reset with one command:
# In ~/.dcli/config.yaml: add all repo paths
dcli git reset acceptance # All services to acceptance branch
dcli docker clean # Clean all microservicesdcli is built with:
- Go 1.25.0+ - Compiled language for reliability
- Cobra - Battle-tested CLI framework
- YAML - Human-readable configuration
- Docker Compose API - Direct execution without shells
Zero external dependencies for core functionality.
- β Alpha Release (v0.1.0)
- β Tests passing (15+ tests)
- β Cross-platform builds (macOS, Linux, Windows)
- β Homebrew distribution ready
- π Production-ready for Docker Compose and Git workflows
Contributions welcome! See CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details
Website: dcli.olegkoval.com
dcli makes container, repository, and custom command management effortless
Report Issues β’
Discussions β’
Releases β’
Buy Me a Coffee