Open-core workflow engine powering Bubble Lab — and fully runnable, hostable, and extensible on its own.
See the codeUse Bubble Lab Platform • View Demos • Documentation


Bubble Lab is a Slack-native AI operator platform that helps teams automate operational work directly inside Slack using Pearl, its AI assistant.
Instead of switching between tools, teams can ask Pearl to execute workflows, access systems, and perform tasks across their stack.
This repository contains the open-core workflow engine that powers the Bubble Lab platform.
It is the same execution engine used internally by Bubble Lab — and can also be run, hosted, and extended independently.
This makes it suitable for:
You can use Bubble Lab in two ways:
Use the fully managed platform with:
You can run and host the workflow engine independently.
This allows you to:
Everything in this repository is fully functional and production-ready.
The open-core engine includes:
This is the infrastructure layer that powers Bubble Lab and Pearl.
No setup required:
Run Bubble Studio locally in 2 commands:
# 1. Install dependencies
pnpm install
# 2. Start everything
pnpm run dev
Open http://localhost:3000 and you can now build, edit, and run workflows locally!
⚠️ Note: To create flow with pearl (our ai assistant), you'll need API keys (GOOGLE_API_KEY). By default gemini-3.0-pro is used for generation and code edits use fast find-and-replace. Weaker model is not well tested and can lead to degraded/inconsistent performance. See CONTRIBUTING.md for detailed setup instructions.
Get started with BubbleLab in seconds using our CLI tool:
npx create-bubblelab-app
This will scaffold a new BubbleLab project with:
Next steps after creation:
cd my-agent
npm install
npm run dev
Let's look at what BubbleFlow code actually looks like using the reddit-scraper template:
The Flow (reddit-news-flow.ts) - Just ~50 lines of clean TypeScript:
export class RedditNewsFlow extends BubbleFlow<'webhook/http'> {
async handle(payload: RedditNewsPayload) {
const subreddit = payload.subreddit || 'worldnews';
const limit = payload.limit || 10;
// Step 1: Scrape Reddit for posts
const scrapeResult = await new RedditScrapeTool({
subreddit: subreddit,
sort: 'hot',
limit: limit,
}).action();
const posts = scrapeResult.data.posts;
// Step 2: AI analyzes and summarizes the posts
const summaryResult = await new AIAgentBubble({
message: `Analyze these top ${posts.length} posts from r/${subreddit}:
${postsText}
Provide: 1) Summary of top news, 2) Key themes, 3) Executive summary`,
model: { model: 'google/gemini-2.5-flash' },
}).action();
return {
subreddit,
postsScraped: posts.length,
summary: summaryResult.data?.response,
status: 'success',
};
}
}
What happens when you run it:
$ npm run dev
✅ Reddit scraper executed successfully
{
"subreddit": "worldnews",
"postsScraped": 10,
"summary": "### Top 5 News Items:\n1. China Halts US Soybean Imports...\n2. Zelensky Firm on Ukraine's EU Membership...\n3. Hamas Demands Release of Oct 7 Attackers...\n[full AI-generated summary]",
"timestamp": "2025-10-07T21:35:19.882Z",
"status": "success"
}
Execution Summary:
Total Duration: 13.8s
Bubbles Executed: 3 (RedditScrapeTool → AIAgentBubble → Return)
Token Usage: 1,524 tokens (835 input, 689 output)
Memory Peak: 139.8 MB
What's happening under the hood:
Key Features:
.action()Learn how to use each bubble node and build powerful workflows:
👉 Visit BubbleLab Documentation
The documentation includes:
⚠️ UPDATE (January 20, 2026): We are no longer accepting code contributions or pull requests at this time. However, we still welcome and encourage:
- 🐛 Bug reports - Help us identify issues
- 💬 Feature requests - Share your ideas for improvements
- 🗨️ Community discussions - Join conversations in Discord
- 📖 Documentation feedback - Suggest improvements to our docs
Thank you to everyone who has contributed and shown interest in Bubble Lab!
Get involved:
This repository contains the open-core components of Bubble Lab and is licensed under Apache 2.0. The Bubble Lab platform, Pearl, and hosted infrastructure include additional proprietary components not included in this repository.
1,062 followers · starred Nov 2025
662 followers · starred Nov 2025
253 followers · starred Dec 2025
170 followers · starred Dec 2025
Open-core workflow engine powering Bubble Lab — and fully runnable, hostable, and extensible on its own.
See the codeUse Bubble Lab Platform • View Demos • Documentation


Bubble Lab is a Slack-native AI operator platform that helps teams automate operational work directly inside Slack using Pearl, its AI assistant.
Instead of switching between tools, teams can ask Pearl to execute workflows, access systems, and perform tasks across their stack.
This repository contains the open-core workflow engine that powers the Bubble Lab platform.
It is the same execution engine used internally by Bubble Lab — and can also be run, hosted, and extended independently.
This makes it suitable for:
You can use Bubble Lab in two ways:
Use the fully managed platform with:
You can run and host the workflow engine independently.
This allows you to:
Everything in this repository is fully functional and production-ready.
The open-core engine includes:
This is the infrastructure layer that powers Bubble Lab and Pearl.
No setup required:
Run Bubble Studio locally in 2 commands:
# 1. Install dependencies
pnpm install
# 2. Start everything
pnpm run dev
Open http://localhost:3000 and you can now build, edit, and run workflows locally!
⚠️ Note: To create flow with pearl (our ai assistant), you'll need API keys (GOOGLE_API_KEY). By default gemini-3.0-pro is used for generation and code edits use fast find-and-replace. Weaker model is not well tested and can lead to degraded/inconsistent performance. See CONTRIBUTING.md for detailed setup instructions.
Get started with BubbleLab in seconds using our CLI tool:
npx create-bubblelab-app
This will scaffold a new BubbleLab project with:
Next steps after creation:
cd my-agent
npm install
npm run dev
Let's look at what BubbleFlow code actually looks like using the reddit-scraper template:
The Flow (reddit-news-flow.ts) - Just ~50 lines of clean TypeScript:
export class RedditNewsFlow extends BubbleFlow<'webhook/http'> {
async handle(payload: RedditNewsPayload) {
const subreddit = payload.subreddit || 'worldnews';
const limit = payload.limit || 10;
// Step 1: Scrape Reddit for posts
const scrapeResult = await new RedditScrapeTool({
subreddit: subreddit,
sort: 'hot',
limit: limit,
}).action();
const posts = scrapeResult.data.posts;
// Step 2: AI analyzes and summarizes the posts
const summaryResult = await new AIAgentBubble({
message: `Analyze these top ${posts.length} posts from r/${subreddit}:
${postsText}
Provide: 1) Summary of top news, 2) Key themes, 3) Executive summary`,
model: { model: 'google/gemini-2.5-flash' },
}).action();
return {
subreddit,
postsScraped: posts.length,
summary: summaryResult.data?.response,
status: 'success',
};
}
}
What happens when you run it:
$ npm run dev
✅ Reddit scraper executed successfully
{
"subreddit": "worldnews",
"postsScraped": 10,
"summary": "### Top 5 News Items:\n1. China Halts US Soybean Imports...\n2. Zelensky Firm on Ukraine's EU Membership...\n3. Hamas Demands Release of Oct 7 Attackers...\n[full AI-generated summary]",
"timestamp": "2025-10-07T21:35:19.882Z",
"status": "success"
}
Execution Summary:
Total Duration: 13.8s
Bubbles Executed: 3 (RedditScrapeTool → AIAgentBubble → Return)
Token Usage: 1,524 tokens (835 input, 689 output)
Memory Peak: 139.8 MB
What's happening under the hood:
Key Features:
.action()Learn how to use each bubble node and build powerful workflows:
👉 Visit BubbleLab Documentation
The documentation includes:
⚠️ UPDATE (January 20, 2026): We are no longer accepting code contributions or pull requests at this time. However, we still welcome and encourage:
- 🐛 Bug reports - Help us identify issues
- 💬 Feature requests - Share your ideas for improvements
- 🗨️ Community discussions - Join conversations in Discord
- 📖 Documentation feedback - Suggest improvements to our docs
Thank you to everyone who has contributed and shown interest in Bubble Lab!
Get involved:
This repository contains the open-core components of Bubble Lab and is licensed under Apache 2.0. The Bubble Lab platform, Pearl, and hosted infrastructure include additional proprietary components not included in this repository.
1,062 followers · starred Nov 2025
662 followers · starred Nov 2025
253 followers · starred Dec 2025
170 followers · starred Dec 2025