{
  "markdown": "# erbina\n\n> A Claude-Code-only MCP server that bootstraps your dev environment from one\n> prompt — install, wire, and **verify** CLI tools and other MCP servers from\n> curated recipes, and see where every MCP server lives across your scopes.\n\n[![CI](https://github.com/noahhyden/erbina/actions/workflows/ci.yml/badge.svg)](https://github.com/noahhyden/erbina/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/noahhyden/erbina?sort=semver)](https://github.com/noahhyden/erbina/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![MCP](https://img.shields.io/badge/Model_Context_Protocol-server-blueviolet.svg)](https://modelcontextprotocol.io)\n[![Claude Code](https://img.shields.io/badge/client-Claude_Code-d97757.svg)](https://code.claude.com)\n\n![An interactive Claude Code session driving erbina: one prompt inspects the httpie recipe to show the plan, then bootstraps it — installing via pipx and verifying http --version for real](docs/demo.gif)\n\nNamed after the Lusitanian goddess of boundaries and crossings — erbina is the\nthreshold a tool crosses to become part of your environment. Sibling to\n[ataegina](https://github.com/noahhyden/ataegina-cli) (goddess of rebirth), which\nis also erbina's proof-of-concept recipe #1.\n\n> **The recipe contract is the core idea.** One server, eleven tools, and a curated\n> set of **500+ recipes** spanning `cli-tool`s, scope-wiring `mcp-server`s, and\n> `profile`s that bundle them (see the [Recipe gallery](#recipe-gallery)). Each is\n> one YAML file held to a conformance bar — schema + linter policy + a 100%-covered\n> offline suite, plus a weekly job that actually installs it on macOS, Linux, and\n> Windows — and adding one is the point.\n\n## Why this exists\n\nSetting up a coding-agent environment is death by a thousand cuts: you install a\nCLI, hand-edit a config, add an MCP server — then find out it's in the wrong\n*scope* and isn't showing up. Claude Code spreads MCP config across **up to four\nfiles in two apps**, with no single place that knows what's installed where\n([anthropics/claude-code#27458](https://github.com/anthropics/claude-code/issues/27458),\n[#8288](https://github.com/anthropics/claude-code/issues/8288),\n[#5963](https://github.com/anthropics/claude-code/issues/5963)).\n\nerbina makes setup a thing an **agent does for you, and proves worked**:\n\n- **It's an MCP server, so an agent must drive it.** There is no human entry\n  point — run it by hand and you get nothing. Nobody mistakes it for a manual\n  installer that \"should just work.\"\n- **Recipes, not one-shot installs.** Each entry is a contract:\n  **detect → install → configure → verify**. Idempotent by construction — it\n  detects what's already there and skips it, and success means the tool *runs*,\n  not that a line was written to a file. Recipes also **compose** (`requires:`\n  prerequisites, `profile`s that bundle a whole set) and cover the **full\n  lifecycle**: `update` → re-verify → rollback, `uninstall`, and a `doctor`\n  health-check over everything erbina installed.\n- **Scope-aware.** It knows about Claude Code's `local` / `project` / `user`\n  scopes, wires MCP-server recipes into the right one, and audits all three so\n  you finally have one place that answers \"what's installed, and where?\"\n- **Proven, not just written.** On top of the offline suite, a weekly (and\n  on-demand) CI job bootstraps recipes *for real* against live package managers on\n  **macOS, Linux, and Windows** — so a renamed brew formula, a dead URL, or a bad\n  winget id is caught, not shipped.\n\n## Install\n\nerbina is a single Python file run by [`uv`](https://docs.astral.sh/uv/) (it\ndeclares its own dependencies inline — no venv to manage).\n\n```bash\ngit clone https://github.com/noahhyden/erbina\n# register it with Claude Code (use --scope user to make it available everywhere)\nclaude mcp add erbina --scope user -- uv run --script /absolute/path/to/erbina/server.py\n```\n\nThen, in Claude Code, just ask: *\"use erbina to set up ataegina\"* — the agent\ninspects the recipe, shows you exactly what it will run, then bootstraps and\nverifies it.\n\nRequirements: `uv` and Claude Code, on macOS, Linux, or Windows. Plus whatever a\nrecipe's install method needs — typically `brew` on macOS, `winget` on Windows, or\na language toolchain (`cargo` / `go` / `pipx`) or `curl` fallback elsewhere. Every\nmethod is guarded, so only one that actually exists on your machine ever runs.\n\n### Headless / CI usage\n\nIn an interactive session `claude mcp add …` (above) handles the trust prompt for\nyou. A non-interactive `claude -p` run has no prompt to answer, so you load the\nserver with `--mcp-config` and **pre-approve** erbina's tools with `--allowedTools`\n(their names are `mcp__erbina__<tool>`). Write an MCP config once:\n\n```json\n// erbina.mcp.json\n{ \"mcpServers\": { \"erbina\": {\n  \"command\": \"uv\",\n  \"args\": [\"run\", \"--script\", \"/absolute/path/to/erbina/server.py\"]\n} } }\n```\n\n```bash\n# read-only: discover + inspect (nothing executes)\nclaude -p \"use erbina to list recipes, then inspect ripgrep\" \\\n  --mcp-config erbina.mcp.json --strict-mcp-config \\\n  --allowedTools mcp__erbina__list_recipes mcp__erbina__inspect_recipe\n\n# install for real (add mcp__erbina__bootstrap to the allowlist)\nclaude -p \"use erbina to bootstrap the modern-unix profile\" \\\n  --mcp-config erbina.mcp.json --strict-mcp-config \\\n  --allowedTools mcp__erbina__bootstrap\n```\n\n`--strict-mcp-config` makes the run use *only* the servers in that file, so it\nnever picks up your global config. Omit `--allowedTools` and a headless call\ncan't call any tool — that's the one thing new CI users trip on.\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `list_recipes` | List the curated recipes erbina can bootstrap — each with a `category` and search `tags` so you can tell at a glance what it's for. |\n| `search_recipes` | Find a recipe by keyword and/or filter (`category`, `kind`) instead of scanning the whole list — ranked by relevance. E.g. \"a JSON tool\" or `category=\"kubernetes\"`. |\n| `list_categories` | A domain map of the registry — every category with a recipe, how many, and example tools. See what erbina **covers** at a glance, then drill in with `search_recipes(category=…)`. |\n| `inspect_recipe` | Show **exactly** what bootstrapping a recipe would run — the consent surface. Nothing executes. |\n| `bootstrap` | Run a recipe: detect → install → configure → verify, idempotently. `dry_run=true` returns the full plan without executing. |\n| `check_updates` | Read-only report of whether installed tools have newer versions available, for recipes that declare a `version:` block. Pinned tools are flagged and excluded. |\n| `update` | Upgrade an installed tool, then **re-run `verify`** as a safety net — on failure it rolls back (if the recipe supports it) or marks the tool broken. `dry_run=true` shows the command first. |\n| `pin` | Pin (or unpin) a tool so automatic updates skip it. `update` refuses a pinned tool unless `force=true`. |\n| `audit_scopes` | Read-only report of which MCP servers are configured in `local` / `project` / `user` scope, where each lives, and any name shadowed across scopes. |\n| `find_dead_mcps` | Health-check every configured MCP server and flag the ones that fail to connect — stale/dead servers, annotated with the scope to remove them from. Read-only. |\n| `remove_mcp` | Remove an MCP server by name (e.g. a dead one), auto-resolving its scope. `dry_run=true` shows the `claude mcp remove` command without running it. |\n| `doctor` | Health-check the CLI tools erbina has installed (its state manifest): re-run each one's `detect` + `verify` and report healthy / missing / broken. Read-only; the CLI-tool counterpart to `find_dead_mcps`. |\n| `uninstall` | Reverse a cli-tool install via the recipe's `uninstall:` block, confirm it's gone (re-run `detect`), and forget it in the state manifest. `dry_run=true` shows the command first. For MCP servers use `remove_mcp`. |\n\nThe server's instructions tell the agent to **always inspect (or dry-run) and\nshow you the commands before executing** — erbina shells out to package managers\nwith real privileges (it runs as a sibling process, not under Claude Code's Bash\nsandbox), so consent before execution is the safety model.\n\n## How a recipe works\n\nA recipe is four phases an agent executes. The proof-of-concept entry,\n[`recipes/ataegina.yaml`](recipes/ataegina.yaml):\n\n```yaml\ndetect:   { command: \"ataegina --version\", expect_exit: 0 }   # skip install if present\ninstall:                                                       # first guard to pass wins\n  methods:\n    - { id: homebrew, when: \"command -v brew\", run: \"brew install noahhyden/tap/ataegina\" }\n    - { id: curl,     when: \"command -v curl\", run: \"curl -fsSL .../install.sh | sh\" }\nconfigure: { steps: [ { run: \"ataegina init --yes\", needs_project_dir: true, optional: true } ] }\nverify:   [ { command: \"ataegina --version\", expect_exit: 0 } ]\n```\n\nA `kind: mcp-server` recipe instead wires a server into a chosen scope — its\nconfigure step is `claude mcp add <name> --scope ${scope} -- …`, where `${scope}`\nis substituted from the `scope` you pass to `bootstrap`. See\n[`recipes/fetch.yaml`](recipes/fetch.yaml). A `kind: profile` recipe installs\nnothing itself — it just `requires:` a curated set, so one prompt bootstraps the\nwhole bundle.\n\nRecipes can also declare optional blocks: `requires:` (prerequisites bootstrapped\nfirst), `version:` + `update:` / `rollback:` (auto-updates, with `latest:` as a\ncommand or the `{ github: owner/repo }` shorthand), and `uninstall:` (teardown).\nBecause each install method's `when:` guard runs in the host shell, methods are\ncross-platform — a `winget` method fires only on Windows, `brew`/`cargo`/`curl`\nonly where they apply. The full schema is in [SCHEMA.md](SCHEMA.md).\n\n> [!WARNING]\n> **Windows support is limited and error-prone.** macOS and Linux are the\n> first-class targets. Most `winget` package ids were resolved in bulk against the\n> winget catalog and are only spot-checked, so some may be wrong, out of date, or\n> resolve to a look-alike package — a `winget install` can fail or, worse, install\n> the wrong tool. The `when:` guard means a bad winget method fails cleanly rather\n> than breaking a POSIX bootstrap, but treat Windows as best-effort: verify what\n> got installed. Fixes are welcome.\n\n## Auto-updating tools\n\nA recipe can opt into update checks by declaring a `version:` block (an installed\n`current` command and a `latest` source) and, optionally, `update:` / `rollback:`\nmethods. Then:\n\n- **`check_updates`** compares installed vs latest (numeric/pre-release aware, via\n  `packaging`) and reports what's out of date — it never claims an update it can't\n  parse, skips **pinned** tools, and for a `{ github: … }` source includes a\n  release-notes link so you can review before applying.\n- **`update`** applies the upgrade and **re-runs `verify`**; if verify fails it\n  rolls back to the recorded previous version (when the recipe declares a\n  `rollback:` command) or marks the tool broken and returns a plan.\n- erbina records what it manages in a small state manifest (`~/.erbina/state.json`)\n  — versions, install method, and pins.\n\nChecks are agent-driven; you can also enable an **opt-in** SessionStart hook or a\n`/schedule` routine so the agent checks for you and asks before applying anything.\nSee [AUTO_UPDATE.md](AUTO_UPDATE.md) for the design, the `version:`/`update:`/\n`rollback:` schema, and the trigger setup.\n\n## Recipe gallery\n\nThe curated registry today — 500+ recipes. Each links to its YAML; `cli-tool`s\ninstall a binary, `mcp-server`s wire a server into a chosen Claude Code scope, and\n`profile`s bundle several recipes. (This list is kept in sync with `recipes/` by a\ntest. The bulk `cli-tool` entries are generated from `scripts/recipe_data.py`.)\n\n<details>\n<summary><strong>CLI tools</strong> — the marquee set</summary>\n\n- [`ataegina`](recipes/ataegina.yaml) — collision-free dev environments per git worktree\n- [`bat`](recipes/bat.yaml) — a cat clone with syntax highlighting and Git integration\n- [`bottom`](recipes/bottom.yaml) — a cross-platform graphical process/system monitor\n- [`delta`](recipes/delta.yaml) — a syntax-highlighting pager for git, diff, and grep output\n- [`difftastic`](recipes/difftastic.yaml) — a structural (syntax-aware) diff tool\n- [`dust`](recipes/dust.yaml) — a more intuitive version of du\n- [`eza`](recipes/eza.yaml) — a modern, maintained replacement for ls\n- [`fd`](recipes/fd.yaml) — a fast, friendly alternative to find\n- [`gh`](recipes/gh.yaml) — GitHub's official command-line tool\n- [`httpie`](recipes/httpie.yaml) — a human-friendly command-line HTTP client\n- [`hyperfine`](recipes/hyperfine.yaml) — a command-line benchmarking tool\n- [`jq`](recipes/jq.yaml) — command-line JSON processor\n- [`lazygit`](recipes/lazygit.yaml) — a simple terminal UI for git commands\n- [`procs`](recipes/procs.yaml) — a modern replacement for ps\n- [`ripgrep`](recipes/ripgrep.yaml) — blazing-fast recursive search\n- [`sd`](recipes/sd.yaml) — intuitive find & replace (a friendlier sed)\n- [`tealdeer`](recipes/tealdeer.yaml) — a very fast tldr client (simplified man pages)\n- [`tokei`](recipes/tokei.yaml) — count your code, quickly\n- [`uv`](recipes/uv.yaml) — an extremely fast Python package and project manager\n- [`yq`](recipes/yq.yaml) — a portable command-line YAML/JSON/XML processor\n- [`zoxide`](recipes/zoxide.yaml) — a smarter cd command that learns your habits\n\n</details>\n\n<details>\n<summary><strong>CLI tools</strong> — the full registry (500+, bulk-curated, kept in sync with <code>recipes/</code> by <code>scripts/gen_recipes.py</code>)</summary>\n\n<!-- GENERATED:cli-tools (managed by scripts/gen_recipes.py) -->\n- [`ack`](recipes/ack.yaml) — a grep-like search tool optimized for source code\n- [`act`](recipes/act.yaml) — run your GitHub Actions locally\n- [`ag`](recipes/ag.yaml) — a code-searching tool similar to ack, but faster (`ag`)\n- [`age`](recipes/age.yaml) — a simple, modern and secure encryption tool\n- [`aichat`](recipes/aichat.yaml) — all-in-one LLM CLI tool\n- [`alex`](recipes/alex.yaml) — catch insensitive, inconsiderate writing\n- [`ali`](recipes/ali.yaml) — generate HTTP load and plot the results in real-time\n- [`angle-grinder`](recipes/angle-grinder.yaml) — slice and dice logs on the command line (`agrind`)\n- [`ansible`](recipes/ansible.yaml) — a radically simple IT automation platform\n- [`argocd`](recipes/argocd.yaml) — the CLI for Argo CD, declarative GitOps continuous delivery for Kubernetes\n- [`aria2`](recipes/aria2.yaml) — a lightweight multi-protocol and multi-source download utility (`aria2c`)\n- [`artillery`](recipes/artillery.yaml) — a modern load testing and smoke testing toolkit\n- [`asciidoctor`](recipes/asciidoctor.yaml) — a fast, open-source text processor for converting AsciiDoc content\n- [`asciinema`](recipes/asciinema.yaml) — record and share terminal sessions\n- [`asdf`](recipes/asdf.yaml) — manage multiple runtime versions with a single CLI tool\n- [`ast-grep`](recipes/ast-grep.yaml) — a fast and polyglot tool for code structural search, lint and rewriting\n- [`atmos`](recipes/atmos.yaml) — universal tool for DevOps and cloud automation\n- [`atuin`](recipes/atuin.yaml) — magical shell history\n- [`autoconf`](recipes/autoconf.yaml) — a tool for producing configure scripts for building software\n- [`autojump`](recipes/autojump.yaml) — a faster way to navigate your filesystem\n- [`automake`](recipes/automake.yaml) — a tool for automatically generating Makefile.in files\n- [`autopep8`](recipes/autopep8.yaml) — automatically formats Python code to conform to the PEP 8 style guide\n- [`aws-sam-cli`](recipes/aws-sam-cli.yaml) — build and test serverless applications with the AWS Serverless Application Model (`sam`)\n- [`aws-vault`](recipes/aws-vault.yaml) — a vault for securely storing and accessing AWS credentials\n- [`awscli`](recipes/awscli.yaml) — the AWS Command Line Interface (`aws`)\n- [`axel`](recipes/axel.yaml) — a light command-line download accelerator\n- [`azure-cli`](recipes/azure-cli.yaml) — the command-line tools for managing Azure resources (`az`)\n- [`bacon`](recipes/bacon.yaml) — a background rust code checker\n- [`bandit`](recipes/bandit.yaml) — a tool designed to find common security issues in Python code\n- [`bandwhich`](recipes/bandwhich.yaml) — terminal bandwidth utilization tool\n- [`bash`](recipes/bash.yaml) — the GNU Bourne-Again SHell\n- [`bats`](recipes/bats.yaml) — Bash Automated Testing System\n- [`bc`](recipes/bc.yaml) — an arbitrary-precision calculator language\n- [`beets`](recipes/beets.yaml) — the music geek's media organizer (`beet`)\n- [`biome`](recipes/biome.yaml) — a performant toolchain for web projects: format, lint and more\n- [`black`](recipes/black.yaml) — the uncompromising Python code formatter\n- [`borg`](recipes/borg.yaml) — deduplicating archiver with compression and encryption\n- [`bpython`](recipes/bpython.yaml) — a fancy interface to the Python interpreter\n- [`broot`](recipes/broot.yaml) — a new way to see and navigate directory trees\n- [`brotli`](recipes/brotli.yaml) — a generic-purpose lossless compression algorithm\n- [`btop`](recipes/btop.yaml) — a monitor of resources\n- [`buf`](recipes/buf.yaml) — the best way to work with Protocol Buffers\n- [`buku`](recipes/buku.yaml) — a powerful bookmark manager and mini web-tagger\n- [`bun`](recipes/bun.yaml) — an incredibly fast JavaScript runtime, bundler, transpiler and package manager\n- [`caddy`](recipes/caddy.yaml) — fast and extensible multi-platform web server with automatic HTTPS\n- [`calcurse`](recipes/calcurse.yaml) — a text-based calendar and scheduling application\n- [`carthage`](recipes/carthage.yaml) — a simple, decentralized dependency manager for Cocoa\n- [`ccache`](recipes/ccache.yaml) — a fast C/C++ compiler cache\n- [`cdk`](recipes/cdk.yaml) — define cloud infrastructure using familiar programming languages (`cdk`)\n- [`chafa`](recipes/chafa.yaml) — image-to-text converter for terminal graphics\n- [`cheat`](recipes/cheat.yaml) — create and view interactive cheatsheets on the command line\n- [`checkov`](recipes/checkov.yaml) — prevent cloud misconfigurations by scanning infrastructure as code\n- [`chezmoi`](recipes/chezmoi.yaml) — manage your dotfiles across multiple diverse machines, securely\n- [`choose`](recipes/choose.yaml) — a human-friendly and fast alternative to cut and (sometimes) awk\n- [`clang-format`](recipes/clang-format.yaml) — a tool to format C, C++, Objective-C and related code\n- [`cloudflared`](recipes/cloudflared.yaml) — Cloudflare Tunnel client\n- [`cmake`](recipes/cmake.yaml) — a cross-platform family of tools designed to build, test and package software\n- [`cocoapods`](recipes/cocoapods.yaml) — the dependency manager for Swift and Objective-C Cocoa projects (`pod`)\n- [`code2prompt`](recipes/code2prompt.yaml) — a CLI tool to convert your codebase into a single LLM prompt\n- [`codespell`](recipes/codespell.yaml) — fix common misspellings in text files and source code\n- [`colima`](recipes/colima.yaml) — container runtimes on macOS (and Linux) with minimal setup\n- [`colordiff`](recipes/colordiff.yaml) — a tool to colorize diff output\n- [`commitizen`](recipes/commitizen.yaml) — create committing rules, bump versions and generate changelogs (`cz`)\n- [`commitlint`](recipes/commitlint.yaml) — lint commit messages against your commit convention\n- [`composer`](recipes/composer.yaml) — dependency manager for PHP\n- [`concurrently`](recipes/concurrently.yaml) — run multiple commands concurrently\n- [`conftest`](recipes/conftest.yaml) — write tests against structured configuration data using OPA/Rego\n- [`consul`](recipes/consul.yaml) — service networking across any cloud\n- [`cookiecutter`](recipes/cookiecutter.yaml) — a command-line utility that creates projects from templates\n- [`cosign`](recipes/cosign.yaml) — container signing, verification and storage in an OCI registry\n- [`cpanminus`](recipes/cpanminus.yaml) — get, unpack, build and install modules from CPAN (`cpanm`)\n- [`cppcheck`](recipes/cppcheck.yaml) — a static analysis tool for C/C++ code\n- [`crane`](recipes/crane.yaml) — a tool for interacting with remote images and registries\n- [`croc`](recipes/croc.yaml) — securely send files and folders from one computer to another\n- [`crystal`](recipes/crystal.yaml) — a language for humans and computers, with Ruby-like syntax and native speed\n- [`cspell`](recipes/cspell.yaml) — a spell checker for code\n- [`csvkit`](recipes/csvkit.yaml) — a suite of command-line tools for converting to and working with CSV (`csvlook`)\n- [`csvtk`](recipes/csvtk.yaml) — a cross-platform, efficient and practical CSV/TSV toolkit\n- [`ctop`](recipes/ctop.yaml) — top-like interface for container metrics\n- [`curl`](recipes/curl.yaml) — a command-line tool for transferring data with URLs\n- [`dasel`](recipes/dasel.yaml) — select, put and delete data from JSON, TOML, YAML, XML and CSV\n- [`datamash`](recipes/datamash.yaml) — a command-line program which performs basic numeric, textual and statistical operations on input textual data\n- [`datasette`](recipes/datasette.yaml) — an open source multi-tool for exploring and publishing data\n- [`dbmate`](recipes/dbmate.yaml) — a lightweight, framework-agnostic database migration tool\n- [`degit`](recipes/degit.yaml) — straightforward project scaffolding\n- [`delve`](recipes/delve.yaml) — a debugger for the Go programming language (`dlv`)\n- [`deno`](recipes/deno.yaml) — a modern runtime for JavaScript and TypeScript\n- [`devspace`](recipes/devspace.yaml) — a client-only developer tool for fast Kubernetes development\n- [`direnv`](recipes/direnv.yaml) — unclutter your .profile with per-directory environments\n- [`diskonaut`](recipes/diskonaut.yaml) — terminal disk space navigator\n- [`dive`](recipes/dive.yaml) — a tool for exploring a docker image and layer contents\n- [`doctl`](recipes/doctl.yaml) — the official command-line interface for the DigitalOcean API\n- [`doctoc`](recipes/doctoc.yaml) — generates a table of contents for markdown files\n- [`dog`](recipes/dog.yaml) — a command-line DNS client\n- [`doggo`](recipes/doggo.yaml) — a modern command-line DNS client (like dig) written in Go\n- [`dos2unix`](recipes/dos2unix.yaml) — text file format converter between DOS/Mac and Unix line endings\n- [`dotenv-linter`](recipes/dotenv-linter.yaml) — a lightning-fast linter for .env files\n- [`doxygen`](recipes/doxygen.yaml) — the de facto standard tool for generating documentation from annotated C++ sources\n- [`dprint`](recipes/dprint.yaml) — a pluggable and configurable code formatting platform\n- [`dua`](recipes/dua.yaml) — a tool to conveniently learn about disk usage\n- [`duckdb`](recipes/duckdb.yaml) — an in-process SQL OLAP database management system\n- [`duf`](recipes/duf.yaml) — disk usage/free utility, a better df alternative\n- [`dysk`](recipes/dysk.yaml) — a linux utility to get information on filesystems, like df but better\n- [`eksctl`](recipes/eksctl.yaml) — the official CLI for Amazon EKS\n- [`elixir`](recipes/elixir.yaml) — a dynamic, functional language for building scalable and maintainable applications\n- [`esbuild`](recipes/esbuild.yaml) — an extremely fast JavaScript bundler and minifier\n- [`eslint`](recipes/eslint.yaml) — find and fix problems in your JavaScript code\n- [`eva`](recipes/eva.yaml) — a simple calculator REPL, similar to bc\n- [`exiftool`](recipes/exiftool.yaml) — read, write and edit meta information in a wide variety of files\n- [`fastfetch`](recipes/fastfetch.yaml) — a fast, feature-rich system information tool\n- [`fastlane`](recipes/fastlane.yaml) — the easiest way to automate building and releasing iOS and Android apps\n- [`fastmod`](recipes/fastmod.yaml) — a fast partial replacement for the codemod tool\n- [`fblog`](recipes/fblog.yaml) — a small command-line JSON log viewer\n- [`fclones`](recipes/fclones.yaml) — an efficient duplicate file finder and remover\n- [`fend`](recipes/fend.yaml) — an arbitrary-precision unit-aware calculator\n- [`ffmpeg`](recipes/ffmpeg.yaml) — a complete solution to record, convert and stream audio and video\n- [`ffuf`](recipes/ffuf.yaml) — fast web fuzzer written in Go\n- [`firebase-tools`](recipes/firebase-tools.yaml) — the Firebase command-line interface (`firebase`)\n- [`fish`](recipes/fish.yaml) — the friendly interactive shell\n- [`flac`](recipes/flac.yaml) — the reference implementation of the Free Lossless Audio Codec\n- [`flake8`](recipes/flake8.yaml) — the modular source code checker for Python\n- [`flatbuffers`](recipes/flatbuffers.yaml) — a cross-platform serialization library for memory-efficient data (`flatc`)\n- [`flyctl`](recipes/flyctl.yaml) — the command-line interface for Fly.io\n- [`fnm`](recipes/fnm.yaml) — fast and simple Node.js version manager\n- [`fq`](recipes/fq.yaml) — jq for binary formats\n- [`freeze`](recipes/freeze.yaml) — generate images of code and terminal output\n- [`fswatch`](recipes/fswatch.yaml) — a cross-platform file change monitor with multiple backends\n- [`fx`](recipes/fx.yaml) — terminal JSON viewer and processor\n- [`fzf`](recipes/fzf.yaml) — a command-line fuzzy finder\n- [`gallery-dl`](recipes/gallery-dl.yaml) — download image galleries and collections from several image hosting sites\n- [`gawk`](recipes/gawk.yaml) — the GNU implementation of the AWK programming language\n- [`gcovr`](recipes/gcovr.yaml) — generate code coverage reports with gcc/gcov\n- [`gdu`](recipes/gdu.yaml) — a fast disk usage analyzer with a console interface written in Go\n- [`genact`](recipes/genact.yaml) — a nonsense activity generator\n- [`ghostscript`](recipes/ghostscript.yaml) — an interpreter for PostScript and PDF (`gs`)\n- [`ghq`](recipes/ghq.yaml) — manage remote repository clones\n- [`gifski`](recipes/gifski.yaml) — the highest-quality GIF encoder based on pngquant\n- [`git-absorb`](recipes/git-absorb.yaml) — automatically absorb staged changes into your recent commits\n- [`git-cliff`](recipes/git-cliff.yaml) — a highly customizable changelog generator\n- [`git-filter-repo`](recipes/git-filter-repo.yaml) — quickly rewrite git repository history\n- [`git-lfs`](recipes/git-lfs.yaml) — git extension for versioning large files\n- [`git-town`](recipes/git-town.yaml) — generic, high-level git workflow support\n- [`gitleaks`](recipes/gitleaks.yaml) — detect secrets in code\n- [`gitlint`](recipes/gitlint.yaml) — a git commit message linter written in Python\n- [`gitmoji`](recipes/gitmoji.yaml) — an interactive command-line tool for using emojis on commits (`gitmoji`)\n- [`gitu`](recipes/gitu.yaml) — a TUI git client inspired by Magit\n- [`gitui`](recipes/gitui.yaml) — blazing-fast terminal UI for git\n- [`glab`](recipes/glab.yaml) — an open-source GitLab CLI tool\n- [`glances`](recipes/glances.yaml) — a cross-platform system monitoring tool\n- [`gleam`](recipes/gleam.yaml) — a friendly language for building type-safe systems that scale\n- [`glow`](recipes/glow.yaml) — render markdown on the CLI, with style\n- [`gnuplot`](recipes/gnuplot.yaml) — a portable command-line driven graphing utility\n- [`goaccess`](recipes/goaccess.yaml) — a real-time web log analyzer and interactive viewer\n- [`gobuster`](recipes/gobuster.yaml) — directory/file, DNS and vhost busting tool\n- [`golangci-lint`](recipes/golangci-lint.yaml) — fast linters runner for Go\n- [`gopass`](recipes/gopass.yaml) — the slightly more awesome standard unix password manager for teams\n- [`goreleaser`](recipes/goreleaser.yaml) — deliver Go binaries as fast and easily as possible\n- [`gpg-tui`](recipes/gpg-tui.yaml) — a terminal user interface for GnuPG\n- [`gping`](recipes/gping.yaml) — ping, but with a graph\n- [`gradle`](recipes/gradle.yaml) — an open-source build automation tool focused on flexibility and performance\n- [`graphviz`](recipes/graphviz.yaml) — graph visualization software (`dot`)\n- [`grex`](recipes/grex.yaml) — generate regular expressions from user-provided examples\n- [`gron`](recipes/gron.yaml) — make JSON greppable\n- [`grpcurl`](recipes/grpcurl.yaml) — like cURL, but for gRPC\n- [`grype`](recipes/grype.yaml) — a vulnerability scanner for container images and filesystems\n- [`gum`](recipes/gum.yaml) — a tool for glamorous shell scripts\n- [`hadolint`](recipes/hadolint.yaml) — a smarter Dockerfile linter\n- [`hatch`](recipes/hatch.yaml) — a modern, extensible Python project manager\n- [`hcloud`](recipes/hcloud.yaml) — a command-line interface for Hetzner Cloud\n- [`helix`](recipes/helix.yaml) — a post-modern modal text editor\n- [`helm`](recipes/helm.yaml) — the Kubernetes package manager\n- [`helmfile`](recipes/helmfile.yaml) — deploy Kubernetes Helm charts declaratively\n- [`hexyl`](recipes/hexyl.yaml) — a command-line hex viewer\n- [`hgrep`](recipes/hgrep.yaml) — human-friendly grep with a rich display\n- [`hlint`](recipes/hlint.yaml) — a tool for suggesting possible improvements to Haskell code\n- [`hostctl`](recipes/hostctl.yaml) — a CLI tool to manage /etc/hosts with ease\n- [`howdoi`](recipes/howdoi.yaml) — instant coding answers via the command line\n- [`htmlhint`](recipes/htmlhint.yaml) — the static code analysis tool you need for your HTML\n- [`htmlq`](recipes/htmlq.yaml) — like jq, but for HTML\n- [`htop`](recipes/htop.yaml) — an interactive process viewer\n- [`http-server`](recipes/http-server.yaml) — a simple, zero-configuration command-line HTTP server\n- [`hugo`](recipes/hugo.yaml) — the world's fastest framework for building websites\n- [`hurl`](recipes/hurl.yaml) — run and test HTTP requests with plain text\n- [`hwatch`](recipes/hwatch.yaml) — a modern alternative to the watch command that records execution results\n- [`icdiff`](recipes/icdiff.yaml) — improved colored diff, side-by-side\n- [`imagemagick`](recipes/imagemagick.yaml) — create, edit, compose or convert digital images (`magick`)\n- [`infracost`](recipes/infracost.yaml) — cloud cost estimates for Terraform in pull requests\n- [`iperf3`](recipes/iperf3.yaml) — a TCP, UDP and SCTP network bandwidth measurement tool\n- [`ipython`](recipes/ipython.yaml) — a powerful interactive Python shell\n- [`isort`](recipes/isort.yaml) — a Python utility to sort imports alphabetically and automatically\n- [`jaq`](recipes/jaq.yaml) — a jq clone focused on correctness, speed and simplicity\n- [`jbang`](recipes/jbang.yaml) — unleash the power of Java for scripting\n- [`jc`](recipes/jc.yaml) — convert the output of many CLI tools and file types to JSON\n- [`jekyll`](recipes/jekyll.yaml) — a blog-aware static site generator in Ruby\n- [`jenv`](recipes/jenv.yaml) — manage your Java environment\n- [`jless`](recipes/jless.yaml) — a command-line JSON viewer\n- [`jnv`](recipes/jnv.yaml) — an interactive JSON filter using jq\n- [`jo`](recipes/jo.yaml) — a small utility to create JSON objects\n- [`joshuto`](recipes/joshuto.yaml) — a ranger-like terminal file manager written in Rust\n- [`jpegoptim`](recipes/jpegoptim.yaml) — utility to optimize and compress JPEG files\n- [`json-server`](recipes/json-server.yaml) — get a full fake REST API with zero coding in less than 30 seconds\n- [`julia`](recipes/julia.yaml) — a high-level, high-performance dynamic language for technical computing\n- [`jupytext`](recipes/jupytext.yaml) — Jupyter notebooks as markdown documents, Julia, Python or R scripts\n- [`just`](recipes/just.yaml) — a handy command runner\n- [`k3d`](recipes/k3d.yaml) — little helper to run k3s in Docker\n- [`k6`](recipes/k6.yaml) — a modern load testing tool for engineering teams\n- [`k9s`](recipes/k9s.yaml) — Kubernetes CLI to manage your clusters in style\n- [`kalker`](recipes/kalker.yaml) — a scientific calculator that supports math-like syntax\n- [`kdash`](recipes/kdash.yaml) — a simple and fast dashboard for Kubernetes\n- [`khal`](recipes/khal.yaml) — a standards-based CLI and terminal calendar program\n- [`kind`](recipes/kind.yaml) — Kubernetes IN Docker\n- [`kmon`](recipes/kmon.yaml) — Linux kernel manager and activity monitor\n- [`ko`](recipes/ko.yaml) — build and deploy Go applications on Kubernetes\n- [`kompose`](recipes/kompose.yaml) — go from Docker Compose to Kubernetes\n- [`kondo`](recipes/kondo.yaml) — cleans dependencies and build artifacts from your projects\n- [`kopia`](recipes/kopia.yaml) — a fast and secure open-source backup/restore tool\n- [`ktlint`](recipes/ktlint.yaml) — an anti-bikeshedding Kotlin linter with built-in formatter\n- [`kube-linter`](recipes/kube-linter.yaml) — a static analysis tool that checks Kubernetes YAML and Helm charts\n- [`kubeconform`](recipes/kubeconform.yaml) — a fast Kubernetes manifest validation tool\n- [`kubectl`](recipes/kubectl.yaml) — the Kubernetes command-line tool\n- [`kubectx`](recipes/kubectx.yaml) — faster switching between Kubernetes contexts\n- [`kubescape`](recipes/kubescape.yaml) — a Kubernetes security platform for scanning clusters, YAML files and Helm charts\n- [`kubeseal`](recipes/kubeseal.yaml) — a CLI to encrypt secrets into SealedSecrets for Kubernetes\n- [`kustomize`](recipes/kustomize.yaml) — customization of Kubernetes YAML configurations\n- [`lazydocker`](recipes/lazydocker.yaml) — a simple terminal UI for docker and docker-compose\n- [`lefthook`](recipes/lefthook.yaml) — a fast and powerful git hooks manager\n- [`lerna`](recipes/lerna.yaml) — a tool for managing JavaScript projects with multiple packages\n- [`lighthouse`](recipes/lighthouse.yaml) — automated auditing, performance metrics and best practices for the web\n- [`litecli`](recipes/litecli.yaml) — a command-line client for SQLite with auto-completion and syntax highlighting\n- [`lnav`](recipes/lnav.yaml) — the logfile navigator\n- [`localstack`](recipes/localstack.yaml) — a fully functional local cloud stack emulating AWS\n- [`localtunnel`](recipes/localtunnel.yaml) — expose your localhost to the world (`lt`)\n- [`locust`](recipes/locust.yaml) — a modern load testing framework, define user behaviour with Python code\n- [`lolcat`](recipes/lolcat.yaml) — rainbows and unicorns in your terminal\n- [`lsd`](recipes/lsd.yaml) — the next-gen ls command\n- [`luarocks`](recipes/luarocks.yaml) — the package manager for Lua modules\n- [`lz4`](recipes/lz4.yaml) — extremely fast lossless compression algorithm\n- [`macchina`](recipes/macchina.yaml) — a fast, minimal and customizable system information tool\n- [`magic-wormhole`](recipes/magic-wormhole.yaml) — get things from one computer to another, safely\n- [`markdownlint-cli2`](recipes/markdownlint-cli2.yaml) — a fast, flexible, configuration-based command-line interface for linting markdown\n- [`mask`](recipes/mask.yaml) — a CLI task runner defined by a simple markdown file\n- [`maven`](recipes/maven.yaml) — a build automation and project management tool for Java (`mvn`)\n- [`mc`](recipes/mc.yaml) — a modern replacement for ls, cp, mirror and more for object storage (`mc`)\n- [`mcfly`](recipes/mcfly.yaml) — an intelligent shell history search\n- [`mdbook`](recipes/mdbook.yaml) — create book-like documentation from markdown files\n- [`mdcat`](recipes/mdcat.yaml) — cat for markdown\n- [`mediainfo`](recipes/mediainfo.yaml) — display technical and tag data for video and audio files\n- [`meson`](recipes/meson.yaml) — a fast and user-friendly build system\n- [`micro`](recipes/micro.yaml) — a modern and intuitive terminal-based text editor\n- [`miller`](recipes/miller.yaml) — like awk, sed, cut, join and sort for CSV, TSV and JSON (`mlr`)\n- [`minikube`](recipes/minikube.yaml) — run Kubernetes locally\n- [`miniserve`](recipes/miniserve.yaml) — a small, self-contained static file server\n- [`mise`](recipes/mise.yaml) — the front-end to your dev env\n- [`mitmproxy`](recipes/mitmproxy.yaml) — an interactive HTTPS proxy for intercepting, inspecting and modifying traffic\n- [`mkcert`](recipes/mkcert.yaml) — a simple tool for making locally-trusted development certificates\n- [`mkdocs`](recipes/mkdocs.yaml) — project documentation with markdown\n- [`mkvtoolnix`](recipes/mkvtoolnix.yaml) — tools to create, alter and inspect Matroska files (`mkvmerge`)\n- [`mob`](recipes/mob.yaml) — a fast way to switch between roles when doing remote mob programming\n- [`mods`](recipes/mods.yaml) — AI on the command line\n- [`mongosh`](recipes/mongosh.yaml) — the MongoDB Shell, a modern command-line interface for MongoDB\n- [`mosh`](recipes/mosh.yaml) — the mobile shell, a remote terminal application that supports roaming\n- [`mprocs`](recipes/mprocs.yaml) — run multiple commands in parallel with a TUI\n- [`mtr`](recipes/mtr.yaml) — a network diagnostic tool combining ping and traceroute\n- [`mycli`](recipes/mycli.yaml) — a command line client for MySQL with auto-completion and syntax highlighting\n- [`mypy`](recipes/mypy.yaml) — optional static typing for Python\n- [`nano`](recipes/nano.yaml) — a small, friendly text editor for the terminal\n- [`navi`](recipes/navi.yaml) — an interactive cheatsheet tool for the CLI\n- [`nbdime`](recipes/nbdime.yaml) — tools for diffing and merging of Jupyter notebooks\n- [`ncdu`](recipes/ncdu.yaml) — NCurses disk usage\n- [`neovim`](recipes/neovim.yaml) — hyperextensible Vim-based text editor (`nvim`)\n- [`nerdctl`](recipes/nerdctl.yaml) — contaiNERD CTL, a Docker-compatible CLI for containerd\n- [`netlify`](recipes/netlify.yaml) — the command-line interface for Netlify\n- [`newman`](recipes/newman.yaml) — a command-line collection runner for Postman\n- [`nim`](recipes/nim.yaml) — an efficient, expressive, elegant statically typed compiled language\n- [`ninja`](recipes/ninja.yaml) — a small build system with a focus on speed\n- [`nmap`](recipes/nmap.yaml) — the network mapper, a utility for network discovery and security auditing\n- [`nodemon`](recipes/nodemon.yaml) — monitor for changes and automatically restart your node app\n- [`nomad`](recipes/nomad.yaml) — an easy-to-use, flexible, and performant workload orchestrator\n- [`nox`](recipes/nox.yaml) — flexible test automation with Python\n- [`npkill`](recipes/npkill.yaml) — easily find and remove old and heavy node_modules folders\n- [`npm-check-updates`](recipes/npm-check-updates.yaml) — upgrade your package.json dependencies to the latest versions (`ncu`)\n- [`nuclei`](recipes/nuclei.yaml) — fast and customizable vulnerability scanner based on simple YAML templates\n- [`numbat`](recipes/numbat.yaml) — a statically typed programming language for scientific computations with units\n- [`nushell`](recipes/nushell.yaml) — a new type of shell\n- [`ocrmypdf`](recipes/ocrmypdf.yaml) — adds an OCR text layer to scanned PDF files\n- [`octave`](recipes/octave.yaml) — a high-level language primarily intended for numerical computations\n- [`oha`](recipes/oha.yaml) — HTTP load generator with a realtime TUI\n- [`ollama`](recipes/ollama.yaml) — get up and running with large language models locally\n- [`onefetch`](recipes/onefetch.yaml) — a git repository summary in your terminal\n- [`opa`](recipes/opa.yaml) — Open Policy Agent, general-purpose policy engine\n- [`opam`](recipes/opam.yaml) — the OCaml package manager\n- [`opentofu`](recipes/opentofu.yaml) — an open-source Terraform-compatible infrastructure as code tool\n- [`oras`](recipes/oras.yaml) — OCI registry as storage\n- [`ormolu`](recipes/ormolu.yaml) — a formatter for Haskell source code\n- [`ouch`](recipes/ouch.yaml) — painless compression and decompression on the command line\n- [`ov`](recipes/ov.yaml) — a feature-rich terminal pager\n- [`oxipng`](recipes/oxipng.yaml) — a multithreaded lossless PNG compression optimizer\n- [`pa11y`](recipes/pa11y.yaml) — your automated accessibility testing pal\n- [`packer`](recipes/packer.yaml) — build automated machine images\n- [`pandoc`](recipes/pandoc.yaml) — a universal document converter\n- [`papermill`](recipes/papermill.yaml) — parameterize, execute and analyze Jupyter notebooks\n- [`parallel`](recipes/parallel.yaml) — GNU parallel, a shell tool for executing jobs in parallel\n- [`parcel`](recipes/parcel.yaml) — the zero-configuration build tool for the web\n- [`pastel`](recipes/pastel.yaml) — a tool to generate, analyze, convert and manipulate colors\n- [`pdm`](recipes/pdm.yaml) — a modern Python package and dependency manager supporting the latest PEP standards\n- [`pgcli`](recipes/pgcli.yaml) — a command line interface for Postgres with auto-completion and syntax highlighting\n- [`pigz`](recipes/pigz.yaml) — a parallel implementation of gzip for modern multi-processor machines\n- [`pip-audit`](recipes/pip-audit.yaml) — audit Python environments and dependency trees for known vulnerabilities\n- [`pipdeptree`](recipes/pipdeptree.yaml) — display a dependency tree of installed Python packages\n- [`pipenv`](recipes/pipenv.yaml) — Python development workflow for humans\n- [`pipx`](recipes/pipx.yaml) — install and run Python applications in isolated environments\n- [`pkg-config`](recipes/pkg-config.yaml) — a helper tool used when compiling applications and libraries\n- [`playwright`](recipes/playwright.yaml) — reliable end-to-end testing for modern web apps\n- [`pm2`](recipes/pm2.yaml) — a production process manager for Node.js applications with a built-in load balancer\n- [`pngquant`](recipes/pngquant.yaml) — a command-line utility to convert 24/32-bit PNGs to 8-bit paletted PNGs\n- [`pnpm`](recipes/pnpm.yaml) — fast, disk space-efficient package manager\n- [`poetry`](recipes/poetry.yaml) — Python packaging and dependency management made easy\n- [`popeye`](recipes/popeye.yaml) — a Kubernetes cluster resource sanitizer\n- [`pre-commit`](recipes/pre-commit.yaml) — a framework for managing multi-language pre-commit hooks\n- [`presenterm`](recipes/presenterm.yaml) — markdown terminal slideshows\n- [`prettier`](recipes/prettier.yaml) — an opinionated code formatter\n- [`prisma`](recipes/prisma.yaml) — next-generation Node.js and TypeScript ORM\n- [`proselint`](recipes/proselint.yaml) — a linter for prose\n- [`protobuf`](recipes/protobuf.yaml) — Protocol Buffers, Google's data interchange format (`protoc`)\n- [`protolint`](recipes/protolint.yaml) — a pluggable linter and fixer to enforce Protocol Buffer style and conventions\n- [`pspg`](recipes/pspg.yaml) — a unix pager optimized for psql and other tabular output\n- [`ptpython`](recipes/ptpython.yaml) — a better Python REPL\n- [`pueue`](recipes/pueue.yaml) — a command-line task management tool for sequential and parallel execution\n- [`pulumi`](recipes/pulumi.yaml) — infrastructure as code in your favorite language\n- [`pv`](recipes/pv.yaml) — pipe viewer, monitor the progress of data through a pipe\n- [`pyenv`](recipes/pyenv.yaml) — simple Python version management\n- [`pyinstaller`](recipes/pyinstaller.yaml) — bundles a Python application and all its dependencies into a single package\n- [`pylint`](recipes/pylint.yaml) — a static code analyser for Python\n- [`pyright`](recipes/pyright.yaml) — a fast static type checker for Python\n- [`qpdf`](recipes/qpdf.yaml) — a command-line program that does structural, content-preserving transformations on PDF files\n- [`qsv`](recipes/qsv.yaml) — a blazing-fast CSV data-wrangling toolkit\n- [`r`](recipes/r.yaml) — a free software environment for statistical computing and graphics (`R`)\n- [`radon`](recipes/radon.yaml) — various code metrics for Python code\n- [`ranger`](recipes/ranger.yaml) — a VIM-inspired file manager for the console\n- [`rav1e`](recipes/rav1e.yaml) — the fastest and safest AV1 encoder\n- [`rbenv`](recipes/rbenv.yaml) — manage your app's Ruby environment\n- [`rclone`](recipes/rclone.yaml) — rsync for cloud storage\n- [`redis`](recipes/redis.yaml) — an in-memory data store; ships the `redis-cli` client\n- [`release-it`](recipes/release-it.yaml) — automate versioning and package publishing\n- [`restic`](recipes/restic.yaml) — fast, secure, efficient backup program\n- [`rich-cli`](recipes/rich-cli.yaml) — a command-line toolbox for fancy output (`rich`)\n- [`ripsecrets`](recipes/ripsecrets.yaml) — a command-line tool to prevent committing secret keys into your source code\n- [`rlwrap`](recipes/rlwrap.yaml) — a readline wrapper for any command\n- [`rnr`](recipes/rnr.yaml) — a command-line tool to batch-rename files and directories\n- [`rollup`](recipes/rollup.yaml) — a module bundler for JavaScript\n- [`rsync`](recipes/rsync.yaml) — a fast, versatile, remote (and local) file-copying tool\n- [`rubocop`](recipes/rubocop.yaml) — a Ruby static code analyzer and formatter, based on the community style guide\n- [`ruby`](recipes/ruby.yaml) — a dynamic, open-source programming language with a focus on simplicity and productivity\n- [`ruff`](recipes/ruff.yaml) — an extremely fast Python linter and formatter\n- [`rustic`](recipes/rustic.yaml) — fast, encrypted and deduplicated backups powered by Rust\n- [`rustscan`](recipes/rustscan.yaml) — the modern port scanner\n- [`s-tui`](recipes/s-tui.yaml) — a terminal UI for monitoring your computer's CPU temperature, frequency, power and utilization\n- [`s3cmd`](recipes/s3cmd.yaml) — command-line tool for managing Amazon S3 and compatible object stores\n- [`sass`](recipes/sass.yaml) — the reference implementation of Sass, written in Dart\n- [`sbcl`](recipes/sbcl.yaml) — Steel Bank Common Lisp, a high-performance Common Lisp compiler\n- [`scc`](recipes/scc.yaml) — a fast and accurate code counter with complexity calculations\n- [`sccache`](recipes/sccache.yaml) — shared compilation cache\n- [`scmpuff`](recipes/scmpuff.yaml) — numeric shortcuts for common git commands\n- [`scrapy`](recipes/scrapy.yaml) — a fast high-level web crawling and web scraping framework for Python\n- [`semantic-release`](recipes/semantic-release.yaml) — fully automated version management and package publishing\n- [`semgrep`](recipes/semgrep.yaml) — lightweight static analysis for many languages\n- [`seqkit`](recipes/seqkit.yaml) — a cross-platform and ultrafast toolkit for FASTA/Q file manipulation\n- [`serie`](recipes/serie.yaml) — a rich git commit graph in your terminal\n- [`serve`](recipes/serve.yaml) — static file serving and directory listing\n- [`serverless`](recipes/serverless.yaml) — build and deploy serverless applications across cloud providers\n- [`shellcheck`](recipes/shellcheck.yaml) — a static analysis tool for shell scripts\n- [`shellharden`](recipes/shellharden.yaml) — a bash syntax highlighter that encourages good coding practices\n- [`shellspec`](recipes/shellspec.yaml) — a full-featured BDD unit testing framework for POSIX shells\n- [`shfmt`](recipes/shfmt.yaml) — a shell parser, formatter, and interpreter\n- [`silicon`](recipes/silicon.yaml) — create beautiful images of your source code\n- [`skopeo`](recipes/skopeo.yaml) — work with remote container images registries\n- [`sops`](recipes/sops.yaml) — simple and flexible tool for managing secrets\n- [`sox`](recipes/sox.yaml) — the Swiss Army knife of sound processing programs\n- [`spectral`](recipes/spectral.yaml) — a flexible JSON/YAML linter for OpenAPI, AsyncAPI and more\n- [`speedtest`](recipes/speedtest.yaml) — command-line internet bandwidth tester (speedtest.net)\n- [`speedtest-cli`](recipes/speedtest-cli.yaml) — command line interface for testing internet bandwidth using speedtest.net\n- [`sphinx`](recipes/sphinx.yaml) — a documentation generator (`sphinx-build`)\n- [`sqlc`](recipes/sqlc.yaml) — generate type-safe code from SQL\n- [`sqlfluff`](recipes/sqlfluff.yaml) — a modular SQL linter and auto-formatter with support for multiple dialects\n- [`sqlite`](recipes/sqlite.yaml) — a small, fast, self-contained SQL database engine (`sqlite3`)\n- [`sqlite-utils`](recipes/sqlite-utils.yaml) — CLI tool and Python library for manipulating SQLite databases\n- [`sshuttle`](recipes/sshuttle.yaml) — a transparent proxy server that works as a poor man's VPN over ssh\n- [`stack`](recipes/stack.yaml) — the Haskell Tool Stack, a cross-platform build tool for Haskell projects\n- [`starship`](recipes/starship.yaml) — the minimal, blazing-fast, cross-shell prompt\n- [`step`](recipes/step.yaml) — a zero-trust swiss-army knife for working with certificates and CAs\n- [`stern`](recipes/stern.yaml) — multi pod and container log tailing for Kubernetes\n- [`stow`](recipes/stow.yaml) — GNU Stow, a symlink farm manager\n- [`streamlink`](recipes/streamlink.yaml) — a CLI utility that pipes video streams into a video player\n- [`stylelint`](recipes/stylelint.yaml) — a mighty CSS linter that helps you avoid errors and enforce conventions\n- [`stylua`](recipes/stylua.yaml) — an opinionated Lua code formatter\n- [`subfinder`](recipes/subfinder.yaml) — fast passive subdomain enumeration tool\n- [`svgo`](recipes/svgo.yaml) — Node.js tool for optimizing SVG files\n- [`svu`](recipes/svu.yaml) — semantic version util\n- [`swiftformat`](recipes/swiftformat.yaml) — a command-line tool and Xcode extension for formatting Swift code\n- [`swiftlint`](recipes/swiftlint.yaml) — a tool to enforce Swift style and conventions\n- [`syft`](recipes/syft.yaml) — generate a software bill of materials from container images and filesystems\n- [`systeroid`](recipes/systeroid.yaml) — a more powerful alternative to sysctl\n- [`tailscale`](recipes/tailscale.yaml) — the easiest, most secure way to use WireGuard and 2FA\n- [`tailwindcss`](recipes/tailwindcss.yaml) — a utility-first CSS framework CLI\n- [`taplo`](recipes/taplo.yaml) — a versatile, feature-rich TOML toolkit\n- [`task`](recipes/task.yaml) — a task runner / build tool that aims to be simpler and easier to use than make\n- [`television`](recipes/television.yaml) — a cross-platform, fast and extensible fuzzy finder\n- [`termshark`](recipes/termshark.yaml) — a terminal UI for tshark, inspired by Wireshark\n- [`terraform-docs`](recipes/terraform-docs.yaml) — generate documentation from Terraform modules\n- [`terragrunt`](recipes/terragrunt.yaml) — a thin wrapper for Terraform for keeping configurations DRY\n- [`terrascan`](recipes/terrascan.yaml) — detect compliance and security violations across infrastructure as code\n- [`tesseract`](recipes/tesseract.yaml) — an optical character recognition (OCR) engine\n- [`textlint`](recipes/textlint.yaml) — the pluggable natural language linter for text and markdown\n- [`tflint`](recipes/tflint.yaml) — a pluggable Terraform linter\n- [`tfsec`](recipes/tfsec.yaml) — security scanner for your Terraform code\n- [`thefuck`](recipes/thefuck.yaml) — magnificent app that corrects errors in previous console commands\n- [`thrift`](recipes/thrift.yaml) — the Apache Thrift compiler for scalable cross-language services\n- [`tig`](recipes/tig.yaml) — text-mode interface for git\n- [`tilt`](recipes/tilt.yaml) — local Kubernetes development with no stress\n- [`timg`](recipes/timg.yaml) — a terminal image and video viewer\n- [`tmux`](recipes/tmux.yaml) — a terminal multiplexer\n- [`tmuxinator`](recipes/tmuxinator.yaml) — create and manage complex tmux sessions easily\n- [`tmuxp`](recipes/tmuxp.yaml) — a session manager for tmux\n- [`topgrade`](recipes/topgrade.yaml) — upgrade everything with one command\n- [`tox`](recipes/tox.yaml) — a generic virtualenv management and test command line tool\n- [`tree`](recipes/tree.yaml) — a recursive directory listing command\n- [`tree-sitter`](recipes/tree-sitter.yaml) — an incremental parsing system for programming tools\n- [`trippy`](recipes/trippy.yaml) — a network diagnostic tool (`trip`)\n- [`trivy`](recipes/trivy.yaml) — a comprehensive and versatile security scanner\n- [`trunk`](recipes/trunk.yaml) — build, bundle and ship your Rust WASM application to the web\n- [`ts-node`](recipes/ts-node.yaml) — TypeScript execution and REPL for Node.js\n- [`tsx`](recipes/tsx.yaml) — TypeScript execute: run TypeScript & ESM in Node.js\n- [`tuc`](recipes/tuc.yaml) — cut with a lot of features (a hopefully better cut)\n- [`twine`](recipes/twine.yaml) — a utility for publishing Python packages on PyPI\n- [`typescript`](recipes/typescript.yaml) — JavaScript with syntax for types\n- [`typos`](recipes/typos.yaml) — source code spell checker\n- [`typst`](recipes/typst.yaml) — a new markup-based typesetting system that is powerful and easy to learn\n- [`ugrep`](recipes/ugrep.yaml) — ultra-fast grep with interactive query UI\n- [`usql`](recipes/usql.yaml) — a universal command-line interface for SQL databases\n- [`vale`](recipes/vale.yaml) — a syntax-aware linter for prose\n- [`vault`](recipes/vault.yaml) — manage secrets and protect sensitive data\n- [`vdirsyncer`](recipes/vdirsyncer.yaml) — synchronize calendars and addressbooks between servers and the local filesystem\n- [`vector`](recipes/vector.yaml) — a high-performance observability data pipeline\n- [`vercel`](recipes/vercel.yaml) — the command-line interface for Vercel\n- [`verdaccio`](recipes/verdaccio.yaml) — a lightweight private npm proxy registry\n- [`verilator`](recipes/verilator.yaml) — the fastest Verilog/SystemVerilog simulator\n- [`vhs`](recipes/vhs.yaml) — your CLI home video recorder\n- [`viddy`](recipes/viddy.yaml) — a modern watch command with time machine and pause\n- [`vifm`](recipes/vifm.yaml) — a file manager with curses interface, providing Vi[m]-like environment\n- [`vim`](recipes/vim.yaml) — the ubiquitous, highly configurable modal text editor\n- [`virtualenv`](recipes/virtualenv.yaml) — a tool to create isolated Python environments\n- [`visidata`](recipes/visidata.yaml) — a terminal interface for exploring and arranging tabular data (`vd`)\n- [`viu`](recipes/viu.yaml) — a terminal image viewer with native support for iTerm and Kitty\n- [`vivid`](recipes/vivid.yaml) — a generator for LS_COLORS with support for multiple color themes\n- [`volta`](recipes/volta.yaml) — the hassle-free JavaScript tool manager\n- [`vulture`](recipes/vulture.yaml) — find dead code in Python programs\n- [`wasm-pack`](recipes/wasm-pack.yaml) — build, test and publish Rust-generated WebAssembly\n- [`wasmer`](recipes/wasmer.yaml) — the leading WebAssembly runtime supporting WASI and Emscripten\n- [`wasmtime`](recipes/wasmtime.yaml) — a fast and secure runtime for WebAssembly\n- [`watchexec`](recipes/watchexec.yaml) — run commands when files change\n- [`watchman`](recipes/watchman.yaml) — a file watching service from Meta\n- [`webpack`](recipes/webpack.yaml) — a static module bundler for modern JavaScript applications\n- [`websocat`](recipes/websocat.yaml) — netcat, curl and socat for WebSockets\n- [`wget`](recipes/wget.yaml) — the non-interactive network downloader\n- [`wireguard-tools`](recipes/wireguard-tools.yaml) — the wg command-line tools for WireGuard VPN (`wg`)\n- [`wrangler`](recipes/wrangler.yaml) — the command-line interface for building Cloudflare Workers\n- [`xcodegen`](recipes/xcodegen.yaml) — a command-line tool that generates your Xcode project from a spec and your folder structure\n- [`xh`](recipes/xh.yaml) — a friendly and fast tool for sending HTTP requests\n- [`xonsh`](recipes/xonsh.yaml) — a Python-powered shell\n- [`xplr`](recipes/xplr.yaml) — a hackable, minimal, fast TUI file explorer\n- [`xsv`](recipes/xsv.yaml) — a fast CSV command line toolkit\n- [`xz`](recipes/xz.yaml) — a general-purpose data compression tool with high compression ratio\n- [`yadm`](recipes/yadm.yaml) — yet another dotfiles manager\n- [`yamllint`](recipes/yamllint.yaml) — a linter for YAML files\n- [`yapf`](recipes/yapf.yaml) — a formatter for Python files from Google\n- [`yarn`](recipes/yarn.yaml) — fast, reliable and secure dependency management for JavaScript\n- [`yazi`](recipes/yazi.yaml) — blazing-fast terminal file manager\n- [`yt-dlp`](recipes/yt-dlp.yaml) — a feature-rich command-line audio/video downloader\n- [`zellij`](recipes/zellij.yaml) — a terminal workspace and multiplexer\n- [`zig`](recipes/zig.yaml) — a general-purpose programming language and toolchain for maintaining robust software\n- [`zola`](recipes/zola.yaml) — a fast static site generator in a single binary with everything built-in\n- [`zsh`](recipes/zsh.yaml) — the Z shell, an extended Bourne shell with many improvements\n- [`zstd`](recipes/zstd.yaml) — Zstandard, a fast real-time compression algorithm\n<!-- /GENERATED:cli-tools -->\n\n</details>\n\n<details>\n<summary><strong>Profiles</strong> — bundle several recipes; bootstrap resolves them all</summary>\n\n- [`data`](recipes/data.yaml) — command-line data wrangling (jq, yq, dasel, duckdb, miller, csvkit, qsv)\n- [`git-power`](recipes/git-power.yaml) — git power-tools (gh, lazygit, delta, difftastic, git-lfs, tig, git-cliff)\n- [`kubernetes`](recipes/kubernetes.yaml) — Kubernetes toolkit (kubectl, helm, k9s, kustomize, stern, kubectx, kind, minikube)\n- [`modern-unix`](recipes/modern-unix.yaml) — a curated set of modern CLI replacements (ripgrep, fd, bat, eza, dust, zoxide)\n- [`node-dev`](recipes/node-dev.yaml) — Node.js / JS toolchain (fnm, pnpm, bun, esbuild, biome, tsx)\n- [`python-dev`](recipes/python-dev.yaml) — Python toolchain (uv, ruff, black, mypy, poetry, pre-commit, ipython)\n- [`security`](recipes/security.yaml) — security & supply-chain scanners (trivy, grype, syft, gitleaks, ripsecrets, semgrep)\n\n</details>\n\n<details>\n<summary><strong>MCP servers</strong> — wire a server into a chosen Claude Code scope</summary>\n\n- [`context7`](recipes/context7.yaml) — up-to-date library docs & code examples in context (Upstash)\n- [`everything`](recipes/everything.yaml) — official MCP reference/test server exercising the full protocol\n- [`fetch`](recipes/fetch.yaml) — official MCP server for retrieving web content\n- [`filesystem`](recipes/filesystem.yaml) — official MCP server for scoped local file access\n- [`git`](recipes/git.yaml) — official MCP server for Git repository operations\n- [`memory`](recipes/memory.yaml) — official MCP server for a persistent knowledge graph\n- [`playwright-mcp`](recipes/playwright-mcp.yaml) — browser automation via Microsoft Playwright\n- [`sequentialthinking`](recipes/sequentialthinking.yaml) — official MCP server for structured step-by-step reasoning\n- [`time`](recipes/time.yaml) — official MCP server for time & timezone conversions\n\n</details>\n\n## Adding a recipe\n\nDrop a `<id>.yaml` in `recipes/` following [SCHEMA.md](SCHEMA.md). `kind:\ncli-tool` installs a binary; `kind: mcp-server` additionally wires it into the\nchosen Claude Code scope; `kind: profile` just bundles others via `requires:`.\nKeep `detect` cheap and `verify` honest (prove it runs).\n\n## What this is *not*\n\nNot a package manager you run by hand (that's `mcpm` / `brew` / `aqua`), not a\ndiscovery registry (that's Smithery), and not a way to \"rebuild my laptop\ndeterministically\" (use Nix / chezmoi / a Brewfile — an LLM-driven setup is the\nwrong tool for reproducible provisioning). erbina's niche is the intersection: \n**agent-run, verify-on-install recipes that span CLI tools *and* MCP servers, \naware of Claude Code's scopes.**\n\n## Safety model\n\nerbina runs as an ordinary sibling process of Claude Code — **not** inside its\nBash sandbox — so a recipe's commands execute with your real privileges. The\nsafety model is **consent before execution**: `inspect_recipe` and\n`bootstrap(dry_run=true)` show you the exact commands first, and the server\ninstructs the agent to surface that plan before any real run. Only bootstrap\nrecipes you've read. See [SECURITY.md](SECURITY.md) for the full trust model and\nhow to report a vulnerability.\n\n## Contributing\n\nThe most useful contribution is usually a **new recipe** — one YAML file in\n`recipes/`. See [CONTRIBUTING.md](CONTRIBUTING.md) for the ground rules and how\nto smoke-test with an in-memory FastMCP client, [SCHEMA.md](SCHEMA.md) for the\nrecipe contract, and [CHANGELOG.md](CHANGELOG.md) for what's landed. By\nparticipating you agree to the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n",
  "bytes": 59188,
  "sha": "f0c33b8b85d3d7c9ff90badfb2a3f3335d2c2e2f22c5825ba3137f5868d22804",
  "repo_slug": "noahhyden/erbina",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_noahhyden_erbina_2e9b9ff0/readme"
}