Skip to content

Repository files navigation

The idea

This is your AI agent on a normal developer machine: ready to help, but still looking around for the tools it needs.

Cartoon-style workshop scene showing a confused craftsman in overalls pulling out his empty pockets while looking for missing tools.

AI Agents Toolbox helps fix that. It checks what’s already installed, points out what’s missing, and can install the essentials through the package manager you already use.

Why This Exists

AI coding agents are only as useful as the machine they run on. When basic developer tools are missing — fast search, JSON and YAML processors, GitHub workflow checks, formatters, linters, diff tools, PDF utilities, and everyday shell helpers — a coding session can turn into a setup loop: failed commands, manual installs, improvised workarounds, and lost momentum.

The problem is not always obvious. An agent may mention a missing command only in its logs, then continue with a slower, less precise, or more fragile workaround. Unless the user reads those logs carefully, the session can look like it is progressing while the agent is quietly working with fewer capabilities than expected.

AI Agents Toolbox gives agents and developers a conservative baseline. It checks which essential tools are already available, reports what is missing, and, when you opt in, installs the gaps through the package manager already present on the machine.

Use it before handing an agent a fresh laptop, container, or borrowed workstation. The goal is not to replace your dotfiles, force a custom stack, or install a package manager for you. It is to make the environment ready enough that the agent can start doing real development work immediately.

Tools Managed

The scripts manage these logical tools, grouped by the main workflow they support:

Search and navigation

  • ast-grep - AST-aware code search, linting, and rewrite tool.
  • fd - Fast filesystem search alternative to find.
  • fzf - Interactive fuzzy finder for shells and scripts.
  • ripgrep (rg) - Fast recursive text searcher with Git-aware defaults.
  • tree - Recursive directory tree viewer.

Structured data and files

  • file - File type detector based on content signatures.
  • jq - Command-line JSON processor for querying and transforming structured data.
  • sqlite3 - Command-line shell for inspecting and managing SQLite databases.
  • yq - Command-line YAML, JSON, XML, TOML, and properties processor.

Git and GitHub workflows

  • gh - GitHub CLI for repository, pull request, issue, and workflow operations.
  • git - Distributed version control CLI.

Diffing and code review

  • difftastic (difft) - Syntax-aware structural diff tool for reviewing code changes.
  • git-delta (delta) - Syntax-highlighting pager for Git and diff output.

Formatting, linting, and validation

  • actionlint - Static checker for GitHub Actions workflow files.
  • clang-format - Source formatter for C, C++, Objective-C, Java, JavaScript, and related languages.
  • pre-commit - Framework for managing and running repository pre-commit hooks.
  • shellcheck - Static analyzer for shell scripts.
  • shfmt - Formatter for shell scripts.
  • typos - Source-code-aware spell checker for code, docs, and config files.

Runtimes, build tools, and package managers

  • cmake - Cross-platform build system generator.
  • just - Command runner for project-local recipes and repeatable tasks.
  • ninja - Small, fast build executor commonly used with CMake.
  • node - JavaScript runtime for local tooling and application scripts.
  • python - Python runtime for scripts, tests, and developer utilities.
  • uv - Fast Python package, project, and tool manager.
  • yarn - JavaScript package manager and project script runner.

Documents, media, and conversion

  • exiftool - Metadata reader and writer for images, media, and documents.
  • ffmpeg - Audio and video recording, conversion, and inspection toolkit.
  • ghostscript (gs) - PostScript and PDF interpreter used by document workflows.
  • imagemagick (magick/convert) - Image inspection and conversion toolkit.
  • pandoc - Universal document converter for markup and publishing workflows.
  • pdftotext - PDF text extraction tool from Poppler.

Shell, archive, and system utilities

  • 7zip (7z/7zz) - Multi-format archiver for .7z files and uncommon downloaded archives.
  • bat - Syntax-highlighting file viewer and cat replacement.
  • curl - URL client for HTTP requests, downloads, and install bootstrapping.
  • eza - Modern directory listing tool and ls replacement.
  • hyperfine - Command-line benchmarking tool.
  • realpath - Canonical path resolution utility.
  • rsync - Incremental file synchronization and copy utility. Not managed on Windows.
  • stat - Filesystem metadata inspection utility.
  • tar - Tape archive utility for creating and extracting .tar archives.
  • unzip - ZIP archive extraction utility.
  • xxd - Hex dump and reverse-hex-dump utility.
  • zip - ZIP archive creation utility.

Windows-specific

  • pwsh - PowerShell 7 command shell, managed on Windows only.

Some tools have different package names than command names. For example, sqlite3 may be installed by a sqlite package, delta is often installed by the git-delta package, difft by difftastic, and typos by Homebrew's typos-cli formula. Homebrew provides 7zip through the sevenzip formula and its 7zz executable, while most other supported managers expose 7z. Some Linux distributions also package pandoc, ffmpeg, ImageMagick, ExifTool, xxd, stat, and realpath under distribution-specific names or paths.

Some requested tools are supplied by default operating-system utilities on many machines. For example, macOS normally provides tar, zip, unzip, rsync, xxd, stat, and realpath.

Some install paths intentionally fall back outside normal package-manager mappings when default repositories do not provide reliable native packages. On Linux, those narrow fallbacks install upstream release assets for tools such as uv and ast-grep, and openSUSE uses the newly installed uv to install pre-commit when zypper has no native package.

Some tools are intentionally platform-specific. rsync is managed on Linux and macOS, but is not a Windows requirement. Windows additionally manages pwsh through winget's Microsoft.PowerShell package; Linux and macOS do not require it.

On Windows, pre-commit is installed with uv tool install when uv and Python are available, and uv-managed pre-commit commands are reported with uv:pre-commit as their source. ast-grep has winget and Scoop mappings but no verified Chocolatey package.

Machine-wide Chocolatey installs are skipped in auto install mode when the current shell is not elevated, because they normally write under C:\ProgramData\chocolatey.

One-Line Installers

macOS

Install Homebrew if you do not have it:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Optionally get a report about missing and available tools:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/aleksandr-voitenko/ai-agents-toolbox/main/macos.sh)"

Automatically install missing tools:

curl -fsSL https://raw.githubusercontent.com/aleksandr-voitenko/ai-agents-toolbox/main/macos.sh | bash -s -- --install-missing

Linux

Install curl via package manager, if you do not have it.

Optionally get a report about missing and available tools:

curl -fsSL https://raw.githubusercontent.com/aleksandr-voitenko/ai-agents-toolbox/main/linux.sh | bash -s -- --check-only

Automatically install missing tools:

curl -fsSL https://raw.githubusercontent.com/aleksandr-voitenko/ai-agents-toolbox/main/linux.sh | bash -s -- --install-missing

Windows

Use PowerShell.

Optionally get a report about missing and available package managers and tools:

irm https://raw.githubusercontent.com/aleksandr-voitenko/ai-agents-toolbox/main/windows.ps1 | iex

You might need to install package manager(s) in order to make all the tools obtainable.

WinGet:

start ms-windows-store://pdp/?ProductId=9NBLGGH4NNS1

That opens Microsoft Store to App Installer, which contains winget.exe.

Scoop:

Run the following commands from a regular (non-admin) PowerShell terminal to install Scoop:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

It is recommended to rerun the report generation after installing package managers.

Automatically install missing tools:

$u="https://raw.githubusercontent.com/aleksandr-voitenko/ai-agents-toolbox/main/windows.ps1"; $f=Join-Path $env:TEMP "ai-agents-toolbox-windows.ps1"; Invoke-WebRequest -UseBasicParsing $u -OutFile $f; powershell -ExecutionPolicy Bypass -File $f -InstallMissing

In the image below, you can find an example of executing the AI Agents Toolbox on a typical developer machine.

Example of diagnostic with missing tools on macOS

Options

macOS

Check only:

./macos.sh

Install missing tools with Homebrew:

./macos.sh --install-missing

Upgrade only tools already managed by Homebrew:

./macos.sh --upgrade-managed

Linux

Check only:

./linux.sh

Install missing tools with the detected package manager:

./linux.sh --install-missing

When --manager is not specified, Linux installs missing tools with the first available manager in this order: apt, dnf, pacman, then zypper.

Upgrade only tools already managed by apt, rpm/dnf/zypper, or pacman:

./linux.sh --upgrade-managed

Force a specific supported package manager:

./linux.sh --manager apt --install-missing

Supported Linux package managers:

apt      Debian and Ubuntu
dnf      Fedora and RHEL-family distributions
pacman   Arch Linux
zypper   openSUSE

Windows

Check only:

powershell -ExecutionPolicy Bypass -File windows.ps1

Install missing tools:

powershell -ExecutionPolicy Bypass -File windows.ps1 -InstallMissing

When -Manager is not specified, Windows installs missing tools with the first available manager in this order: winget, Scoop, then Chocolatey.

If a missing tool is not available through the detected package manager, the script reports that in the tool row and summarizes which supported package managers can install it.

After an install attempt, the script refreshes its own PATH from the current Machine and User environment entries before checking whether the command is available. If a command is found only after that refresh, the summary notes that the parent shell may still need a restart or PATH refresh. If the package manager reports success, or reports that an installed package has no available upgrade, but the command is still unavailable after the refresh, check package/app alias PATH entries. The summary's missing count is the count before install attempts.

Upgrade only tools already managed by winget, Scoop, or Chocolatey:

powershell -ExecutionPolicy Bypass -File windows.ps1 -UpgradeManaged

Use a specific package manager for missing installs:

powershell -ExecutionPolicy Bypass -File windows.ps1 -InstallMissing -Manager scoop

Supported Windows package managers:

winget      https://learn.microsoft.com/windows/package-manager/winget/
Scoop       https://scoop.sh/
Chocolatey  https://chocolatey.org/install

When -InstallMissing is used and missing tools are found, the script suggests those links if no supported Windows package manager is available. It does not install any package manager automatically.

Cross-platform Wrapper

On macOS and Linux, you can use:

./setup-tools.sh

The wrapper dispatches to the OS-specific shell script. On Windows, use the PowerShell script directly.

CI

Pull requests and pushes to main run hosted smoke checks on Ubuntu, macOS, and Windows. They also run hermetic fake-manager tests that verify install and upgrade behavior without touching real package managers.

The install smoke workflow also runs the opt-in install path on disposable Linux distro containers, macOS with Homebrew, and Windows with Chocolatey. The Windows Chocolatey smoke permits only the known unsupported Chocolatey mapping for ast-grep to remain missing. It is enabled for pull requests, pushes, and its nightly schedule, but omits the live zypper container because Tumbleweed package retrieval is too unstable for unattended checks. Hermetic fake-manager tests still exercise zypper behavior without depending on live repositories.

Run the hermetic tests locally with:

bash tests/shell-setup-tools-tests.sh
pwsh -NoProfile -ExecutionPolicy Bypass -File tests/windows-setup-tools-tests.ps1

Notes

The source detection is best effort. It is usually reliable for Homebrew, apt/dpkg, rpm/dnf, pacman, default nvm installs, Scoop, Chocolatey, and many winget installs. Manual installs, custom shims, and PATH entries created by SDKs may be reported as unknown, system, local, cargo, nvm, or npm-or-node. Those are deliberately not upgraded or replaced.

Yarn may be reported as a Corepack shim. In that case the command exists, but the exact Yarn version is selected by each project through packageManager in package.json.

About

All the tools your AI agent needs in order to be productive. Cross-platform.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages