cd /news/ai-agents/show-hn-linkgravity-chat-and-voice-b… · home › topics › ai-agents › article
[ARTICLE · art-96709] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

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.

read7 min views23 publishedAug 14, 2026
Show HN: LinkGravity – chat and voice bridge for AI coding agents
Image: Michielbdejong (auto-discovered)

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: Eachagy

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 stayingSession-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 plainagy

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 theagy

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:

New Application, name it, then go to** Botin 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 intolgy setup

'sdiscord_token

. - Go to OAuth2 > URL Generator in the sidebar. UnderScopes, check** botand 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 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>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 theconnections:write

scope, andGenerate. Copy this token (starts withxapp-

) - this isslack_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 withxoxb-

. Copy that one - this isslack_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 Eventson > under Subscribe to bot events**, addmessage.channels

,message.groups

,message.im

, andmessage.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 @<your bot's name>

there first - the bot can't post in a channel it hasn't been added to.

npm install -g linkgravity

Sets up its own Python environment automatically - no manual pip install

needed.

Run the configuration wizard once to pick which platform(s) to enable and set their tokens, allowed users, and other settings:

lgy setup

This writes to ~/.gemini/linkgravity/lgy.json

, outside the package directory, so npm update

/reinstall never touches it. You can re-run lgy setup

any time to change settings later - each field keeps its current value if you leave it empty. Discord, Telegram, and Slack can all be turned on independently; the bot runs whichever ones are enabled in a single shared process.

For Discord, during setup you'll be asked for one or more servers to allow, and optionally specific channels within each:

  • Leave the channel list empty for a server → the whole server is allowed - any channel can start a session. - List specific channel IDs for a server → only those channels in that server are allowed.

Telegram and Slack have no server/channel gating yet - every chat/channel you message the bot from can start a session, subject to the allowed-users list you set during setup.

A new session is started with the ** /new** slash command - never just by typing a message. On Discord and Slack,

/new

works both in a regular channel and from inside an existing thread; on Telegram, it applies to whichever chat you send it in.

lgy start      # Start the bot as a background daemon via PM2
lgy stop       # Stop it
lgy restart    # Restart it
lgy logs       # View live logs - add -f to follow, --tail N for more lines
lgy enable     # Register the bot to auto-start on system boot
lgy disable    # Remove it from system boot
lgy            # Interactive menu - same commands, picked from a list
npm i

That's it - it wires up Ruff for Python and Prettier for Node, plus git hooks that lint/format on commit and enforce Conventional Commits commit messages.

LOG_LEVEL=DEBUG lgy start

Use lgy logs -t

to include timestamps.

This bot gives an AI agent broad access to the machine it runs on - that's inherent to what it does, so don't expose it publicly or run it somewhere you don't fully trust its users.

  • The allowed-users list for each platform, set via lgy setup

, is your primary access control - always set it. - Tool calls, including shell commands, go through an approval flow by default; treat anyone on an allowed-users list as having effectively full control of this machine.

  • Your bot tokens and other settings live in ~/.gemini/linkgravity/lgy.json

, outside this repo/package directory - never commit or share that file.

── more in #ai-agents 4 stories · sorted by recency
── more on @linkgravity 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-linkgravity-…] indexed:0 read:7min 2026-08-14 · —