OpenClaw CLI Toolkit
One-click installer for 50+ curated CLI tools that supercharge your OpenClaw agent.
Linux / WSL2 / macOS β’ bash / zsh / fish
OpenClaw (an AI coding agent) works best when your system has modern, fast CLI tools installed. This toolkit researches, evaluates, and installs the best free & open-source CLI replacements β so your agent can search faster, display better, and handle data smarter.
Every tool is:
- Free & open-source β zero hidden costs
- Battle-tested β compared against alternatives with real benchmarks
- Agent-friendly β auto-generates
openclaw-tools.yamlfor AI consumption - One-command management β install, configure, and uninstall
- 26 categories of tools β search, viewing, data, system, network, git, terminal, dev, security, archive, docs, download, ai, latex, formats, container, database, media, diagram, api-testing, text-processing, kubernetes, golang, observability, git-helpers, testing
- One-click install β automatic system detection (WSL2 / Linux / macOS)
- Config-driven β
config.yamlcontrols exactly which tools get installed - Shell-aware β auto-detects bash / zsh / fish and configures accordingly
- Resume support β safely re-run to continue interrupted installs
- Idempotent β run multiple times without side effects
- Go install β
go installsupported as a 5th installation method - Security-hardened β no command injection,
--no-install-recommendsfor apt
git clone https://github.com/atyou2happy/openclaw-cli-toolkit.git
cd openclaw-cli-toolkit
# Install everything (interactive)
./install.sh
# Preview what will be installed
./install.sh --dry-run
# Install specific categories only
./install.sh -c search -c data
# Force reinstall
./install.sh --force./install.sh # Install all enabled tools
./install.sh --dry-run # Preview only (no changes)
./install.sh -c search -c data # Specific categories
./install.sh --force # Force reinstall
./install.sh --skip-config # Skip configuration step
./install.sh --clean-state # Clear state and start fresh
./install.sh --help # Show all options./uninstall.sh # Remove all tools + config
./uninstall.sh --keep-config # Keep configuration files
./uninstall.sh --yes # Skip confirmation promptpython3 src/generator.py # Generate openclaw-tools.yaml
python3 src/generator.py --installed-only # Only installed tools
python3 src/generator.py --output /path/to/file # Custom output pathbash tests/test_install.sh # Structure & syntax tests
bash tests/test_tools.sh # Tool functionality testsopenclaw-cli-toolkit/
βββ install.sh # Entry point β thin orchestrator
βββ uninstall.sh # Uninstaller
βββ config.yaml # User configuration (enable/disable tools)
βββ VERSION # Single source of truth for version
βββ Makefile # Developer convenience targets
βββ pyproject.toml # Ruff + pytest config (dev-only)
βββ src/
β βββ paths.sh # Centralized path management
β βββ common.sh # Logging, colors, progress bar, helpers
β βββ state.sh # Pure-bash install state tracking
β βββ detector.sh # OS / arch / package manager detection
β βββ installer.sh # Method dispatcher + tool install logic
β βββ methods/ # Modular install methods
β β βββ apt.sh # apt-get install
β β βββ brew.sh # brew install
β β βββ cargo.sh # cargo install
β β βββ pip.sh # pip install --user
β β βββ go.sh # go install (with proxy fallback)
β β βββ github.sh # GitHub release binary download
β βββ configurator.sh # Shell aliases, tool configs, integrations
β βββ generator.py # Generate openclaw-tools.yaml for agents
β βββ parse_tools.py # Parse tool YAML + config filtering
βββ tools/ # Tool definitions (26 YAML files)
βββ tests/
β βββ test_install.sh # Structure & syntax tests
β βββ test_tools.sh # Tool functionality tests
β βββ test_structure.sh # Project integrity validation
β βββ python/ # pytest suite (229 tests)
β βββ conftest.py
β βββ test_generator.py
β βββ test_parse_tools.py
β βββ test_yaml_schema.py
βββ docs/
β βββ research.md # Tool evaluation research report
β βββ dev/ # Development specs
βββ .github/workflows/
β βββ ci.yml # CI: shellcheck + syntax + test + pytest + dry-run
βββ CHANGELOG.md
βββ LICENSE
βββ README.md # This file
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β install.sh β
β (thin orchestrator) β
βββββββββββ¬βββββββββββ¬ββββββββββββ¬βββββββββββββββββ€
βdetector βinstaller βconfigurat β generator β
β .sh β .sh β or.sh β .py β
βββββββββββΌβββββββββββΌββββββββββββΌβββββββββββββββββ€
β OS/Arch β apt β aliases β openclaw- β
β PM det β brew β rc files β tools.yaml β
β Shell β cargo β git pager β β
β WSL2 β pip β fzf/zoxideβ β
β β go β starship β β
βββββββββββ΄βββββββββββ΄ββββββββββββ΄βββββββββββββββββ€
β common.sh + state.sh β
β (logging, progress, state file) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Flow: install.sh β detect system β parse tools/*.yaml + filter by config.yaml β install each tool β configure shell β generate openclaw-tools.yaml
| Category | Tools | Replaces |
|---|---|---|
| π Search | ripgrep, fd | grep, find |
| ποΈ Viewer | bat, eza, tree | cat, ls |
| π Data | jq, yq, miller, dasel | manual parsing |
| π₯οΈ System | btop, dust, duf, procs, hyperfine | htop, du, df, ps |
| π Network | httpie, doggo | curl, dig |
| π Git | delta, lazygit, tig, gh | default git UI |
| ποΈ Terminal | fzf, zoxide, tmux, starship | manual navigation |
| π οΈ Dev | shellcheck, shfmt, hadolint | manual review |
| π Security | age, sops | gpg |
| π¦ Archive | zstd, p7zip | gzip |
| π Docs | pandoc, glow, poppler-utils | manual conversion |
| β¬οΈ Download | aria2 | wget |
| π€ AI | llm, sgpt, aider | β |
| π LaTeX | tectonic, chktex, latexmk | pdflatex + manual builds |
| π Formats | qpdf, weasyprint, visidata, xsv, gron, yamllint, taplo, htmlq, tidy, xmllint, xmlstarlet, lychee | manual format processing |
| π³ Container | docker, docker-compose | manual environment setup |
| ποΈ Database | sqlite3, usql | GUI database tools |
| π¨ Media | imagemagick, exiftool, ffmpeg | GUI media editors |
| π Diagram | d2, graphviz | manual diagram drawing |
| π§ͺ API Testing | wrk, hey, oha, hurl, grpcurl | ab, siege, manual API testing |
| βοΈ Text Processing | sd, gum, choose, grep-ast, tabulate | sed, cut, manual text transforms |
| βΈοΈ Kubernetes | kubectl, helm, k9s, stern | kubectl, helm |
| 𦬠Go Dev | golangci-lint, goimports, staticcheck | go vet |
| π Observability | stern, ctop, glances | top, htop |
| π Git Helpers | git-lfs, ghq, myrepos | git submodule |
| π§ͺ Testing | bats, coverage, junit2html | manual testing |
Installation priority: apt > brew > cargo > pip > go install
Edit config.yaml to customize which tools and categories are installed:
categories:
search:
enabled: true
tools:
ripgrep:
enabled: true
the_silver_searcher:
enabled: false # skip this tool- OS: Linux (Ubuntu 20.04+), WSL2, or macOS
- Shell: Bash 4.0+ / Zsh / Fish
- Package manager: at least one of apt, brew, cargo, pip, or go
- Python: 3.8+ (for YAML parsing and generation)
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-tool) - Add/edit tool definitions in
tools/ - Test with
./install.sh --dry-runandbash tests/test_install.sh - Ensure shellcheck passes:
shellcheck -s bash install.sh uninstall.sh src/*.sh tests/*.sh - Submit a pull request
MIT License β free to use, modify, and distribute.
See CHANGELOG.md for release history.