The plugin system is in beta (available in Beekeeper Studio 5.3+). We'd love your feedback!
The manifest.json file defines your plugin's metadata, capabilities, settings, and permissions. This file must be located in the root of your plugin directory.
Manifest's structure
Property
Type
Required
Description
id
string
Yes
Unique identifier for your plugin. Use lowercase letters, numbers, and hyphens only.
name
string
Yes
Display name shown to users in the Plugin Manager and UI.
author
string \| AuthorInfo
Yes
Plugin author or organization name.
description
string
Yes
Brief description of what your plugin does.
version
string
Yes
Semantic version of your plugin (e.g., "1.0.0", "2.1.5").
icon
string
No
Material UI icon name. See Material Icons for available options.
capabilities
Capabilities
Yes
Defines what views your plugin provides.
pluginEntryDir
string
No
Path to your plugin's built files relative to the plugin root. Defaults to project root.
manifestVersion
1 \| 0
No
Version of the manifest format. Defaults to 0.
minAppVersion
string
No
Minimum Beekeeper Studio version required. If not specified, all version of Beekeeper Studio are supported.
settings
unknown
No
(Planned for future releases) Configuration options that can be set via config files.
permissions
unknown
No
(Planned for future releases) List of permissions your plugin requires.
AuthorInfo
Property
Type
Required
Description
name
string
Yes
Author or organization name.
url
string
Yes
Author or organization URL.
Capabilities
Property
Type
Required
Description
views
View[]
Yes
Array of view definitions for your plugin.
View
Property
Type
Required
Description
id
string
Yes
Unique identifier for this view.
name
string
Yes
Display name shown in tabs/sidebar.
type
ViewType
Yes
Type of view.
entry
string
Yes
Path to the HTML file relative to plugin root.
ViewType
Value
Description
"shell-tab"
Tab with your plugin's iframe at the top and a collapsible result table at the bottom.
"base-tab"
Full-tab interface.
"primary-sidebar"
(Planned for future releases) Primary sidebar panel.
"secondary-sidebar"
(Planned for future releases) Secondary sidebar panel.
Basic Example
{"id":"my-database-plugin","name":"Database Analyzer","author":"Your Name","description":"Analyzes database performance and provides optimization suggestions","version":"1.0.0","manifestVersion":1,"minAppVersion":"5.4.0","icon":"analytics","capabilities":{"views":[{"id":"analyzer-tab","name":"Analyzer","type":"shell-tab","entry":"index.html"}],"menus":[{"command":"openAnalyzer","name":"Open Analyzer","view":"analyzer-tab","placement":"menubar.tools"}]}}
Type Definitions
AuthorInfo
Property
Type
Required
Description
name
string
Yes
Author or organization name.
url
string
Yes
Author or organization URL.
Capabilities
Property
Type
Required
Description
views
PluginView[]
No
Array of view definitions for your plugin.
menus
PluginMenuItem[]
No
Array of menu definitions for your plugin.
PluginView
Property
Type
Required
Description
id
string
Yes
Unique identifier for this view.
name
string
Yes
Display name shown in tabs/sidebar.
type
PluginViewType
Yes
Type of view.
entry
string
Yes
Path to the HTML file relative to plugin root.
PluginViewType
Value
Description
"plain-tab"
Tab with your plugin's iframe taking up the entire tab.
"shell-tab"
Tab with your plugin's iframe at the top and a collapsible result table at the bottom.
"primary-sidebar"
(Planned for future releases) Primary sidebar panel.
"secondary-sidebar"
(Planned for future releases) Secondary sidebar panel.
PluginMenuItem
Property
Type
Required
Description
command
string
Yes
Command or id of the menu item.
name
string
Yes
User-facing label shown in the UI for this menu item.
view
string
No
ID of a view defined in capabilities.views; the host opens a new tab of that view.
placement
PluginMenuItemPlacement
No
Location or locations in the app where this menu item should appear, expressed as a string or array of strings.
group
string
No
(Planned for future releases) Optional group identifier for sorting and grouping items within a placement.
order
number
No
(Planned for future releases) Optional numeric order for fine-grained sorting within a group, with lower numbers shown first.