Skip documentation navigation
Architecture & Wire Protocol
Docs/Reference/Architecture & Wire Protocol
Architecture & Wire Protocol
avm isolates plugins as standalone processes communicating over standard input/output using a strongly typed JSON wire protocol.
Typed Wire Protocol Commands
Queries (Read)
# Metadata:
avm-plugin-<name> manifest
# Versions:
avm-plugin-<name> versions
# Env exports:
avm-plugin-<name> env-vars <version>
Lifecycle (Write)
# Install:
avm-plugin-<name> install <version>
# Uninstall:
avm-plugin-<name> uninstall <version>
# Executable:
avm-plugin-<name> executable-path <version>
Discovery and plugin development
All native providers use the same protocol: bundled executables beside avm-bin, then user-installed plugins, then the permanent legacy asdf adapter. No provider implementation is linked into the CLI.
Additional query verbs are is-installed and installed-versions. Optional resolve and install-locked verbs provide exact download metadata and checksum-verified installs. Native plugins can also expose custom commands, such as android avd.
Run avm create kotlin for template instructions. Read the plugin author guide for every wire verb, the ToolProvider contract, timeouts and release packaging.