18. Plugins and extensions

AVL Code can be extended further through plugins.

18.1 What plugins do

  • One-shot install of a set of skills.
  • One-shot install of a set of hooks.
  • Plug in a set of external tool services (MCP servers).
  • Provide their own assistant personas.
  • Provide their own workspace templates.

18.2 Plugin marketplace

The Settings → Plugins panel has two layers:

  • Market view: add / switch plugin sources, browse the plugin gallery (filter by category or disclosed capability), and install / enable / disable with one click. Delete goes through an inline confirmation (no modal) to avoid accidental deletion.
  • Installed view: lists plugins installed under the current account; toggle, uninstall, see version and author. Navigate between the two layers via a breadcrumb.

18.2.1 Claude Code plugin compatibility

AVL Code ships with a built-in CC plugin adapter that consumes Claude Code's community plugin catalogue directly:

  • Reference syntax: github@claude-plugins-official (the official catalogue), owner/repo for direct git pulls — all recognised.
  • The adapter translates the CC plugin structure into AVL Code's native format; no manual conversion required.

18.2.2 Pre-install confirmation dialog

Every install pops a confirmation dialog that lays out:

  • Source provenance: which marketplace, source-code repo URL, version, author, homepage.
  • Commands to be run: what the install script does and where it installs.
  • Capability list: which skills / hooks / MCP servers will be registered and what permissions each needs.
  • Signature info: whether the plugin is signed and whether the signature verifies.

Inspect, then click Install — no more installing plugins of unknown provenance.

Source trust at a glance: plugin cards carry a source-trust shield next to the author (the same marker as the plugin store), showing the source's trust status directly; model-provider entries reuse their owning plugin's brand icon, and the "Plugin" badge is a neutral outlined style.

Import identity comes from the signed manifest: when importing a plugin from a zip, the plugin name is taken from the signed manifest, not the zip filename — a filename can't impersonate a plugin's identity; importing a zip that shares a name with an existing plugin no longer silently reuses the old directory, avoiding the "import succeeded but nothing changed" illusion.

18.2.3 Check for updates and upgrade

Installed plugins can keep up with upstream updates:

  • Refresh a marketplace from source: an added marketplace source can be re-fetched (git re-pull, or re-parse for a local source); after refreshing, the marketplace view surfaces each plugin's installed version and an "Upgradable" marker, and you can upgrade straight from the marketplace row or card.
  • "Check for updates" for installed plugins: the plugin list header has a "Check for updates" entry that finds upgradable installed plugins; a plugin with an update shows an "Update available" badge and an Upgrade button on its card.
  • Safer upgrades: version comparison is semver-first with a diff fallback; the plugin directory is cleared before upgrade to avoid stale components; the marketplace cache uses an atomic swap that safely rolls back on failure.
  • Real progress you can see: install / upgrade / preview / update / add operations show an inline progress bar parsing the real git-clone download progress; the update / check-for-updates buttons are an in-place spinning refresh icon.

18.2.4 Ready-to-use catalogue of typical plugins

The repository ships 22 typical plugins, usable as installed (all with official brand icons and signed manifests):

  • 15 model providers: DeepSeek, OpenRouter, OpenCode Zen, OpenCode Go, MiniMax, Xiaomi MiMo (pay-as-you-go and Token Plan editions), Zhipu, Moonshot Kimi, Qwen, Doubao, Ollama (local), SiliconFlow, StepFun, plus an OpenAI-compatible template (edit its Base URL / key to reach any compatible endpoint). Install the plugin → enter a key → pick the models on the Models page; the unified term is "model provider".
  • Zhihu toolkit: in-site search / web-wide search / trending-list tools backed by the official open-platform API.
  • 4 native-capability demos (security-analysis themed): a toolset (sec-toolkit), audit hooks (audit-guard-hooks), notification channels (notify-channels) and security-analysis skills (sec-analysis-skills) — showing how to write each of the four capability kinds: tools / hooks / channels / skills.
  • 2 Claude Code compatible-format demos: a security-expert persona (agents + commands) and a DevOps suite (mcp + hooks), showing how the CC plugin structure is consumed directly by the adapter.

18.2.5 Manage plugins from the conversation (plugin-management tool group)

The assistant can run the plugin lifecycle right inside a conversation, via four tools:

Tool Purpose
PluginSearch Search the marketplace catalogue (global, read-only)
PluginList List installed / installable plugins
PluginInstall Install and activate in the current workspace
PluginUninstall Uninstall and clean up in sync

Write operations (install / uninstall) go through two-step confirmation: the first step returns a dry_run preview (capability list, real MCP command lines, signature status, source provenance); only after you agree does it actually land — the same confirmation gate as external-service onboarding. Once an install / uninstall completes, the plugin panel refreshes in real time, no manual sync needed.

18.3 Toggle

Each plugin can be toggled independently in Settings → Plugins. Disabling just stops it from taking effect; config is preserved for one-click re-enable.

18.3.1 Active by default in every workspace

Globally installed plugins are enabled by default in each workspace (you can disable per-workspace if needed); installing from the marketplace activates the plugin in the current workspace immediately — no more "installed but doesn't take effect" ambiguity.

18.4 Team marketplace (optional)

Organisation admins can run an internal plugin marketplace with unified review and distribution. Plain users see the team-exclusive plugins by switching market source in Settings → Plugins.

18.5 Plugin skills and hooks actually work

  • Skills carried by a plugin are copied into the workspace on install — visible via skill.list, callable via skill.invoke. They persist across workspace switches, reopens, and registry rebuilds.
  • Hook scripts carried by a plugin are placed correctly on install. The hook-root environment variable (CLAUDE_PLUGIN_ROOT) now points at the plugin directory, so SessionStart and tool-trigger hooks fire reliably.

18.6 Product announcements

AVL Code surfaces official announcements:

  • When no workspace is open: shown as a banner at the top.
  • When a workspace is open: shown as a full-width strip right above the input box.
  • Click the banner / strip to open a detail layer; regular announcements and alerts are colour-coded.
  • Supports mark-as-read per item or all-read at once; the state is remembered locally so you aren't pestered repeatedly.

18.7 User feedback

A new "Feedback" entry is reachable three ways:

  • Settings → Feedback tab — shows the "My Feedback" list only; the "New Feedback" button at the top right opens a dialog to submit (opening from Settings does not auto-screenshot the window)
  • A global top-bar entry (the ✉-with-question-mark icon) — auto-screenshots the current window as an attachment
  • The header command palette (Cmd/Ctrl+K)

Fill in: category, description, contact. Real-name when signed in, anonymous when not.

Attachments:

  • Auto-screenshots the current window by default to help describe the issue. Can be turned off in Settings → Feedback → "Auto-screenshot the current window before submitting feedback" (on by default; existing configs default to on). With it off, opening the dialog from the top-bar megaphone simply gives you an empty-attachment form.
  • You can also attach your own files, session exports or diagnostic reports.
  • Each attachment is size-pre-checked: over-limit ones are skipped silently without blocking the submission.
  • Attachments ≤ 1 MiB are SM3-hashed for deduplication — identical bytes are uploaded only once.
  • Non-image attachments (logs / documents / diagnostic reports) are wrapped in a password-protected zip with the password infected before upload, following the standard malware-sample transport convention so intermediate scanners don't quarantine them.

Submission:

  • A real-time upload progress bar appears during submission.
  • Transient network or server hiccups are retried with exponential backoff; on failure you get the actual reason (not a generic error) plus "Retry / Abandon" options.
  • Text-only feedback now submits cleanly: without an attachment, the empty attachment field is no longer sent, so the server no longer rejects the submission.

"My Feedback": see the status and customer-service replies for each submitted item.