Symphony is a Slack bot that is basically like ChatGPT but in a Slack Workspace.
Symphony can do many things!
For example..
- Search the web
- Generate images
- Search URLs
- Peform deep research
- Switch models if needed
- Memory! It can remember things you said in a thread.
- Or..just chatting!
Before you run this, you will need some things first.
- Python 3.14 (duh!)
- Supabase account (for memory) / API Keys
- OpenAI or any other AI provider URL and API key
- A Slack Bot created
- LinkUp/Search API keys
- Clone this repo
git clone https://github.com/Snowflake6413/symphony
cd symphony- Copy .env file
cp .env.example .env(Fill out .env with your keys and params)
- Install dependencies
pip install .uv sync
(if using uv)- Create a supabase table
Go to your Supabase project and create a new table on the SQL editor.
- Bot Settings (model switching)
create table bot_settings (
channel_id text primary key,
selected_model text not null,
updated_at timestamp with time zone default timezone('utc'::text, now()) not null
);- Chat Memory
create table chat_mem (
id bigint generated by default as identity primary key,
channel_id text not null,
thread_ts text not null,
user_name text,
role text not null,
content text not null,
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);
create index chat_mem_thread_ts_idx on chat_mem (thread_ts);- Run it
python app.pyOnce the bot is running, you can invite it to your personal channel and chat with it.
- Mention it to have a chat.
- Run "/symphony-help" to see more commands.
- Switch models with "/model".
This repo is licensed under the MIT license.
See for more info.