The plugin catalog for the Entire CLI. entire plugin search, install <name>, info, and browse resolve bare plugin names through this repository.
entire plugin search # browse the catalog
entire plugin install upgrade # install by name
entire plugin index update # force a refreshThere is no hosted service. The CLI shallow-clones this repository into its user cache and re-pulls it on a TTL (default 24 hours) — any git server can host an index, and the CLI keeps working offline from its cached copy. The catalog is the single index.json file at the repository root.
Plugins themselves are standalone executables named entire-<name>. Installing one resolves the newest semver tag of its repository over the git protocol (git ls-remote), downloads the platform's release asset over HTTPS, verifies it against the release's checksums.txt, and places it in the CLI's managed plugin directory. See the external commands documentation for the full contract.
{
"version": 1,
"plugins": [
{
"name": "upgrade",
"repo_url": "https://github.com/entireio/entire-upgrade",
"description": "Upgrade the system-installed Entire binary",
"official": true,
"platforms": ["darwin", "linux", "windows"]
}
]
}| Field | Required | Meaning |
|---|---|---|
name |
yes | Bare plugin name (upgrade for entire-upgrade). Must be a valid dispatcher name: no path separators, no leading -, and the agent- prefix is reserved for the external agent protocol. |
repo_url |
yes | Full https:// git URL of the plugin repository. Any git host works — GitHub, GitLab, Gitea/Forgejo, self-hosted. |
description |
no | One line, shown by search, info, and browse. |
official |
no | Marks Entire-maintained plugins. Defaults to false. |
platforms |
no | Supported GOOS values when the plugin doesn't ship the full matrix. Empty means all. |
Entries with invalid names or missing repo URLs are filtered by the CLI on load, not fatal — but don't rely on that.
-
Name and host your repository. Convention: the repository basename is
entire-<name>. Releases must be downloadable without authentication (public repository). -
Publish releases with conventional assets. Tag with semver (
v0.1.0) and attach per-platform assets namedentire-<name>_<version>_<os>_<arch>.tar.gz(.zipon Windows) containing theentire-<name>binary, plus achecksums.txt(sha256sum format). goreleaser's defaults produce exactly this shape — see entire-upgrade's.goreleaser.yamlfor a working template. Hosts with non-standard release URLs can declare adownload_urltemplate inentire-plugin.ymlinstead. -
Optionally commit
entire-plugin.ymlat the repository root:name: myplugin description: One-line description requires: # other plugins this one needs (optional) - name: sem repo_url: https://github.com/entireio/entire-sem min_version: v0.2.0 # minimum only; no range syntax
-
Open a pull request adding your entry to
index.json. Keep the list sorted by name.
Before submitting, verify the end-to-end flow works against your repository directly:
entire plugin install https://github.com/you/entire-myplugin --yes
entire myplugin
entire plugin remove mypluginOrganizations can host their own index (any git repository with an index.json) and point the CLI at it. Precedence, highest first:
--index <url>flag on the plugin subcommandsENTIRE_PLUGIN_INDEX_URLenvironment variableplugins.index_urlin.entire/settings.local.json/.entire/settings.json— commit it to a repository to point every contributor at an internal catalog- This repository (the built-in default)
plugins.index_ttl_hours tunes refresh frequency (default 24).