跳到主要内容

Managing Extensions via CLI

The Aethrix CLI provides a full workflow for discovering, downloading, installing, and publishing extension packages — both from local files and from remote repositories.

Repository Configuration​

The extension repository URL is read from Settings → Extension Repository in Aethrix Studio, or overridden per-command with --repo.

# Use the configured repository
aeth package list

# Override with a specific repository
aeth package list --repo https://extensions.example.com

Discovering Packages​

List All Packages​

aeth package list
aeth package list --page 2 --page-size 20
aeth package list --pre-release

Search by Keyword​

aeth package search "payment"
aeth package search "kafka" --repo https://extensions.example.com

Search matches package ID, name, description, and tags.

Inspecting Packages​

aeth package view Vendor.PaymentGateway
aeth package view Vendor.PaymentGateway --version 1.0.0

Shows full metadata:

  • Name, version, pre-release flag
  • Summary and description
  • Developer and type
  • Publish date and download count
  • Package size
  • Tags and available versions

Downloading Packages​

Download a .pkg file to disk without installing:

aeth package download Vendor.PaymentGateway
aeth package download Vendor.PaymentGateway --version 1.2.0
aeth package download Vendor.PaymentGateway --output ./local-packages

If --output is a directory, the file is saved as {id}-{version}.pkg inside it. If omitted, the current directory is used.

Installing Extensions​

From a Local File​

aeth install ./MyExtension.1.0.0.pkg
aeth install ./MyExtension.1.0.0.pkg --force

From a Repository​

aeth install Vendor.PaymentGateway # Latest version
aeth install Vendor.PaymentGateway --version 1.0.0
aeth install Vendor.PaymentGateway --repo ./local-repo

Uninstalling​

aeth uninstall Vendor.PaymentGateway
aeth uninstall Vendor.PaymentGateway --force # Skip confirmation

Listing Installed Extensions​

aeth list-extensions

Alias: aeth list. Displays each installed extension's ID, name, version, developer, type, source, repository (if applicable), summary description, services list, pre-release flag, and error message (if the extension failed to load due to a missing protocol dependency).

Publishing​

To a Local Repository​

aeth publish ./MyExtension.1.0.0.pkg --repo ./local-repo

To a Remote Repository​

aeth package upload ./MyExtension.1.0.0.pkg --repo https://extensions.example.com

Remote upload requires authentication. See Pipeline Authentication.

Building Packages from an API Extension Project​

An API Extension Project (*.aep) — the document Studio's API Extension designer authors — can also be driven from CI, without Studio. The two verbs are apiext analyze (re-import the specs recorded in the project) and apiext pack (produce the distributable .pkg):

# 1. Refresh the project from its recorded spec sources, and save it
aeth apiext analyze Module-A.aep

# 2. Pack it — the package carries the project's metadata (id, tags, visibility, icon, changelog)
aeth apiext pack Module-A.aep --version 2.1.0 -o ./pkg

# 3. Publish it to the repository
aeth package upload ./pkg/Module-A-2.1.0.pkg

Each project group runs this loop for its own module and consumes the other groups' packages with aeth install: the module under test is installed as the driver, and the APIs it depends on are installed as stubs that service simulation can serve. --version overrides the project's AutoVersion date scheme for that one build; the .aep itself is never rewritten by pack, and a failed re-import leaves it byte-identical. See the Command-Line Reference for the full option tables.

Complete Workflow Example​

# 1. Find a package
aeth package search "graphql"

# 2. Inspect details
aeth package view Vendor.GraphQLClient

# 3. Download the package
aeth package download Vendor.GraphQLClient --output ./downloads

# 4. Install it
aeth install ./downloads/Vendor.GraphQLClient-1.0.0.pkg

# 5. Verify installation
aeth list-extensions

# 6. Uninstall when no longer needed
aeth uninstall Vendor.GraphQLClient --force

See Also​