Extend StreamSpace without modifying core code
Five powerful ways to extend StreamSpace
Add new features and UI components to the web interface. Create custom dashboards, widgets, and functionality.
React to system events like session creation, user login, hibernation, and more. Trigger automations and workflows.
Connect to external services like Slack, GitHub, Jira, monitoring systems, and custom APIs.
Customize the web interface appearance with custom colors, typography, layout, and branding.
Add custom command-line tools and scripts for advanced automation and management tasks.
Build a simple webhook plugin in minutes
// plugin.js - Slack notification plugin
module.exports = {
async onSessionCreated(session) {
// Send notification when a session is created
await fetch(this.config.slackWebhookUrl, {
method: 'POST',
body: JSON.stringify({
text: `🚀 New session created: ${session.template} for ${session.user}`
})
});
},
async onSessionHibernated(session) {
await fetch(this.config.slackWebhookUrl, {
method: 'POST',
body: JSON.stringify({
text: `💤 Session hibernated: ${session.id}`
})
});
}
};
// manifest.json
{
"name": "slack-notifications",
"version": "1.0.0",
"displayName": "Slack Notifications",
"description": "Send session events to Slack",
"type": "webhook",
"author": "Your Name",
"permissions": ["read:sessions"],
"configSchema": {
"type": "object",
"properties": {
"slackWebhookUrl": {
"type": "string",
"title": "Slack Webhook URL",
"description": "Your Slack webhook URL"
}
},
"required": ["slackWebhookUrl"]
}
}
Everything you need to build powerful extensions
Browse and install plugins directly from the web UI. One-click installation from Git repositories.
Schema-based form generation for plugin configuration. No need to build admin interfaces.
Granular permissions with risk indicators (low/medium/high). Users know what they're approving.
11+ system events to hook into: session lifecycle, user management, and more.
Key-value storage API for plugin data. Store configuration, cache, and state.
Full access to StreamSpace APIs: sessions, users, templates, and more.
Hook into these system events with webhook plugins
// Session Events
onSessionCreated(session) // Session is created
onSessionStarted(session) // Session starts running
onSessionStopped(session) // Session stops
onSessionHibernated(session) // Session hibernates (idle)
onSessionWoken(session) // Session wakes from hibernation
onSessionDeleted(session) // Session is permanently deleted
// User Events
onUserCreated(user) // New user account created
onUserUpdated(user) // User details updated
onUserDeleted(user) // User account deleted
onUserLogin(user) // User logs in
onUserLogout(user) // User logs out
Real-world plugins you can build
Send notifications to Slack channels when sessions are created, hibernated, or encounter errors.
Automatically create GitHub issues for new sessions, sync templates from repositories, track usage.
Track session usage patterns, generate reports, identify popular templates, analyze user behavior.
Apply company colors, logos, and styling to the web interface. White-label StreamSpace.
Automatically backup user home directories, sync to S3 or remote storage, schedule snapshots.
Track resource usage per user or team, generate cost reports, set budget alerts.
Comprehensive guides and API reference available