Skip to main content

Slack message-turn bridge to AI coding agents (Claude Code / Codex / Copilot) running on your Mac

Project description

cc-agent-messenger logo

cc-agent-messenger

English | 日本語

PyPI Python CI License: MIT

Reply to your AI coding agents from Slack on your phone, while they keep working in VS Code on your Mac. A small resident bot bridges a Slack channel to the live Claude Code session (and, headlessly, to Codex / Copilot), so you can ask for status, choose the next step, or get pinged when a long job finishes — as complete message turns, not live terminal mirroring.

⚠️ Security & responsibility. This tool runs commands in response to Slack messages (RCE-adjacent). It is built for a single trusted operator on a trusted machine. Enabling hands-free auto-reply grants auto-execution of the reply command — a conscious risk you accept. No warranty; use at your own risk. See SECURITY.md.

iPhone Slack ──(@bot !status)──► resident bot (Bolt + Socket Mode)
                                       │ authorize (NN4) + match command
                                       ▼
                               tmp/.slack_message  ◄── tail -f Monitor (live Claude session)
          iPhone push ◄── bot chat.postMessage ◄── cc-agent-messenger send (Unix-socket send API)

Demo

What it looks like from your phone — a Slack thread where you @-mention the bot and the live Claude Code session on your Mac answers (commands start with !; plain words and emoji/button taps work too):

  you →  @bot !status
  bot →  Running. Watching experiment X — epoch 12/50, loss 0.34 (stable).

  you →  @bot !options
  bot →  Next steps:
           1: lower the learning rate and continue
           2: keep going
           3: pause
         (tap a button, say "1", or react 1️⃣)

  you →  !select 1
  bot →  OK — lowering the learning rate to 1e-4 and continuing.

  bot →  (later, unprompted)  ✅ Experiment X finished. Send !results for the summary.

What it does

  • Inbound: a Slack message in your private channel is authorized and appended to a local file; your live Claude Code session (watching it with tail -f) wakes, interprets the command, and replies.
  • Outbound: the reply is posted by the project's own bot, @-mentioning you, so your phone gets a push.
  • Agents: Claude Code via the live session (C0); Codex and Copilot via headless CLIs (C1). (C1 is also available for Claude.)

Requirements

  • macOS or Linux/WSL, VS Code + the Claude Code extension, Python ≥ 3.11, uv.
  • A Slack workspace + one private channel, and a Slack app (Socket Mode).
  • For Codex/Copilot: their own CLIs installed + authenticated (codex, @github/copilot). Claude via C0 needs no extra CLI.

Install

uv tool install cc-agent-messenger
# or from source:
uv tool install git+https://github.com/noboru2000/cc-agent-messenger

Quickstart

cd your-project
cc-agent-messenger init          # scaffolds the skill, config template, gitignore, allowlist
# 1) create a Slack app (Socket Mode + scopes + Event Subscriptions); see docs/SETUP.md
# 2) fill .cc-agent-messenger/config.toml with your tokens + channel id
cc-agent-messenger daemon        # run the resident bot

# verify the return path:
cc-agent-messenger ping          # -> {"status":"alive"}
cc-agent-messenger send --text "test"   # -> posts to your channel; phone gets a push

Then, in your VS Code Claude Code session, invoke the cc-agent-messenger skill to start watching the channel and replying. Add the printed allow-rule to .claude/settings.json to make replies hands-free.

Commands

CLI: cc-agent-messenger <init | uninstall | daemon | send | ping | status | stop | kill on|off | doctor | pending | ack | monitors> — see cc-agent-messenger --help.

From Slack (@bot + a leading !, deterministic, no Slack slash registration — or plain words / buttons / emoji):

  • Ask/act: !status, !results, !issues, !options, !select 2, !continue, !doctor, !help.
  • Pause/redirect: !pause (soft halt — channel stays open; !continue resumes). The hard freeze is the CLI-only kill switch.
  • Away & keep-alive: !away MR:10m ["what to report"] / !back; !keepalive MR:10m | off. MR: = minimum report interval (you hear at least every N; a real reply postpones the next).
  • Scheduled monitors: !watch <id> every:5m ["items"] (e.g. SSH a GPU box for util/mem/temp + loss, with threshold alerts) / !watch <id> off / !watch off (stop all) / !watch list. every: = fixed cadence.

Full reference in docs/USAGE.md.

Limitations

  • Session-bound: the live (C0) bridge works only while VS Code and the Mac are awake and the skill's monitor is armed. It is not a 24/7 service.
  • Copilot/Codex replies come from a headless CLI turn, separate from their VS Code GUI panels.

Docs

  • docs/SETUP.md — Slack app creation, invite, config, run, E2E, troubleshooting.
  • docs/USAGE.md — Slack command reference (!status, !options, …), keywords, and expected behavior once it is running.
  • docs/ARCHITECTURE.md — the C0 loop, the egress chokepoint, the four input surfaces, the security model.

License & author

MIT © 2026 Noboru Harada.

Author / maintainer: Noboru Harada <noboru@ieee.org>. Security reports: see SECURITY.md. Bugs / features: open an issue.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cc_agent_messenger-0.2.0.tar.gz (947.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cc_agent_messenger-0.2.0-py3-none-any.whl (53.4 kB view details)

Uploaded Python 3

File details

Details for the file cc_agent_messenger-0.2.0.tar.gz.

File metadata

  • Download URL: cc_agent_messenger-0.2.0.tar.gz
  • Upload date:
  • Size: 947.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cc_agent_messenger-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ad1ef2f4626a18f4a8df43355c3cfb316944003045ee8396351863509640902b
MD5 fc88a8d2cebbe20f2face3eb2764af96
BLAKE2b-256 6e2efad3b9003fadae432c24d2228b97cc1d90981b49b0f379d4ddf2b9cead67

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_agent_messenger-0.2.0.tar.gz:

Publisher: release.yml on noboru2000/cc-agent-messenger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_agent_messenger-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cc_agent_messenger-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d75ee5898e215ae8eb2cb09df2e27dd94419b9720b515157055ce4f130b15e2
MD5 e3ee8499e20118dc2005ddce96e10e1b
BLAKE2b-256 331bb604e3f0185c40c9ee1efeb8356e4fefd67f192a10cabe66e8829f295713

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_agent_messenger-0.2.0-py3-none-any.whl:

Publisher: release.yml on noboru2000/cc-agent-messenger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page