A unified plugin distribution for AstrBot maintained by MinaraAgent.
This monorepo provides a single plugin installation that includes multiple sub-plugins. Users can install astrbot-plugins once and configure all sub-plugins through the AstrBot WebUI with namespaced configuration.
| Sub-Plugin | Description | Version |
|---|---|---|
| langfuse | Langfuse integration for LLM observability | 1.0.2 |
| discord-forwarder | Discord message forwarding plugin | 1.2.1 |
| video-vision | Video frame extraction for vision models | 1.1.0 |
Install the meta-plugin to get all sub-plugins at once:
-
Install the plugin
- Copy the entire
astrbot-pluginsdirectory to your AstrBotdata/plugins/folder - Or install via AstrBot WebUI (if supported)
- Copy the entire
-
Configure via WebUI
- Open AstrBot WebUI
- Navigate to Extensions → astrbot_plugins
- Configure each sub-plugin in its namespace:
enabled_plugins: Select which sub-plugins to enablelangfuse.*: Configure Langfuse integrationdiscord-forwarder.*: Configure Discord forwarding rulesvideo-vision.*: Configure video analysis settings
-
Restart AstrBot (or reload plugins)
Each sub-plugin can still be installed individually if needed:
# Navigate to the specific plugin directory
cd packages/[plugin-name]/
# Copy to your AstrBot plugins directory
cp -r . /path/to/astrbot/data/plugins/[plugin-name]/After installation, the following commands are available:
/astrbot_plugins_status- Show status of all sub-plugins/astrbot_plugins_enable <plugin>- Enable a specific sub-plugin/astrbot_plugins_disable <plugin>- Disable a specific sub-plugin
Each sub-plugin also provides its own commands:
- Langfuse:
/langfuse_status,/langfuse_flush - Discord Forwarder:
/forward_status,/forward_test - Video Vision:
/video_vision_status,/video_vision_enable,/video_vision_disable
Example configuration via WebUI:
{
"enabled_plugins": ["langfuse", "discord-forwarder", "video-vision"],
"langfuse": {
"enabled": true,
"secret_key": "lfs-xxx",
"public_key": "pk-xxx",
"base_url": "https://cloud.langfuse.com"
},
"discord-forwarder": {
"enabled": true,
"forward_rules": [
{
"platform_id": "discord",
"source_channel_id": "123456",
"destination_channel_id": "789012",
"enabled": true
}
]
},
"video-vision": {
"enabled": true,
"max_frames": 5,
"frame_format": "jpg"
}
}astrbot-plugins/
├── main.py # Meta-plugin entry point (loads all sub-plugins)
├── metadata.yaml # Meta-plugin metadata
├── _conf_schema.json # Unified configuration schema
├── packages/ # Sub-plugin packages
│ ├── langfuse/ # Langfuse integration
│ ├── discord-forwarder/ # Discord message forwarding
│ └── video-vision/ # Video processing for vision
├── scripts/ # Shared build and development scripts
├── docs/ # Shared documentation
└── .github/ # GitHub workflows and templates
- Create a new directory in
packages/ - Follow the standard AstrBot plugin structure:
main.py- Plugin class inheriting fromStarmetadata.yaml- Plugin metadatarequirements.txt- Python dependencies
- Add the sub-plugin to
main.pyin theSUB_PLUGINSdictionary - Add the plugin's configuration to
_conf_schema.jsonunder a new namespace - Update this README with the new plugin information
# Update a specific sub-plugin
cd packages/[plugin-name]
# Make changes and commit
# Update all sub-plugins (run from root)
npm run update:all# Run tests for all sub-plugins
npm test
# Run tests for a specific sub-plugin
npm test --workspace=packages/[plugin-name]All sub-plugins in this repository follow the AstrBot plugin standard:
- main.py - Main plugin code with
@registerdecorator - metadata.yaml - Plugin metadata (name, author, version, description)
- requirements.txt - Python dependencies
- README.md - Plugin documentation
- CHANGELOG.md - Version history
The meta-plugin provides:
- Unified entry point via
main.pyat the root - Namespaced configuration via
_conf_schema.json - Automatic loading and lifecycle management for all sub-plugins
- Event delegation to enabled sub-plugins
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
Each plugin may have its own license. Please refer to the individual plugin directories for license information.
See CHANGELOG.md for repository-level changes.
The astrbot-plugins meta-plugin provides:
- Single Installation: Users install one plugin to get all functionality
- Namespaced Configuration: Each sub-plugin has its own config namespace
- Independent Enable/Disable: Users can enable specific sub-plugins via WebUI
- Event Delegation: The meta-plugin receives events and delegates to enabled sub-plugins
- Lifecycle Management: Automatic initialization and termination of sub-plugins
User (WebUI)
↓
astrbot_plugins (meta-plugin)
├── enabled_plugins: ["langfuse", "discord-forwarder"]
├── langfuse.*
├── discord-forwarder.*
└── video-vision.*
↓
Sub-plugins (loaded and managed by meta-plugin)
This design follows the AstrBot plugin standard while providing a unified experience for users and easier maintenance for developers.