Skip to content

plugin-alias

Placement compiled-in (in-process)
Source github.com/opencharly/plugin-alias/candy/plugin-alias
Version 2026.193.1052
Candy plugin-alias

This plugin is listed in charly/charly.yml’s compiled_plugins:, so its providers are compiled into the charly binary and register in-process.

The reserved words this plugin serves:

  • alias — command class

The charly alias … CLI — the host command alias manager, a COMMAND-class charly plugin (github.com/opencharly/sdk). charly alias add/install/list/remove/uninstall create and manage ~/.local/bin wrapper scripts that shell into a box (each wrapper runs charly shell <box> -c "<command> …"), so a box’s tools are reachable as plain host commands. COMPILED-IN, it dispatches IN-PROC via Invoke(OpRun) (kong-parse the AliasCmd tree), so the handlers own charly’s real stdio; add (image-exists guard) and install (read the baked ai.opencharly.alias label) reach the host over the generic HostBuild(“cli”) reverse channel by re-running charly box labels …. Placement-invisible (F8): the SAME provider compiles into charly or serves out-of-process.

The CUE schema below is the authoritative grammar for this plugin’s input. It is the same single source that generates the plugin’s Go parameter types and answers the runtime Describe RPC, so this page cannot disagree with either.

// plugin-alias's OWN self-contained CUE schema — the plugin's declaration
// surface, used two ways exactly like every other plugin's schema (there is
// no schema-less plugin):
//
// 1. SERVE over Describe — the host splices `base ++ plugin` at the load gate, so the
// plugin's declarations travel WITH it and a self-contained schema that will not
// splice is a LOUD load failure.
// 2. DOCUMENT the plugin's published surface — the reference site's per-plugin page is
// rendered from its providers, this schema, and the candy description.
//
// command:alias's authored input is its pass-through CLI grammar (the OpRun `{args:
// [...]}` envelope), so this schema DOCUMENTS the command contract rather than a
// structured plugin_input. SELF-CONTAINED: it references no base def, so it compiles
// STANDALONE (the property that lets the SDK compile it serve-side).
#AliasPlugin: {
// The declared capability words (the plugin.providers surface), recorded here as
// part of the plugin's published declaration surface.
providers: [...string]
// The command word the plugin serves.
command: "alias"
// The subcommands of the `charly alias` CLI tree.
subcommands: ["add", "install", "list", "remove", "uninstall"]
// What the command does, in one line (the public-docs surface).
contract: string & !=""
// The configuration surface: env var names the plugin reads, recorded here as part
// of the plugin's published declaration surface.
config?: [string]: string
}

See also the candy reference for this candy’s install surface.