Overview
Plugins are specialized extensions that enhance platform functionality, often with minimal UI. They focus on specific capabilities rather than standalone experiences and can integrate tightly with the core platform and other offerings.Prerequisites
Before you begin developing your plugin, ensure you have:- Created a developer account on the Vibing AI Developer Portal
- Installed the Vibing AI SDK and CLI tools
- Familiarized yourself with the key concepts
Project Initialization
Start by creating a new plugin project using the Vibing AI CLI:Plugin Configuration
The main configuration for your plugin is invibe.config.js:
Core Plugin Development
Main Plugin Implementation
The main plugin implementation is insrc/index.ts:
Implementing Hooks
Hooks are callback functions that are triggered by specific platform events. Create them in thesrc/hooks directory:
Message Pre-Send Hook (src/hooks/processOutgoingMessage.ts)
Memory Post-Write Hook (src/hooks/handleMemoryUpdate.ts)
Conversation Start Hook (src/hooks/initializeConversation.ts)
Implementing Actions
Actions are functions that can be invoked by other offerings. Create them in thesrc/actions directory:
Create Task Action (src/actions/createTask.ts)
Complete Task Action (src/actions/completeTask.ts)
Schedule Reminder Action (src/actions/scheduleReminder.ts)
Optional UI Implementation
If your plugin has UI components, create them in thesrc/ui directory:
UI Renderer (src/ui/index.ts)
Testing Your Plugin
Test your plugin using the built-in testing utilities:tests directory:
Integration with Other Offerings
Plugins often integrate with other parts of the platform:Integrating with the Vibing Super Agent
Exposing Plugin Functionality to Apps
Debugging Your Plugin
Run your plugin in development mode:Deployment & Publication
When ready to publish your plugin:Best Practices
Performance
- Make hooks and actions as efficient as possible
- Minimize memory operations
- Use appropriate caching strategies
- Avoid blocking the main thread
Integration
- Provide clear documentation for actions
- Follow platform hook contracts precisely
- Handle errors gracefully
- Use standardized event patterns
Security
- Request minimal permissions
- Validate all inputs from other offerings
- Never expose sensitive data in responses
- Follow secure coding practices
User Experience
- Keep UI components lightweight and focused
- Provide clear feedback for user actions
- Use consistent naming conventions
- Follow platform design guidelines for any UI elements
Troubleshooting
Common Issues
Issue: Hooks aren’t being triggered. Solution: Verify the hook is correctly registered in bothvibe.config.js and your plugin implementation.
Issue: Actions return “Permission Denied” errors.
Solution: Check that your plugin is requesting and receiving the necessary permissions.
Issue: Memory updates don’t persist.
Solution: Ensure you’re using the correct memory scopes and have appropriate permissions.