Major Plugin Functionalities
Plugins have access to a large part of the Codebolt runtime through PluginClient. This page groups the major areas a plugin can work with.
Files, terminal, git, and project context
Plugins can work with the local workspace and execution environment using modules such as:
plugin.fsplugin.terminalplugin.gitplugin.projectplugin.projectStructureplugin.codebaseSearchplugin.codemapplugin.environment
This lets a plugin inspect files, run commands, search the repo, understand project structure, and coordinate with environments.
Chat, tasks, threads, and jobs
Plugins can participate in the live application flow using:
plugin.chatplugin.taskplugin.threadplugin.todoplugin.jobplugin.chatApiplugin.tasksApiplugin.threadsApiplugin.jobsApi
This is useful when a plugin needs to create or observe work in the same runtime the app and agents already use.
Knowledge, memory, and state
Plugins can read and write application state through:
plugin.knowledgeplugin.vectordbplugin.kvStoreplugin.memoryplugin.cbstateplugin.knowledgeApiplugin.kvStoreApiplugin.vectordbApi
That makes plugins suitable for integrations that need persistence, retrieval, or background memory storage.
Dynamic UI inside the app
Plugins can render custom surfaces inside existing Codebolt UIs using:
plugin.dynamicPanel.open()plugin.dynamicPanel.update()plugin.dynamicPanel.close()plugin.dynamicPanel.send()plugin.dynamicPanel.list()plugin.dynamicPanel.onMessage()
Use this when your plugin needs an in-app panel rather than a separate standalone frontend. For the UI side of that model, see Dynamic Panels.
Browser, calendar, mail, and external app-facing services
The plugin SDK exposes modules for application-level service integrations:
plugin.browserplugin.calendarplugin.mailplugin.eventLogplugin.notify
These are useful when building integrations that react to communication, scheduling, browser state, or application events.
MCP and hook management
Plugins can also work with extension infrastructure itself:
plugin.mcpfor listing, configuring, and executing MCP tools and servers through the serverplugin.hookandplugin.hooksApifor managing hooks through the application
This is part of why plugins sit at the application layer rather than only the agent layer.
Real-time subscriptions
Under plugin.sockets, plugins can subscribe to push-based channels such as:
- chat events
- jobs and tasks
- knowledge events
- event logs
- project structure updates
- editor and LSP channels
- system alerts
Use socket subscriptions when your plugin needs to stay attached to a live stream of app events.
Practical examples from the repo
The current built-in plugins show how these capabilities are used in practice:
cloud-pluginsubscribes to execution notifications and forwards chat and execution events to a cloud connection.remote-execution-pluginclaims the execution gateway and forwards requests to a remote provider.custom-llm-pluginregisters a custom LLM provider and answers completion requests.
Choosing the right surface
A useful rule is:
- use a module when you want runtime operations tied closely to the server message bus
- use an HTTP API when you want CRUD-style app operations
- use sockets when you want live subscriptions
- use dynamic panels when you need UI inside the existing app
- use gateway / execution / llm provider modules when you are extending core application behavior