Skip to content
LVIS AI
EN|KO

Host · Chat

The Plugin Panel Inside Chat

Active plugins are surfaced in the sidebar. Each plugin exposes its entry points through its manifest's ui[] slots and keywords (Skill triggers). The host core never imports plugin-specific code directly.

Plugin panel callable from chat (skills, tools)

Skill keywords

A Skill card is auto-suggested when a registered keyword appears in the chat input. The only runtime registration API is hostApi.registerKeywords.

ui[] slots

plugin.json's ui[] declares slot (sidebar/chat/popover/embedded) · kind (embedded-module/url) · entry · exportName · window.

Tools list

Tools are statically declared in the manifest's tools[]. Handlers live in the RuntimePlugin.handlers map. Tool name regex: ^[a-zA-Z_][a-zA-Z0-9_]*$.

Naming conventions — three namespaces

  • LLM tool names: ^[a-zA-Z_][a-zA-Z0-9_]*$ (src/plugins/runtime/manifest-validation.ts:289). No leading digits or dashes — a common vendor requirement (OpenAI / Gemini / Claude alike).
  • Skill / agent / session id: separate — ^[a-zA-Z0-9_-]+$ (src/core/skill-store.ts:30). Dashes allowed.
  • Plugin id: typically kebab-case (e.g. local-indexer, ms-graph). The manifest's id field.
There's no runtime registration API
At host boot, src/boot.ts:703-736 registers every plugin manifest's tools[] into the Tool Registry. There is no API to add tools dynamically at runtime — changing tools requires redeploying and restarting the plugin.