Official extension directory for Homeboy. Each extension is a project-type primitive — it teaches Homeboy how to discover, audit, lint, test, and release a particular kind of codebase.
This is a monorepo — each subdirectory is a standalone extension. Install individual extensions, not the whole repo.
| Extension | Description |
|---|---|
wordpress |
WordPress project type — WP-CLI, build, test (via Playground), and lint (PHPCS + WPCS + PHPStan + ESLint) |
rust |
Rust project type — Cargo CLI, fingerprint/refactor, test/lint runners, crates.io publish |
nodejs |
Node.js project type — discovery, audit grammar (Express/Mongoose/etc.), and npm release lifecycle |
go |
Go project type — Cargo-equivalent CLI integration for services and binaries |
swift |
Swift project type — testing infrastructure for macOS, iOS, and Swift CLI projects |
These extensions cover the codebase lifecycle: discover, audit, lint, test, refactor, release, deploy. Anything that runs as a long-lived process, talks to a remote API at runtime, or scrapes/automates external services belongs in Sweatpants, not here.
GitHub Releases and Homebrew tap publishing for Rust binaries are handled by cargo-dist directly inside Homeboy's own release workflow — there is no separate github or homebrew extension.
Install extensions one at a time. Homeboy clones this repo, detects the monorepo layout, and extracts just the extension you asked for into ~/.config/homeboy/extensions/<id>/.
homeboy extension install https://github.com/Extra-Chill/homeboy-extensions --id wordpress
homeboy extension install https://github.com/Extra-Chill/homeboy-extensions --id rust
homeboy extension install https://github.com/Extra-Chill/homeboy-extensions --id nodejs# List all installed extensions
homeboy extension list
# Inspect a specific extension
homeboy extension show wordpressLocal path installs are for active extension development:
git clone https://github.com/Extra-Chill/homeboy-extensions.git
homeboy extension install ./homeboy-extensions/wordpress
homeboy extension install ./homeboy-extensions/rustFor normal use, install from the GitHub monorepo URL with --id <extension>. Homeboy manages the cloned/extracted install and can update that installed copy:
homeboy extension install https://github.com/Extra-Chill/homeboy-extensions --id wordpressLocal path installs are linked installs. The active extension code is whatever the installed symlink target points at, so updating the primary homeboy-extensions checkout does not update an extension linked to another checkout or feature worktree. Avoid linking installed extensions to short-lived worktrees unless you are intentionally testing that branch.
Inspect the current state before debugging extension behavior:
homeboy extension list
homeboy extension show wordpress
readlink ~/.config/homeboy/extensions/wordpressTo reset a stale linked install, uninstall and reinstall from the GitHub URL, or relink intentionally to the checkout you want active.
Once installed, declare the extension in your repo's homeboy.json and Homeboy will pick it up automatically:
{
"id": "my-project",
"extensions": {
"wordpress": {}
}
}Then run Homeboy commands as usual:
homeboy audit
homeboy lint --fix
homeboy test
homeboy releaseEach extension also exposes a CLI binding for direct use against a project or component:
# WordPress
homeboy wp my-site plugin list
# Rust
homeboy cargo my-crate buildEach extension is a directory containing a <extension-id>.json manifest. The manifest defines capabilities, audit grammar, release actions, and CLI bindings. See wordpress/wordpress.json and rust/rust.json for full examples.
Each extension owns its own CHANGELOG.md at <extension>/docs/CHANGELOG.md, generated by Homeboy at release time. There is no monorepo-level changelog — extensions release independently.