When to Use: Building IDE extensions, CMS plugins, chat integrations, or any scenario where recipes need to be embedded into an existing platform with native UX.
How It Works
Plugin Mode wraps recipes in a platform-specific adapter that translates between the host platform’s API and PraisonAI’s HTTP interface.Note: PraisonAI does not include an official plugin SDK. This model documents an integration pattern for building plugins that connect to PraisonAI via HTTP.
Pros & Cons
- Pros
- Cons
- Native UX - Feels like part of the host platform
- Context-aware - Access to platform context (files, selection, etc.)
- User-friendly - No CLI or API knowledge needed
- Discoverable - Users find recipes in familiar UI
- Streaming support - Real-time feedback in UI
Step-by-Step Tutorial
1
Choose Your Platform
2
Start Recipe Runner
3
Create Plugin Manifest
4
Implement Plugin Logic
See platform-specific examples below.
VS Code Extension Example
Obsidian Plugin Example
Slack App Example
Troubleshooting
Plugin can't connect to sidecar
Plugin can't connect to sidecar
Ensure the sidecar is running and accessible:
CORS errors in browser-based plugins
CORS errors in browser-based plugins
Configure CORS on the sidecar:
Authentication issues
Authentication issues
Verify API key is configured correctly:
Slow response times
Slow response times
Consider using streaming for better UX:
Security & Ops Notes
Security Considerations
- API key storage - Use platform’s secure storage (VS Code SecretStorage, etc.)
- Input sanitization - Validate user input before sending to recipes
- Network security - Use HTTPS for remote runners
- Permissions - Request minimal permissions in plugin manifest
- Rate limiting - Implement client-side rate limiting
Plugin Distribution
Best Practices
Store credentials in the host's secure storage
Store credentials in the host's secure storage
Use VS Code
SecretStorage or the equivalent so API keys never sit in plaintext settings or source.Send only the context the recipe needs
Send only the context the recipe needs
Forward the selection or active file rather than the whole workspace to keep requests small and reduce leakage.
Stream results for responsive UX
Stream results for responsive UX
Wire the plugin to
/v1/recipes/stream so users see incremental output inside the host UI instead of a frozen progress bar.Related
Local HTTP Sidecar
Run the sidecar plugins connect to
Remote Managed Runner
Point plugins at a hosted runner

