ea-plugin-cli
Encre Agent Plugin Market Unified CLI
The single toolchain that takes a plugin from scaffold to the central registry. After publishing, the registry CI merges catalog entries into the ea-cwh index package, which the market backend renders locally.
🤖 What is ea-plugin-cli?
encre-plugin covers the full plugin lifecycle for the Encre Agent plugin market:
- Scaffold — generate a ready-to-publish
ea-plugin-<name>package skeleton - Build — enforce central-registry policy, compile a wheel, digest every artifact
- Verify — smoke-test the wheel in an isolated venv (install, import, manifest probe)
- Publish — upload to PyPI, then open the central-registry catalog PR automatically
Installation
Ready to run: python build.py cli compiles a single-file executable for the
current platform (build/cli/encre-plugin[.exe] — no pip install required; it
shells out to a host Python found on PATH for build/venv/twine and
auto-installs any missing components on first use)
Or as a module: pip install ea-plugin-cli # development: pip install -e cli/
⭐ Commands
| Command | Purpose |
|---|---|
encre-plugin init <name> |
Scaffold ea-plugin-<name> (pyproject + ea.plugins entry point + create_plugin factory + ui/ directory) |
encre-plugin build [pkg_dir] |
Run central-registry policy checks → python -m build (wheel + sdist) → sha256 per artifact → write dist/ea-build-info.json (draft catalog entry) |
encre-plugin vendor |
Official batch build: walk core/ea_tools/* (accepts the ea-tool-/ea-skill- namespaces and the system-default tier), build + digest each package with the same policy, stage catalog.d/<name>.json and wheels into dist/vendor/ (staging only — no upload, no PR). Invoked by python build.py vendor |
encre-plugin verify [pkg_dir] |
Install the wheel into a throwaway venv, import the entry-point factory and probe the manifest |
encre-plugin publish [pkg_dir] |
twine upload to PyPI, then open a central-registry PR: the entry lands in the registry checkout's catalog.d/, git branch is cut from origin/main, committed, pushed, gh pr create |
encre-plugin catalog regen |
Merge the registry's catalog.d/*.json → validate → write the ea-cwh catalog.json |
encre-plugin catalog check <file> |
Validate a single catalog.json |
📦 publish ↔ Central Registry
--registry-dir <dir>— use an existing registry checkout; when omitted, the CLI cloneshttps://github.com/mf2023/ea-cwh.gitinto a local cache (%LOCALAPPDATA%/~/.cache→encre-plugin-cli/registry) and hard-syncs it to origin/main every run--registry-url <git url>— override the default remote (point at a fork or a local bare repository to rehearse the whole flow)--no-upload— skip the twine upload, run the registry-PR half only--dry-run— print the files that would be uploaded and the catalog entry; no remote action- The PR branch carries exactly one file (
catalog.d/<name>.json): the branch is cut from origin/main before the entry is written, so no dirty worktree state can leak into the PR - Transition note:
verifyneedsencre-harnessto be importable inside the probe venv; for local development eitherpip install -e harness/or use--no-depsplus aPYTHONPATHpointing at the source trees
🛡️ Central Registry Policy (enforced at build time)
| # | Rule |
|---|---|
| 1 | The PyPI distribution name must start with a reserved prefix — ea-plugin- (community) or ea-tool- / ea-skill- (vendor namespaces) |
| 2 | Must declare [project.entry-points."ea.plugins"]; one wheel carries exactly one plugin |
| 3 | Manifest name/version/description/author/license must be non-empty, manifest.version must match the pyproject version, and tier must be user (vendor builds may also ship system-default) |
| 4 | Must declare min_ea_version or engines["encre"] |
| 5 | Packages that declare UI (provides_ui / contributes.ui) must ship it pre-compiled under ui/ and include it as package data — the install side never executes builds |
🔧 Environment Variables
- PyPI credentials:
TWINE_USERNAME/TWINE_PASSWORD(CI uses trusted publishing and needs neither) - The automatic PR requires the registry checkout to have
git remote add originand a logged-inghCLI
🌏 Community & License
- Issues and PRs are welcome!
- Main repository: https://github.com/mf2023/encre-agent
- Central registry: https://github.com/mf2023/ea-cwh
- CLI repository: https://github.com/mf2023/ea-plugin-cli
Metadata
Release files for ea-plugin-cli 0.20261001.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ea_plugin_cli-0.20261001.3.tar.gz | 18.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ea_plugin_cli-0.20261001.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.0 kB
Release files / ea_plugin_cli-0.20261001.3.tar.gz
| Download URL | ea_plugin_cli-0.20261001.3.tar.gz |
|---|---|
| Size | 18.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cc00be017661220dda19023221a8cc2f70e7a192c73a113b6181df7a35955b1
|
|
BLAKE2b-256 checksum How to use checksums |
3821f28448f21dc32ce0aee720d5ff9fd3fdadc4d912bdcc741e571d651302c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ea_plugin_cli-0.20261001.3-py3-none-any.whl
| Download URL | ea_plugin_cli-0.20261001.3-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b0e8a4ccda482299e77bc05496ed55e9e19168b14f8c2e3ebe67168d28536c9b
|
|
BLAKE2b-256 checksum How to use checksums |
688bcc8b2f2098a46b478a4e96c95335e6dc8663b10b9151a9e3040f20e5fed6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|