base <name> works like anything else.
base ext is the short alias, and it works everywhere the full name does.
Installing one someone published
[dist] block, fetches the prebuilt binary for your machine from its GitHub release, verifies the checksum, unpacks it and installs it. No Rust, no build step, no toolchain.
The gotcha. If no prebuilt asset matches your machine, it falls back to building from local source, which does need a toolchain. That fallback is why the command sometimes takes minutes instead of seconds.
Installing one from a local manifest
--bundle matters. Without it, the installed manifest points back at wherever the handler currently sits on disk. Move that folder, delete the repository, or clean a build directory, and the command breaks. With --bundle, the handler is copied into ~/.base-gbl/plugins/<name>/ and the manifest is repointed there, so the install is self-contained.
Use --bundle for anything you intend to keep.
The gotcha. Validate anything you did not write. base extension validate reads the manifest and reports whether it conforms without installing it, and it costs one command.
Writing one
base extension scaffold weather gives you base weather.
--bootstrap is the whole kickoff in one flag: write the files, build them, initialize a repository, create a private GitHub repository, wire the remote and push. It is the same as passing --build --git --create-repo together.
Next rung. --repo owner/name sets where releases come from, defaulting to ChristopherKahler/<name>-cli. Set it before your first release rather than after.
When a name collides
base weather might be ambiguous, this form never is.
The gotcha. Collisions are quiet. If a plugin command shares a name with a built-in, the built-in is what you get. base extension run is the way to reach the plugin anyway.
Extensions and domains
An installed extension can declare domains of its own. They merge into the same pool as yours, at the lowest priority, so a domain you define with the same name wins. Why this matters. It means installing an extension can change what gets injected, not just what commands exist.base domain list shows the merged result, so check there after installing something that ships domains.
Removing one
~/.base-gbl/plugins/ goes with it.
Next
Standards
Protocols that fire when you edit a matching file.
Setup reference
Every
base extension verb and flag.