Saved command scripts for Docker Desktop.
A Docker Desktop Extension that lets you create, organize, and execute Docker command scripts with one click. Think of it as a personal runbook library built right into Docker Desktop.
- Create, edit, and delete Docker command scripts
- One-click execution with streaming output, auto-scroll, and elapsed timer
- Organize with tags, nested tag grouping, and color-coded categories
- Search, sort, and filter runbooks
- Grid and list layout modes with compact density option
- Collapsible cards with expand/collapse all
- Import/export runbooks as JSON
- Parameterized commands with
{{name=default|option1,option2}}variable syntax - Docker resource autocomplete for container, image, volume, and network variables
- Dry-run preview showing resolved commands before execution
- Command validation with syntax highlighting
- Destructive command confirmation dialog (prune, rm, stop, kill, down)
- Navigation links to View Containers/Images/Volumes after execution
- Keyboard shortcuts:
Ctrl+Nnew runbook,/focus search,Ctrl+Cabort execution,Ctrl+Entersave dialog - Favorites: pin runbooks with star icon, pinned items sort to top
- Execution history: last-run timestamp display and "Recently Executed" sort
- Copy-to-clipboard button on runbook cards
- Tag autocomplete with chip input
- Persistent group collapse state across reloads
- Settings dialog with toggle to show/hide example runbooks and reset-to-defaults
- Getting Started guide with features overview, keyboard shortcuts, and variable syntax reference
- Built-in example runbooks showcasing variables, autocomplete, multi-command, and destructive confirmation
docker extension install herbhall/runbooksOr build from source:
make build-extension
make install-extension# Install UI dependencies
cd ui && npm install
# Start hot-reload dev server
npm run dev
# In another terminal — build and attach
cd ..
make build-extension
make install-extension
make dev-attachcd ui
npx vitest run # Run 142 unit tests
npx tsc --noEmit # Type check
npx eslint . # Lintmake reinstall-extension # Remove old, rebuild, and install freshFrontend-only Docker Desktop Extension built with React 18, TypeScript, Material UI 5, and Vite 7. Uses the Docker Extension SDK's docker.cli.exec() to run commands directly — no backend service required. All data persists in localStorage with JSON import/export for portability.
See docs/decisions/ for Architecture Decision Records documenting all technical choices.
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.
Please read our Code of Conduct before participating.
See CHANGELOG.md for a detailed history of changes.
Herb Hall — GitHub · herbhall.net



