Pantalk
any agent, any chat
An open source daemon that puts the coding agent you already run into the chat apps your team already uses. Claude Code answers in Slack. Codex answers over SMS. Same config, one line each.
A Claude tag in Slack welds one agent to one chat app. Pantalk welds nothing - so you pick both ends, and change either one later.
- Ship PRs from the chat thread that asked for them
- Put an agent on incidents, in-channel or over SMS
- Share one Claude or Codex seat across the whole team
A socket in the middle, sockets on both ends
Everything a harness needs to be a real participant in a conversation - and nothing that ties it to the platform the conversation happens on.
Both ends are pluggable
Harnesses attach through drivers, platforms through connectors, and neither knows about the other. Swap Claude Code for Codex, or Slack for WhatsApp, without touching the other side.
Native harness drivers
Claude Code and Codex run as persistent sessions with durable per-conversation threads. Copilot, Gemini CLI, Goose, OpenCode, and Aider run through the command driver. Anything else works too.
Thirteen platforms, one interface
Slack, Discord, Mattermost, Telegram, WhatsApp, IRC, XMPP/Jabber, Twitch, Nostr, Matrix, Twilio/SMS, Zulip, and iMessage from one unified interface.
Single daemon, all providers
pantalkd manages every provider session in one process - auth, reconnects, rate limits - so your harness only ever speaks one local protocol.
Persistent conversation memory
All messages and events are stored in SQLite, so sessions stay isolated per bot, channel, and thread, and survive restarts on both sides.
Smart notification routing
Surface only the events that matter - mentions, DMs, and threads your agent is part of - as structured events ready for reasoning.
How it works
Declare the harnesses once, declare the platforms once, and bind them. The daemon is the only thing that ever knows about both.
Declare your harnesses
Each agent is a name plus a driver - claude, codex, or a command for anything else. Nothing in this block mentions a platform.
Declare your platforms
Each bot is a name plus a connector type - slack, xmpp, twitch, nostr, or any other supported platform. Nothing in this block mentions a harness.
Bind them with when:
Ordered bindings decide which harness answers which conversation. Repoint either side by editing one line, then pantalk reload.
agents:
- name: engineering
driver: codex
- name: reviewer
driver: claude
bots:
- name: company-slack
type: slack
agents:
- agent: reviewer
when: 'channel == "#code-review"'
- agent: engineering
when: true
- name: oncall-sms
type: twilio
agents:
- agent: engineering
when: trueWhat people actually use it for
The harness is already good at the work. Pantalk is what puts it in the room where the work gets asked for.
Ship code from a chat thread
Your coding assistant, where the conversation already is
Claude Code and Codex already open PRs, fix failing tests, and review diffs - they just do it in a terminal nobody else can see. Bind one to a channel and the work happens in the thread where it was asked for.
The harness runs in your repo with your sandbox and approval settings. Someone asks for a fix in #engineering, the PR link comes back in the same thread, and the whole team watched it happen.
Agents that act on incidents
Awake at 3am so nobody else has to be
Stream alerts into an agent that triages, runs the runbook, and reports back - in the channel your on-call is already watching, or over SMS to a phone with no app installed.
Ordered when: bindings decide what escalates and what gets handled quietly. Scheduled prompts let the same agent post a morning summary before anyone opens a laptop.
One subscription, whole team
Stop buying a seat for everyone
Pantalk runs one authenticated Claude Code or Codex install and puts it in chat. Every teammate reaches it by DM or mention - no per-person license, no local setup, nothing to install.
Sessions stay isolated per user, channel, and thread, so nobody sees anybody else's context. Non-engineers get the same assistant without ever touching a terminal.
And because neither end is welded, none of these lock you in. Route #code-review to Claude Code and the on-call SMS line to Codex, then swap either one next quarter without redoing a single platform integration.
Bring your own harness
Claude Code, Codex, Copilot, Gemini CLI, Goose, OpenCode, Aider - it doesn't matter. Pantalk never asks which one you picked, and the platform on the other end never finds out.
Claude Code
native driverPersistent sessions that reuse your local Claude Code auth and config, with permission modes and tool allowlists honoured per agent.
Codex
native driverOne persistent app-server process with a durable Codex thread per conversation, plus sandbox and approval policy per agent.
GitHub Copilot
command driverLaunch Copilot on matching mentions and DMs to report build results, post code reviews, and answer questions in real time.
Gemini CLI
command driverBind Gemini to any channel so it can summarize discussions, triage threads, and take action where the conversation happens.
Goose, OpenCode, Aider
command driverAllowlisted out of the box. Each is a driver line in YAML, and each reaches the same thirteen platforms as every other harness.
Anything else
socket or --allow-execPantalk is harness-agnostic. If it can run a CLI command or open a Unix socket, it can be the agent on the other end of the conversation.
Pantalk exposes chat as composable CLI skills. Any harness that supports tool-use, function calling, or shell execution picks them up instantly - zero custom integration code on either edge.
Built-in skills for every harness
Pantalk ships with composable skills any harness can use as tools - each one maps to a single CLI command, and none of them mention a platform.
Send Message
pantalk-send-messageSend messages to channels, rooms, groups, DMs, and threads across all thirteen supported platforms.
Read Notifications
pantalk-read-notificationsPoll for unseen mentions, DMs, and notification events your agent should act on.
Read History
pantalk-read-historyRead conversation history from channels and threads to build context before responding.
Stream Events
pantalk-stream-eventsOpen a real-time event stream for continuous monitoring and instant agent reactions.
List Bots
pantalk-list-botsDiscover available bots, their platforms, and identifiers for dynamic routing.
Manage Config
pantalk-manage-configAdd bots, configure platforms, validate settings, and hot-reload the daemon.
Pantalk Ghost
Keep the harness. Make it always-on.
Think OpenClaw or Hermes, except Ghost does not replace your existing harness with a new agent runtime. It gives Codex, Claude Code, Goose, or another Pantalk-compatible harness a persistent computer, durable state, and a route into the chat systems your team already uses.
Ghost is the computer
A persistent workspace, browser desktop, terminal, saved credentials, and an environment that stays available.
The harness is the agent
Reasoning, tools, skills, model access, and approval policy stay with the mature harness you already trust.
Pantalk is the connection
Chat routing and conversation state stay independent, so changing a harness never means rebuilding the front door.
A real Linux computer with a durable workspace - not another thin agent loop wrapped around a model API. Explore Ghost on GitHub →
Boot the computer
One docker run gives you an always-on Linux workspace you can inspect and operate from any browser.
Use your existing harness
Codex, Claude Code, and Kimi Code are preinstalled. Use their normal login and configuration; Goose and other harnesses attach through Pantalk once installed.
Connect it to chat
A deployment recipe connects the same computer and harness to Mattermost or IRC. Pantalk keeps the messaging transport out of the agent.
Swap without starting over
Change one driver line to move a conversation from Claude Code to Codex or another harness. The workspace and chat integration stay put.
Get your harness online in seconds
Let the harness install Pantalk itself, or do it manually.
1. Give your agent the install skill
Run this command to download the Pantalk install skill. Then ask your agent to follow the instructions inside.
curl -fsSL https://raw.githubusercontent.com/pantalk/skills/refs/heads/main/pantalk-install/SKILL.md -o PANTALK_INSTALL.md2. Ask your agent to install Pantalk
Paste something like this into your agent's chat:
“Read the PANTALK_INSTALL.md file and follow the instructions to install and configure Pantalk.”
Your agent will install the binaries, create the config, start the daemon, and verify everything is working - autonomously.
One protocol for every chat platform
Your harness doesn't need to know Slack from Discord. Pantalk normalizes everything behind a single local protocol, so the only thing that ever has to learn a provider API is the daemon.
- Connectors for Slack, Discord, Mattermost, Telegram, WhatsApp, IRC, XMPP/Jabber, Twitch, Nostr, Matrix, Twilio, Zulip, and iMessage
- Native drivers for Claude Code and Codex, command driver for every other harness
- Full conversation memory via local SQLite storage
- Structured event stream for agent reasoning and tool-use
Give your agent tools too
Pantalk plugs your agent into the chat apps people talk on. MCPShim plugs tools into the agent - exposing any MCP server as a standard CLI command. Together they form a complete agent infrastructure stack.
Build with us
Pantalk is open source. Follow development on GitHub, report issues, or contribute connectors and agent integrations.