Wiregram is a multi-backend chat client for the terminal. Telegram, WhatsApp, Matrix and Mattermost in one keyboard-driven window, with optional AI powered chat bots that answer your DMs. It is a single static binary, written in Go.
Alpha software. Wiregram is under active development. Expect rough edges, and settings or the database format may change between releases. Please report bugs in issues.
Visit wiregram.chat for more info.
- Download the latest release for your platform, or see wiregram.chat.
chmod +x wiregram-*and run it in an interactive terminal (Windows needs no chmod).- Run
wiregram -hfor the shortcuts, or read the docs.
curl -fLo wiregram https://github.com/lebmatter/wiregram/releases/latest/download/wiregram-linux-amd64
chmod +x wiregram
./wiregramOn Windows, download wiregram-windows-amd64.exe (or -arm64.exe) and run it in
Windows Terminal:
Invoke-WebRequest https://github.com/lebmatter/wiregram/releases/latest/download/wiregram-windows-amd64.exe -OutFile wiregram.exe
.\wiregram.exeRequires Go 1.26 or newer.
git clone https://github.com/lebmatter/wiregram
cd wiregram
make
./wiregram- Telegram asks for an API ID and hash on first launch. Register an app at my.telegram.org/apps.
- Matrix and Mattermost are added from the account picker with the server address; Wiregram asks you to log in.
- WhatsApp needs no config. Add it from the account picker and pair with a code. WhatsApp may ban numbers that use unofficial clients.
- Media opens in
mpvwitho. Run Wiregram inside Kitty to see images inline. Or click a media message to download it to a private temp folder and open it in your default app (xdg-open,openon macOS, the default app on Windows). Hold Shift while dragging to select text.
Optional bots that answer an account's incoming private messages as you. Add an
OpenAI-compatible provider under Settings → AI providers…, then create a bot from the
New bot… row in the account's Bots section. An account can have several, each with a
name and an @handle, answering all of its private chats or the ones picked for it, never
two bots in one chat. A bot can suggest replies for you to approve or answer on its own;
its messages are marked ✦ NAME in the chat. It never replies in groups or starts a
conversation. Try it with wiregram dry-run before turning it on.
A bot can also be registered as a bot account of its own, so people message it directly and it answers as itself:
- Mattermost: Register… creates
@handleon the server, if your account may manage bots. - Telegram: bots are created inside Wiregram through Telegram's managed bots, after you give each account a manager bot (one with Bot Management on in @BotFather).
A registered bot gets an Inbox of its own chats, where you approve its replies or answer as the bot. Conversations are sent to the provider you configure.
Scripts and AI coding tools can read and send messages without the TUI. Output is one JSON object per line.
wiregram accounts # backend, account, label, status
wiregram chats mattermost alice # chat ID, title, kind, unread
wiregram stream # incoming messages, every account
wiregram stream mattermost alice bob # one account, or one chat
wiregram send mattermost alice bob "On my way" # or pipe the message on stdin
wiregram dry-run mattermost alice bob # the bot's reply, never sent
wiregram reset # sign out everywhere, delete all dataAccounts are named by the Telegram phone number, Mattermost username, Matrix ID or email
address. Sign in to them in the app first. The commands can run beside the app. WhatsApp
is left out because it allows only one connection. AI coding tools can learn the commands
from skills/wiregram/SKILL.md.
Wiregram is free and open source software. See CLAUDE.md for the project rules
and layout, and docs/ for the documentation site. It is pure Go with no cgo; the UI is built
on BubbleTea.
Wiregram is licensed under the AGPL v3 license.