Better-Than-Stock CLI Tools for AI Coding Agents on macOS A developer argues that macOS's built-in CLI tools like grep, find, and cat are suboptimal for AI coding agents, recommending modern replacements such as ripgrep, fd, and jq for better context economy, fewer round trips, and structured output. ripgrep is noted as the only tool with vendor backing, bundled by Claude Code and Codex CLI, while others are unofficial but preferred by models when available. The developer provides a table of recommended tools and their installation via Homebrew. macOS ships grep , find , and cat — decades-old, POSIX-correct, and worse choices than the modern replacements once an LLM is the one calling them. Three reasons that's true, not just aesthetic preference: Context economy. ripgrep and fd skip .git , node modules , and build output by default and print compact file:line:match results. grep -r / find without carefully hand-tuned exclusions dump everything, and every irrelevant line an agent reads is context it paid for and now has to reason past. Fewer wasted round trips. Models are trained on a decade of GitHub, Stack Overflow, and blog content where these newer tools are increasingly the default. They emit correct rg / fd / jq flags on the first try more reliably than the equivalent find -exec grep or awk incantation — a failed command is a full extra turn burned on repair, not just a lost second. Structured output. jq / yq hand back parseable slices of JSON/YAML instead of a blob the model has to re-derive values from by eye, which is slower and more error-prone than it looks. None of this requires the model to have been fine-tuned on any specific tool. It only requires the tool to be on $PATH — every harness below either bundles ripgrep itself or falls back to whatever it finds, and all of them will reach for a better tool over a worse one if you give them the choice. ripgrep is the one tool with actual vendor backing — Claude Code and Codex CLI bundle it and are documented to prefer it over grep ; everything else below is unofficial : no vendor documents it, but it's what a model reaches for when it's on $PATH .- Install the replacements once, globally, and stop thinking about it — see copy-paste https://gist.github.com/starred.atom copy-paste . - Node.js 22+ is the real gatekeeper for actually running these harnesses separate from the tools they call — Claude Code, Codex CLI, and Qwen Code all need it. - For open-weight models, DeepSeek and GLM/Zhipu don't have a verified first-party terminal agent as of this research pass — see below https://gist.github.com/starred.atom the-open-weight-column-is-thinner-than-it-looks . | Tool | Replaces | Status | Why it's worth it for an agent loop | Install | |---|---|---|---|---| rg | grep Confirmed — Claude Code's Grep tool is built on ripgrep its own syntax, not POSIX regex and bundles a binary per-platform; Codex CLI bundles/depends on it too and has a documented crash history spawn rg ENOENT without it. Qwen Code's Homebrew formula pulls it in as a dependency. .gitignore -aware, compact match output — the single biggest context-economy win on this list brew install ripgrep fd https://github.com/sharkdp/fd find .gitignore -aware, compact-output logic as ripgrep, and it's what a model defaults to over find -exec chains when it's present find + grep + xargs often needs for the same result brew install fd jq https://jqlang.github.io/jq/ gh api /HTTP responses into a structured slice instead of a blob the model re-derives values from by eye brew install jq tree https://formulae.brew.sh/formula/tree find / ls -R $PATH ls / find brew install tree bat https://github.com/sharkdp/bat cat you review what the agent touched, not the agent itself brew install bat fzf https://github.com/junegunn/fzf brew install fzf git https://git-scm.com brew install git gh https://cli.github.com brew install gh Language toolchains follow the same logic once you're inside a specific stack — uv / ruff for Python, whatever your repo needs. No vendor documents shelling out to a specific linter; they call whatever's on $PATH if you tell them to. | Assistant | Vendor | Runtime prereq | Install Homebrew | Alternative install | |---|---|---|---|---| Claude Code | Anthropic | Node.js native installer avoids needing it yourself | brew install --cask claude-code stable / claude-code@latest | Native installer curl script | Codex CLI | OpenAI | None strictly required — standalone binary | brew install --cask codex | npm install -g @openai/codex or curl -fsSL https://chatgpt.com/codex/install.sh | sh | Qwen Code | Alibaba | Node.js ≥ 22 npm path only | brew install qwen-code homebrew/core, prebuilt bottle, pulls in Node + ripgrep | npm install -g @qwen-code/qwen-code@latest or standalone install script | MiMo Code | Xiaomi | Inherits | curl -fsSL https://mimo-code.xiaomi.com/install.sh | sh Codex CLI additionally sandboxes its shell tool Seatbelt on macOS and disables outbound network by default — worth knowing before debugging why curl "hangs" inside it. Sources: Claude Code setup docs https://code.claude.com/docs/en/setup , OpenAI Codex CLI repo https://github.com/openai/codex , Qwen Code repo https://github.com/QwenLM/qwen-code , Qwen Code docs https://qwenlm.github.io/qwen-code-docs/en/users/overview/ , XiaomiMiMo/MiMo-Code https://github.com/XiaomiMiMo/MiMo-Code . Qwen Code Alibaba is the strongest entry here — a proper terminal agent with its own repo, docs, MCP/LSP/Plan Mode support, and a real Homebrew formula. Requires Node ≥ 22 for the npm path Ink 7 + React 19 need it ; the standalone script and brew formula sidestep that. MiMo Code Xiaomi is honest about not reinventing the wheel: its own README states it's "built as a fork of OpenCode," adding persistent memory, subagent orchestration, and autonomous goal-driven loops on top of OpenCode's existing provider/TUI/LSP/MCP/plugin architecture. If you already run OpenCode, MiMo Code is closer to a feature branch than a new tool. DeepSeek and GLM/Zhipu : no verified official first-party terminal coding agent turned up for either in this research pass — that's a real gap in what's documented publicly, not a claim that one doesn't exist. In practice, both model families are typically driven through third-party or generic harnesses OpenCode, Aider, Crush, Cline/Roo rather than a vendor-branded CLI. One thing worth flagging with an explicit confidence caveat: as of my last verified pre-mid-2026 knowledge, Zhipu marketed GLM models as Anthropic-API-compatible specifically so you could point Claude Code itself at a GLM endpoint via ANTHROPIC BASE URL — if that's still true, the "tool to install" for GLM is just Claude Code again. I did not reconfirm this in the current research pass, so treat it as a lead to verify, not a fact to build on. Core, vendor-relevant brew install ripgrep git gh Power-user layer optional, but pays for itself brew install fd jq fzf bat tree Pick your assistant s brew install --cask claude-code Anthropic brew install --cask codex OpenAI brew install qwen-code Alibaba open-weight curl -fsSL https://mimo-code.xiaomi.com/install.sh | sh Xiaomi open-weight - Findings for Claude Code and Codex CLI are backed by official docs, official repos, and live GitHub issues — highest confidence in this file. Qwen Code is backed by its own repo and docs — high confidence. MiMo Code 's fork relationship is confirmed by its own README; its exact tool-shelling conventions does it bundle rg the way Claude Code/Codex do, or just call system rg ? were not independently verified. DeepSeek and GLM/Zhipu produced no verifiable claims about an official coding CLI — an evidence gap, not a negative finding.- Several specific "here's the exact required tool list" claims from blog sources were checked and refuted — that framing doesn't hold up against what vendors actually document, which is why everything but ripgrep above is labeled unofficial rather than required. - This snapshot is dated 2026-07-10 , after this assistant's own January 2026 training cutoff — everything above came from live verification this session, not memorized knowledge. Re-check before relying on it months out; this space moves fast. Claude Code — Advanced setup https://code.claude.com/docs/en/setup Claude Code — Tools reference https://code.claude.com/docs/en/tools-reference Claude Code — Permissions https://code.claude.com/docs/en/permissions anthropics/claude-code — GitHub issue 6415 https://github.com/anthropics/claude-code/issues/6415 openai/codex — GitHub repo https://github.com/openai/codex openai/codex — AGENTS.md https://github.com/openai/codex/blob/main/AGENTS.md OpenAI Codex CLI docs https://developers.openai.com/codex/cli openai/codex — issue 10390 sandbox network https://github.com/openai/codex/issues/10390 OpenAI — Agent approvals & security https://learn.chatgpt.com/docs/agent-approvals-security QwenLM/qwen-code — GitHub repo https://github.com/QwenLM/qwen-code Qwen Code docs — Overview https://qwenlm.github.io/qwen-code-docs/en/users/overview/ XiaomiMiMo/MiMo-Code — GitHub repo https://github.com/XiaomiMiMo/MiMo-Code ripgrep vs grep — benchmarks and why AI agents use rg https://dev.to/rahulxsingh/ripgrep-vs-grep-performance-benchmarks-and-why-ai-agents-use-rg-1716