Skip to content

Extra-Chill/homeboy-extensions

Repository files navigation

Homeboy Extensions

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.

Available Extensions

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

Scope

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.

Installation

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

Verify installation

# List all installed extensions
homeboy extension list

# Inspect a specific extension
homeboy extension show wordpress

Install from a local clone

Local 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/rust

Install modes and updates

For 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 wordpress

Local 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/wordpress

To reset a stale linked install, uninstall and reinstall from the GitHub URL, or relink intentionally to the checkout you want active.

Usage

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 release

Each 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 build

Creating Extensions

Each 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.

About

Use-case specific extensions for Homeboy.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors