A self-hosted, Telegram-first AI assistant for productivity.
Project description
Gabay AI Assistant
Gabay is a self-hosted, Docker-based AI assistant designed as a Telegram-first productivity tool. It acts as a unified gateway allowing users to manage Gmail, Google Drive, Notion, and Meta (Facebook/Instagram) properties autonomously.
Features
- Daily Briefing (
/brief): Scans unread emails and Facebook/Instagram notifications to provide a prioritized, LLM-summarized update. - Content Reading (
/read): Fetches unread emails and recent Notion pages (try "read my emails" or "what's new in Notion?"). - Universal Search (
/search): Deep-search across Google Drive and Notion directly from Telegram. - Seamless Saving: Reply to any file or PDF with
/saveto upload it to Drive or save to Notion. - Agentic Intent: Leverages Groq (Llama 3) to understand natural language requests.
Quick Install
Gabay is now available as a Python package. You can install it directly via pip:
pip install gabay
Then run the setup wizard:
gabay config
🚀 Deployment & Setup
Gabay uses a Bot for commands and a Userbot for acting on your behalf. Follow these steps for a complete setup.
1. Telegram API Configuration
- Create a Bot: Find @BotFather on Telegram.
- Type
/newbotand follow the instructions. - Save your Bot Token (e.g.,
123456:ABC-DEF...).
- Type
- Get API Credentials:
- Log in to my.telegram.org.
- Go to API development tools.
- Create a new application (title/short name don't matter).
- Save your
App api_idandApp api_hash.
- Authentication: Your
TELEGRAM_PHONE(with country code, e.g.,+123456789) is required for the initial Userbot session login.
2. Google Cloud Integration (Workspace Management)
Gabay requires access to Gmail, Drive, Docs, Slides, and Sheets.
- Create Project: Go to Google Cloud Console and create a new project named "Gabay".
- Enable APIs: Navigate to APIs & Services > Library and enable:
Gmail APIGoogle Drive APIGoogle Docs APIGoogle Slides APIGoogle Sheets API
- OAuth Consent Screen:
- User Type: External.
- App Information: Set "Gabay".
- Scopes: Add
https://www.googleapis.com/auth/gmail.modify,https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/calendar.readonly. - Test Users: Add your own Gmail address (Gabay will only work for these users in testing mode).
- Create Credentials:
- Go to Credentials > Create Credentials > OAuth client ID.
- Application type: Web application.
- Name: "Gabay Web Client".
- Authorized redirect URIs:
http://localhost:8000/auth/google/callback. - Save the Client ID and Client Secret.
3. Notion Integration
- Create Integration: Go to Notion My Integrations.
- Click + New integration.
- Type: Internal.
- Save your Internal Integration Secret.
- Permissions: Ensure "Read content", "Update content", and "Insert content" are checked.
- Connect Database:
- Open your target Notion database/page.
- Click
...(top right) > Connect to > Search for your integration name.
- Retrieve IDs:
NOTION_API_KEY: The secret from step 1.NOTION_DATABASE_ID: The ID from your database URL (the part afternotion.so/and before the next/or?).
4. Environment Configuration
Create a .env file in the root directory:
# Telegram
TELEGRAM_BOT_TOKEN="your_token"
TELEGRAM_API_ID=12345
TELEGRAM_API_HASH="your_hash"
TELEGRAM_PHONE="+123456789"
# LLM Intelligence
GROQ_API_KEY="your_groq_key"
# Google OAuth
GOOGLE_CLIENT_ID="your_google_id"
GOOGLE_CLIENT_SECRET="your_google_secret"
# Notion
NOTION_API_KEY="your_notion_key"
NOTION_DATABASE_ID="your_database_id"
5. Launching Gabay
- Start Services:
docker-compose up -d --build - Initial Connection:
- Go to your Telegram bot and type
/auth. - Open the provided dashboard link (
http://localhost:8000/setup). - Click Connect Google and Connect Notion to authorize Gabay.
- Go to your Telegram bot and type
🧠 Brain & Memory
Gabay is powered by Groq (Llama 3) and features:
- Extended Memory: Remembers up to 20 messages for deep context.
- Natural Language Parsing: "Research AI and email it to my boss" works in one go.
- Short-term Recurrence: "Remind me to check the oven every minute for 5 times."
📚 Use Cases & Examples
- Daily Recap:
/brief(Summarizes unread emails and Meta notifications). - Researcher: "Research the history of Mars, save it to a Doc, and make it public."
- Analyst: "Create a spreadsheet about the top 10 EV companies in 2025."
- Presenter: "Make a professional deck about space exploration and invite partner@example.com."
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gabay-0.1.97.tar.gz.
File metadata
- Download URL: gabay-0.1.97.tar.gz
- Upload date:
- Size: 73.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2099d69768fc76bb59c9f2cf6f2d1dbb8ae6f4fadaf4013046ed5c68238b3947
|
|
| MD5 |
6cd6332853dde870175a66e441140075
|
|
| BLAKE2b-256 |
f6bd26c11532da668aa7944f1e6ac48ca1fb805d39bb5a161218fc921e41f3ce
|
Provenance
The following attestation bundles were made for gabay-0.1.97.tar.gz:
Publisher:
pypi_publish.yml on urkiddennn/Gabay
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gabay-0.1.97.tar.gz -
Subject digest:
2099d69768fc76bb59c9f2cf6f2d1dbb8ae6f4fadaf4013046ed5c68238b3947 - Sigstore transparency entry: 1004900272
- Sigstore integration time:
-
Permalink:
urkiddennn/Gabay@d67b3ec5d3e6ab093c0799c82551777a8786f84e -
Branch / Tag:
refs/tags/0.1.97 - Owner: https://github.com/urkiddennn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@d67b3ec5d3e6ab093c0799c82551777a8786f84e -
Trigger Event:
release
-
Statement type:
File details
Details for the file gabay-0.1.97-py3-none-any.whl.
File metadata
- Download URL: gabay-0.1.97-py3-none-any.whl
- Upload date:
- Size: 100.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
611f8eb030038a383392acd0fe26e12f9911443ba3413cd98477af9cdf01356b
|
|
| MD5 |
5346bea9f0b2ebefa8d99c98583ab55b
|
|
| BLAKE2b-256 |
bb291f95773fb1895524b93e753c2f2990c802a8e21e7f2a6edb36e6fbb52169
|
Provenance
The following attestation bundles were made for gabay-0.1.97-py3-none-any.whl:
Publisher:
pypi_publish.yml on urkiddennn/Gabay
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gabay-0.1.97-py3-none-any.whl -
Subject digest:
611f8eb030038a383392acd0fe26e12f9911443ba3413cd98477af9cdf01356b - Sigstore transparency entry: 1004900275
- Sigstore integration time:
-
Permalink:
urkiddennn/Gabay@d67b3ec5d3e6ab093c0799c82551777a8786f84e -
Branch / Tag:
refs/tags/0.1.97 - Owner: https://github.com/urkiddennn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@d67b3ec5d3e6ab093c0799c82551777a8786f84e -
Trigger Event:
release
-
Statement type: