Show HN: LinkGravity – chat and voice bridge for AI coding agents LinkGravity, a new open-source bot interface for the Antigravity agentic AI system, lets users run AI coding agents from Discord, Telegram, or Slack with chat-based approval buttons, voice interaction on Discord, and multi-modal file attachments. The tool, which requires Node.js 18+, Python 3.10+, and the Antigravity CLI, translates CLI prompts into chat UI components and supports multiple sessions as threads with auto-naming. It aims to bring agentic coding workflows into team chat platforms, with setup guides for each messenger. A Discord, Telegram, and Slack bot interface for the Antigravity agentic AI system. It translates Antigravity CLI prompts into chat UI components and provides voice interaction capabilities. Sessions as Threads: Each agy conversation lives in its own thread, so several can run side by side and stay readable later. Threads get named from what you actually talked about instead of staying Session-XXXX . Approval Flow: Command and tool-call approvals become interactive chat buttons. Chained shell commands are approved individually, and any approval can be scoped to auto-allow that command or tool going forward - something plain agy doesn't do. Voice Interaction: Talk to the agent from a Discord voice channel and hear its replies. Say your wake word to get its attention, so side conversation in the channel doesn't set it off. Multi-Modal Input: Attach files for the AI to read, including audio, which gets transcribed to text automatically. Same Agent as Your Terminal: Reads the agy setup already on the machine, so sessions started from chat use the same models and settings you use locally. | Discord | Telegram | Slack | | |---|---|---|---| | Sessions | Threads | Flat | Threads | | Voice | ✓ | ✗ | ✗ | | Approval buttons | ✓ | ✓ | ✓ | | File attachments | ✓ | ✓ | ✓ | | Session title auto-rename | ✓ | ✗ | ✓ | | DMs | ✓ | ✓ | ✓ | | Group | ✓ | ✗ | ✓ | - Node.js = 18 - Python = 3.10 - Antigravity CLI installed on this machine - A messenger bot token, and at least one server/channel to allow it in - Discord, Telegram, and Slack are all supported, and you can enable more than one at once In the Discord Developer Portal https://discord.com/developers/applications : New Application , name it, then go to Bot in the left sidebar.- Under Privileged Gateway Intents , enable Message Content Intent - required, since the bot reads message text/attachments. - Click Reset Token to reveal the bot token, and copy it - this is what goes into lgy setup 's discord token . - Go to OAuth2 URL Generator in the sidebar. Under Scopes , check bot and applications.commands . Under the Bot Permissions box that appears below, check:- Send Messages, Send Messages in Threads, Create Public Threads - Read Message History, Attach Files, Embed Links, Add Reactions - Connect, Speak for voice channel support - Copy the Generated URL at the bottom of that page, open it in a browser, and invite the bot to your server. Message @BotFather https://t.me/BotFather on Telegram, send /newbot , and follow the prompts to get a bot token. No further permission setup is needed - Telegram sessions are 1 chat = 1 session, so just message your bot directly or add it to a group and run /new . Slack has more moving parts than the others - two separate tokens, and a few settings pages that gate each other. Going in this order avoids re-doing steps: - Go to api.slack.com/apps https://api.slack.com/apps Create New App From scratch , name it, and pick your workspace. Socket Mode left sidebar toggle it on. This avoids needing a public HTTP endpoint. Slack will prompt you to generate an app-level token here - name it anything, add the connections:write scope, and Generate . Copy this token starts with xapp- - this is slack app token .- If it doesn't prompt you, go to Basic Information App-Level Tokens Generate Token and Scopes instead. - If it doesn't prompt you, go to OAuth & Permissions left sidebar scroll to Scopes Bot Token Scopes not User Token Scopes - that's a different section further up the page, for a different token, and is not used here . Add an OAuth Scope for each of: chat:write , channels:history , groups:history , im:history , mpim:history , reactions:write , files:read , files:write .- Scroll to the top of that same page Install to Workspace Allow . This generates the token under OAuth Tokens Bot User OAuth Token , starting with xoxb- . Copy that one - this is slack bot token .- It's easy to grab the wrong token here - the page also shows a User OAuth Token xoxp-... further down, which is a different thing and won't work for this bot. - It's easy to grab the wrong token here - the page also shows a App Home left sidebar under Show Tabs , turn on Messages Tab , then check Allow users to send Slash commands and messages from the messages tab - this is what lets you DM the bot at all. If this section looks greyed out, it's because step 3 hasn't been saved/installed yet - go back and do that first. Event Subscriptions left sidebar toggle Enable Events on under Subscribe to bot events , add message.channels , message.groups , message.im , and message.mpim Save Changes . Slash Commands left sidebar Create New Command , four times, for /new , /model , /credit , and /permissions any description/hint text is fine - only the command name matters .- Back on OAuth & Permissions , since scopes/events changed after the initial install, click Reinstall to Workspace to push those changes live. Any time you change scopes or events later, you'll need to repeat this step. - In Slack itself, for any channel not DM you want the bot usable in, run /invite @