Fuenzer Bot:結合 Gemma 與 ElevenLabs 的全渠道晨間聊天樹懶管家
Fuenzer Bot: The Omnichannel Sloth Butler for Morning Chat Catch-ups with Gemma & ElevenLabs
Fuenzer Bot 是一款同時在 WhatsApp、Telegram、Discord 和 Slack 運作的個人助理,利用 Google Gemma 4(google/gemma-4-26b-a4b-it)整理羣組訊息,提取重點及待辦事項。它會透過 ElevenLabs 將摘要合成 30 秒語音訊息,發送至用戶的私人聊天。
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
In celebration of International Sloth Day and Hacktoberfest Week 3's "Slow and Steady" theme, I built an automated, ultra-lazy personal productivity assistant: Fuenzer Bot.
The Problem: Morning Doomscrolling Fatigue
Every morning, we wake up to hundreds of unread messages across various group chats (work, family, developer communities, and friend circles). Catching up means spending 20 to 30 minutes reading through banter, noise, stickers, and scattered plans just to find out if anything actually required our attention.
The Solution: The "Sloth Morning Briefing"
Fuenzer Bot is a high-availability, omnichannel bot that runs concurrently across WhatsApp, Telegram, Discord, and Slack. It passively buffers incoming group messages overnight and wakes up before you do.
Instead of forcing you to comb through chaotic chat logs:
- Google Gemma acts as a personal Sloth Butler, filtering out chatter and condensing hundreds of messages into an executive Sloth TL;DR and action item checklist.
- ElevenLabs turns that summary into a calm, soothing 30-second voice note delivered directly to your private chat. You don't even need to open your eyes in bed to catch up on everything that happened while you were asleep.
-
Browserbase gives you an autonomous cloud browsing agent via
/browse <url>. If someone drops a link to a long article or documentation, the bot spins up a headless cloud session, blocks ads, solves captchas, captures a viewport screenshot, and extracts a clean reading excerpt without opening a bloated desktop browser.
Preview
Fuenzer Bot operates seamlessly across all four major chat platforms simultaneously from a single unified backend:
| WhatsApp (Baileys) | Telegram (Telegraf) |
|---|---|
![]() |
![]() |
| Discord (discord.js) | Slack (Bolt Socket Mode) |
![]() |
![]() |
Live Interactive Capabilities:
-
Daily Sloth Briefing (
/summarizeor Scheduled Cron):- Delivers a structured breakdown:
- 🦥 Sloth TL;DR: 2–3 sentences of core highlights.
- 🎯 Key Action Items & Mentions: Decisions made, tasks assigned, and urgent pings.
- 📊 Chatter Snapshot: Signal-to-noise ratio so you know how productive the chat was.
- Automatically sends an ElevenLabs Audio Voice Note attachment directly into WhatsApp and Telegram.
-
Headless Cloud Web Agent (
/browse <url>):- Dispatches an ephemeral cloud browser on Browserbase to navigate JavaScript-heavy sites.
- Sends back a crisp viewport screenshot and key body text snippet directly in your chat thread.
-
Natural Language Conversational Agent:
- Conversational intent router capable of recording financial expenses, checking live weather, calculating prayer schedules, and searching books without memorizing rigid slash commands.
Code
Yogs4R
/
fuenzer-bot
An intelligent omnichannel personal bot across WhatsApp, Telegram, Discord, and Slack powered by open-source AI and voice synthesis
Fuenzer Bot
The Autonomous Omni-Channel Personal Productivity Assistant
Runs concurrently on WhatsApp, Telegram, Discord & Slack · Powered by Node.js, Supabase, and Serverless AI
About • Preview • Features • Commands • Installation • Architecture • CI/CD • PRD
English | Bahasa Indonesia
What is Fuenzer Bot?
Fuenzer Bot is a high-availability, standalone virtual assistant engineered to increase daily productivity by bringing financial management, multi-modal AI reasoning, document processing, and server monitoring directly into your everyday chat apps (WhatsApp, Telegram, Discord & Slack) with zero context switching.
- 🔄 Omni-Channel Architecture: Operates simultaneously on WhatsApp (via Baileys), Telegram (via Telegraf), Discord (via discord.js), and Slack (via Bolt Socket Mode).
-
🌐 Bilingual & Internationalized: Default English (
en) for global evaluation with native Indonesian (id) support via/lang [en|id]and 1-to-1 bilingual command aliases. - 🦥 Automated Morning Briefings (Gemma & ElevenLabs): Passively buffers group chat clutter and delivers scheduled…
- Repository: https://github.com/Yogs4R/fuenzer-bot
- License: MIT
- Tech Stack: Node.js (v20 LTS), Baileys (WhatsApp), Telegraf (Telegram), Discord.js, @slack/bolt, Supabase (PostgreSQL), Playwright Core, and PM2.
How I Built It
Fuenzer Bot is architected around the idea of effortless automation, modularity, and strict privacy.
┌───────────────────────────────────────────────┐
│ Inbound Messages │
│ (WhatsApp, Telegram, Discord, Slack) │
└───────────────────────┬───────────────────────┘
│
▼
┌───────────────────────────────────────────────┐
│ Buffer Pipeline (AES-256-GCM Encrypted) │
│ Supabase 'chat_buffer' (24h TTL) │
└───────────────────────┬───────────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ Scheduled / On-Demand │ On-Demand /browse │
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
│ Google Gemma │ │ ElevenLabs │ │ Browserbase │
│ (Reasoning & Filtering) │ │ (Voice Note Synthesis) │ │ (Cloud Web Sandbox) │
│ - Sloth Butler Persona│ │ - Speech Sanitization │ │ - Anti-bot / Captcha │
│ - Actionable Extraction│ │ - Audio Buffer Stream │ │ - Viewport Screenshot │
└─────────────────────────┘ └─────────────────────────┘ └─────────────────────────┘
1. Google Gemma: The Sloth Butler Intelligence
At the heart of the summarization pipeline (src/services/summarizeService.js) sits Google Gemma 4 (google/gemma-4-26b-a4b-it).
Chat conversations are messy—filled with fragments, slang, reactions, and typos. Gemma's strong reasoning capabilities allow it to execute nuanced signal-to-noise filtering. I engineered a specialized "Sloth Butler" system prompt that instructs Gemma to:
- Ignore casual banter, greetings, memes, and sticker reactions.
- Identify explicit decisions, deadlines, meetings, and mentions.
- Group discussions by topic rather than chronological timestamp.
- Output a clean, predictable markdown format with bilingual awareness (English and Indonesian).
2. ElevenLabs: Hands-Free Voice Note Briefing
Reading a screen right when your alarm goes off causes instant eye strain. Using ElevenLabs Multilingual v2 (src/services/elevenLabsService.js) with the calming Rachel persona, Fuenzer Bot takes the generated summary and converts it into a high-fidelity voice note.
-
Intelligent Speech Preprocessing: Raw AI summaries contain markdown asterisks, URLs, backticks, bullet symbols, and emojis that sound terrible when read verbatim by a TTS engine. The bot's
cleanTextForSpeech()function strips all non-verbal syntax and parses the text into natural spoken cadence. - Native Chat Audio Buffering: The audio stream is synthesized directly into memory buffers and pushed to WhatsApp as a native PTT (Push-To-Talk) voice note and Telegram as an audio message.
3. Browserbase: Effortless Remote Web Surfing
When someone shares a website link or documentation article in a chat, you shouldn't have to leave your messaging app. With /browse <url> (src/services/browserbaseService.js):
- Fuenzer Bot requests an on-demand cloud browser session via the Browserbase REST API with built-in ad-blocking and captcha-solving enabled (
solveCaptchas: true,blockAds: true). - It connects to the remote browser instance via Playwright Core over Chrome DevTools Protocol (CDP).
- It snaps a high-definition viewport JPEG of the rendered page and extracts an article summary excerpt, forwarding both back to the user's chat along with a live session inspector link.
4. Privacy-First Buffer Architecture
To summarize chats across an entire day or night, messages must be buffered. To guarantee user privacy:
- Inbound messages are encrypted at rest in Supabase using AES-256-GCM with unique initialization vectors (
iv:authTag:ciphertext). - An automated cron job (
src/jobs/bufferCleanupCron.js) runs continuously to hard-delete any chat records older than 24 hours.
Why Does Open Innovation Matter?
Open innovation is fundamental to building an assistant that people can actually trust with their daily personal communication.
- Privacy and Sovereign Control: Chat logs are deeply personal. With open-weights models like Gemma, developers are not locked into opaque, proprietary data silos. Organizations and individuals can run Gemma in private VPCs or locally on consumer hardware without fearing that their private chat logs are being used for third-party model retraining.
- Predictable Architecture and Democratization: Open-source AI prevents single-vendor dependency. If an API provider changes its pricing tiers or terms of service, open models ensure that your daily productivity workflows continue operating uninterrupted.
- Customizability for Edge Personas: Gemma's efficiency and open weights allow fine-grained prompt tuning and future quantization, enabling small-footprint agents to run on modest cloud VMs (such as a budget PM2 node) without requiring multi-thousand-dollar GPU clusters.
The Lazy Payoff
International Sloth Day is all about maximizing relaxation and letting machines do the heavy lifting. Here is the actual, measured payoff:
| Activity | The Old, Exhausting Way | The Fuenzer Bot "Sloth" Way | Time Saved |
|---|---|---|---|
| Morning Chat Catch-Up | Scroll 300+ messages across 5 group chats on small phone screen | Listen to a 30s ElevenLabs audio brief while still lying in bed | ~25 minutes / day |
| Checking Link Previews | Open mobile browser, accept cookie banners, dismiss paywalls & popups | Send /browse <url> and get a clean screenshot + text snippet in chat |
~3 minutes / link |
| Task Extraction | Re-read chat logs at 5 PM to remember what your teammates asked you to do | Look at Gemma's bulleted Key Action Items section | ~15 minutes / day |
Total Time Saved: Approximately 40 minutes every single day—that's over 240 hours a year reclaimed for sleeping in, relaxing, and being delightfully lazy! 🦥
Prize Categories
1. Best Use of Gemma (Featured Category)
Fuenzer Bot utilizes Google Gemma (google/gemma-4-26b-a4b-it) as its core analytical reasoning engine in src/services/summarizeService.js. Gemma processes asynchronous, multi-user message streams, strips out noise and memes, and formats actionable morning briefings according to a tailored Sloth Butler persona.
2. Best Use of ElevenLabs (Partner Category)
Integrated in src/services/elevenLabsService.js and src/commands/ai/summarize.js. Using the ElevenLabs Multilingual v2 model, the bot converts the morning briefing into a natural, soothing voice note delivered directly to WhatsApp and Telegram, allowing users to catch up on their day completely hands-free.
3. Best Use of Browserbase (Partner Category)
Integrated in src/services/browserbaseService.js and src/commands/browser/index.js. The bot connects to Browserbase's headless cloud browser infrastructure via Playwright Core CDP sessions, automating anti-bot bypassing, captcha solving, ad blocking, viewport screenshot capture, and content extraction on demand directly from chat.
Thank you to the DEV team, GitHub, and the Hacktoberfest sponsors for an amazing Open-Source AI Challenge!
來源:DEV Community · dev.to





