Made by me to dive into the world of MCP Servers
Your Telegram bot is no longer just a bot. It is now a mildly unhinged, hyper-productive ops goblin that can schedule meetings, juggle multiple Google calendars, and bully Linear issues into shape from chat.
Think:
All from Telegram. No tab chaos. No context-switch speedrun. No corporate suffering simulator.
Personal YashPro Yashthis issueinfra@OxVoyd can use itConfirm / Cancel before risky actions runThis repo is basically:
Telegram UI + Gemini brain + Google Calendar + Linear + MCP tools + Dockerized chaos
Which means the bot can:
It is giving "executive assistant with sleeper-build anime sidekick" and honestly that is correct.
/help/start/accountslist today's meetingsfind free slots todayfind free slots on 2026-04-14 for 30 minutesschedule a meet at 3pm IST tomorrow with akshat named Monitoring Syncschedule a sync with infra tomorrow at 4pm IST named Infra Syncshow my linear orgsshow my linear issuesmy in progress issues in ANTlist done issues in Anthiascreate a linear issue in ANT titled Fix dashboard issuecreate an issue with heading "Fixing Dashboard issues" and assign it to me in my org ANTassign ANT-147 to akshatchange ANT-147 to in progressmove this issue to doneadd label bug to ANT-147remove label bug from ANT-147add ANT-147 to project Monitoringshow linear labelsshow linear projects/members/showmember akshat/addmember Harsh [email protected] harsh/removemember harsh/groups/addgroup infra vasu akshat vansh/removegroup infraCopy:
cp .env.example .envFill in:
TELEGRAM_BOT_TOKEN=
TELEGRAM_ALLOWED_CHAT_ID=
TELEGRAM_ALLOWED_USERNAME=OxVoyd
AI_PROVIDER=openai
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4.1-mini
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.5-flash
LINEAR_API_KEY=Security notes:
TELEGRAM_ALLOWED_USERNAME is the primary identity lock. By default Pippo only responds to @OxVoyd.TELEGRAM_ALLOWED_CHAT_ID is optional extra hardening if you want both username and chat ID enforcement.AI provider notes:
AI_PROVIDER=openai uses your OpenAI API keyAI_PROVIDER=gemini uses your Gemini API keyPut your OAuth desktop client files here:
credentials/google_oauth_client_default.jsoncredentials/google_oauth_client_work.jsonFirst auth run creates:
credentials/google_token_default.jsoncredentials/google_token_work.jsonCalendar account mapping:
default -> Personal Yashwork -> Pro YashLocal:
uv run python telegram_bot.pyDocker:
make up
make logs
make downAvailable backend tool powerups include:
create_calendar_event(...)authenticate_google_account(...)list_connected_google_accounts()list_todays_meetings(...)find_free_slots(...)get_linear_profile()list_linear_orgs()list_linear_issues(...)list_my_linear_assigned_issues(...)create_linear_issue_tool(...)update_linear_issue_state_tool(...)update_linear_issue_labels_tool(...)add_linear_issue_labels_tool(...)remove_linear_issue_labels_tool(...)update_linear_issue_project_tool(...)assign_linear_issue_tool(...)work Google account needs Google Calendar API enabled in its own Google Cloud project.this issue.This project is:
Which is exactly where a good personal automation bot should be.
Made with ❤️ by me
0xV0YD/Pippo
April 13, 2026
April 13, 2026
Python