You are browsing as a guest. Sign up (or log in) to start making projects!

Echo

  • 4 Devlogs
  • 17 Total hours

A Slack AI assistant that remembers team's knowledge, summarizes conversations, answers questions, and helps developers search projects faster.

Ship #2

I’ve made a slack Echo bot, which let the user do the Q/A, online search, summarize the chat for the team, let the users do search about a some project in a chat if they’ve talked about that in the chat or mentioned anything, and help to understand some concept from the official documentation (cool ri8) In a nutshell, Echo bot is assistant, it’s helper with anime girl personality.
This is Echo version 0.2 where I’ve added online search Feature so that AI won’t hallucinate about the question and give the latest info about the query.

  • 1 devlog
  • 6h
  • 15.67x multiplier
  • 23 Stardust
Try project → See source code →
Open comments for this post

6h 16m 31s logged

I’ve added a new feature in the bot, which is online search . It searches the question online so that it gives the latest info about the question

Added online search

Here’s what was happening with previous version,Echo could only answer from the model’s own knowledge before, so I thought we need to fix this.I added a proper web search feature so she can actually go look things up.

  • Wired up the Exa API for /echo-search — it searches the web, pulls the top results, fetches the actual page content, and feeds that back into the AI so the answer is grounded instead of hallucinated.
  • Made sure sources always get cited back with clickable links in the Slack message
  • Split search into two steps: search (get URLs) then contents (get the actual text), since Exa’s search endpoint alone only gives snippets, not enough to actually summarize from.

Deployed the project on Nest

Finally deployed it on Nest like the previous version and yo Echo became 24/7 online :)

I’ve also shared a tutorial video on YouTube to help you understand any command and how to use Echo on Slack:
Echo Tutorial Video

1
1
250
Ship #1

I built a Slack bot named “Echo” with Node.js and Slack Bolt API, it handles instant Q&A, web search with summaries, conversation summarization, project context retrieval, and documentation lookup.

The Challenges
e biggest challenge was contextual intelligence: teaching an AI to sift through messy channel histories and pinned messages to understand a project’s current state without getting distracted by unrelated chatter. I’m particularly proud of the /echo-project command; it analyzes real-time team discussions to generate structured status reports, identifying active members, key decisions, and blockers automatically. It effectively turns a chaotic Slack thread into a professional project brief in seconds.

What I’m Proud Of
The speed. Getting answers in 2 seconds is no joke when you’re juggling AI inference + web search + Slack’s API. I’m also proud of the conversation summarization. it actually understands context, not just pulling random snippets.

How to Test It
Add Echo to your Slack workspace and try these commands: /echo-ask "your question", /echo-search "topic", /echo-summary (in a thread), /echo-project (in a channel), /echo-docs "what you need". Start with simple queries, then get creative. DM me what breaks or what you wish it could do.

Try project → See source code →
Open comments for this post

5h 3m 21s logged

I finished the last two most complex commands — /echo-summary and /echo-project and then finally deployed it on Nest with Hackclub

1. Finished the final commands

/echo-summary The command accepts today, yesterday, last N, and unread. I had to translate each of these into Unix timestamps for Slack’s conversations.history API

Filtering bot messages: The API returns bot messages too. Added .filter(m => !m.bot_id) to skip Echo’s own messages, otherwise Echo would summarize its own responses as if they were team decisions.

2. Deployed the project on Nest

Finally deployed it on Nest as this

  • Pushed all my project to Git (except my .env file)
  • Made a container in nest and got the key
  • Logged in my laptop using that key ssh [email protected]
  • Made a folder for Echo and downloaded all the neccessary dependencies
  • Clone the repo from my git and ran systemctl start echo.service and Echo became 24/7 online :)

I’ve also shared a tutorial video on youtube to help you understand any command and how to use Echo on slack
https://youtu.be/Wu7u665-Njo

0
0
10
Open comments for this post

2h 19m 21s logged

I gave some real commands and functions to Echo and connect it to the Hackclub workspace. By the end of the my work today , Echo had:

  • A working /echo-ask command — ask it anything, get an AI answer
  • A working /echo-help command — shows all commands
  • A working /echo-search command — live web search with cited sources
  • A working /echo-docs command — searches technical documentation
  • An onboarding event — sends a welcome message when added to any channel
  • A proper utils.js service for shared helpers

What I Did

1. Built the AI Brain services/ai.js

The first thing I needed was a way for Echo to actually think and give responses. I built a single getAIResponse() function that every command would call:

  • HackClub AI API as the backend, it let me use OpenAI and Google LLMs, and I could use it with my HackClub key
  • temperature: 0.7 I’ve used temperature attribute so make model more creative in responsing.
  • Default model gpt-4o-mini for speed and cost, but I made the model parameter swappable so different commands can use better models when needed.
  • Cool personality, I gave Echo an anime girl personality with soft expressions. This was intentional — bots that feel like characters are more fun to use and easier to remember

2. Built services/utils.js , Helpers module

Before building commands, I wrote the utilities they’d all share. I’ve used a cache logic so that commands like /echo-summary loop through 50-100 messages and need user names for each one. Without caching, that’s 100 API calls. With caching, it’s only as many unique users as exist.

3. Built command files

Then I built the files for each command in ordered manner in my project so that I can manage them easily. You can see the code of each file on my git repo

Problems I Hit and Fixed

Slack’s 3-second ack timeout: Slack requires every slash command to be acknowledged within 3 seconds or it shows a timeout error to the user. AI calls take 3-10 seconds. Solution: await ack() immediately at the top of every handler, then do the slow work after. This was the first bug I had to fix.

User IDs in messages: Slack stores messages with raw user IDs like <@U123ABC> instead of names. When I was building search, I realized the AI would receive these IDs and not know who said what. so I built resolveUserMentions() to replace them with real names before sending to the AI.


0
0
5
Open comments for this post

2h 53m 26s logged

What I Built

Today I started Echo , an AI Slack bot that acts as a teammate inside your workspace. The idea hit me because our team was constantly switching tabs to look things up, ask questions, check what happened in a channel yesterday. I thought what if there was a bot that just lives in Slack and handles all of that?


What I Did

1. Created the Slack App

Went to api.slack.com/apps and created a new app from scratch.

  • Chose Socket Mode instead of HTTP webhooks, this means the bot connects outbound to Slack, so I don’t need to expose a server or set up ngrok during development. Way easier for local dev.
  • Added the required OAuth scopes: chat:write, commands, channels:history, users:read etc everything Echo would need to read messages and respond.
  • Grabbed the three tokens I’d need:
    • SLACK_BOT_TOKEN (xoxb-…)
    • SLACK_SIGNING_SECRET
    • SLACK_APP_TOKEN (xapp-… for Socket Mode)

2. Initialized the Node.js Project

I’ve used Node.js for my project

npm install @slack/bolt dotenv axios cheerio

Dependencies I’m working with:

  • @slack/bolt — Slack’s official framework for building bots. Handles all the event routing, slash commands, and ack() timing .
  • dotenv — keep tokens out of the code
  • axios — for hitting the HackClub AI API later
  • cheerio — for parsing web content (I’ve planned for search in some cmds)

Problem I Had:

Socket Mode confusion , at first I wasn’t sure whether to use Socket Mode or HTTP. Read through the Bolt docs and realized Socket Mode is the right call for development because I don’t need a public URL. HTTP is for production deployments.

0
0
15

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…