Open source • Go • Built for agentic harnesses

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.

Claude CodeCodexCopilotGemini CLIGooseOpenCodeAider
×plugs into

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.

01

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.

02

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.

03

Bind them with when:

Ordered bindings decide which harness answers which conversation. Repoint either side by editing one line, then pantalk reload.

config.yaml
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: true

What 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.

Complete pluggability

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 driver

Persistent sessions that reuse your local Claude Code auth and config, with permission modes and tool allowlists honoured per agent.

Codex

native driver

One persistent app-server process with a durable Codex thread per conversation, plus sandbox and approval policy per agent.

GitHub Copilot

command driver

Launch Copilot on matching mentions and DMs to report build results, post code reviews, and answer questions in real time.

Gemini CLI

command driver

Bind Gemini to any channel so it can summarize discussions, triage threads, and take action where the conversation happens.

Goose, OpenCode, Aider

command driver

Allowlisted 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-exec

Pantalk 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.

Agent skills

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-message

Send messages to channels, rooms, groups, DMs, and threads across all thirteen supported platforms.

Read Notifications

pantalk-read-notifications

Poll for unseen mentions, DMs, and notification events your agent should act on.

Read History

pantalk-read-history

Read conversation history from channels and threads to build context before responding.

Stream Events

pantalk-stream-events

Open a real-time event stream for continuous monitoring and instant agent reactions.

List Bots

pantalk-list-bots

Discover available bots, their platforms, and identifiers for dynamic routing.

Manage Config

pantalk-manage-config

Add bots, configure platforms, validate settings, and hot-reload the daemon.

The harness-native agent computer

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.

127.0.0.1:6902
Pantalk Ghost running in a browser: a persistent Linux agent computer for Codex, Claude Code, Goose, and other harnesses

A real Linux computer with a durable workspace - not another thin agent loop wrapped around a model API. Explore Ghost on GitHub →

01

Boot the computer

One docker run gives you an always-on Linux workspace you can inspect and operate from any browser.

02

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.

03

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.

04

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.

terminal
$docker run -d --shm-size 1g -p 127.0.0.1:6902:6901 ghcr.io/pantalk/ghost:latest
▸ desktop ready at http://127.0.0.1:6902
$cd deployments/mattermost && make up
✓ mattermost + postgres + ghost
✓ bots provisioned: codex, claude

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.md

2. 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.

Provider SDK abstraction

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
Companion project

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.