os-channel

os-channel is a skill for Claude Code from CronusL-1141/AI-company. It costs 113 tokens per session (2,205 once invoked), scanned A, original, MIT.

A message channel that lets separate AI sessions, such as Claude Code and Codex, send messages, check unread messages, and in some cases be prompted to check them.

In plain words
What is it for?
It is for coordinating parallel coding work, passing interface decisions between sessions, and exchanging messages across agent environments.
Why use it?
It provides a way to share conclusions between otherwise independent sessions, while making clear that wake-up behavior differs by host and does not work after a session exits.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions Codex.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is bash scripts/os-watch.sh <session_id> <team_id> <reader> # 必须以宿主的后台任务方式起(run_in_background).

Part of the ai-team-os plugin — 5 skills, 8 commands, 9 agents, 16 hooks, 1 MCP server shipped together

Good fit It is for coordinating parallel coding work, passing interface decisions between sessions, and exchanging messages across agent environments.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/CronusL-1141/AI-company
agentmods
npx agentmods add skills/cronusl-1141/ai-company/os-channel

Made for: Claude Code.

Or install ai-team-os, the plugin that ships this one along with the rest of its 5 skills, 8 commands, 9 agents, 16 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for os-channel

README.md
[![agentmods](https://agentmods.dev/badge/skills/cronusl-1141/ai-company/os-channel/github.svg)](https://agentmods.dev/skills/cronusl-1141/ai-company/os-channel)
Your own site
<a href="https://agentmods.dev/skills/cronusl-1141/ai-company/os-channel"><img src="https://agentmods.dev/badge/skills/cronusl-1141/ai-company/os-channel/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for os-channel

Your own site · 80×15
<a href="https://agentmods.dev/skills/cronusl-1141/ai-company/os-channel"><img src="https://agentmods.dev/badge/skills/cronusl-1141/ai-company/os-channel.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 113 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,205 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00113 $0.02205
Opus 5.5 $0.00045 $0.00882
Sonnet 5.5 $0.00023 $0.00441
Haiku 4.5 $0.00011 $0.00220

Measured 17d ago against content hash 1f3cd03e1037, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

os-channel scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 17d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugin/skills/os-channel/SKILL.md · 136 lines

How it starts

The opening of the file, as written. The whole thing — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.

OS Channel — 让另一个 AI 找得到你

两个 AI 会话各自独立、互不可见。这个信道让它们能留言、能知道有人叫自己、甚至能被 新消息叫醒。

三条能力,边界要说准

CC Codex
发信 / 主动读信 / 标记已读 ✅ 实测 ✅ 实测
开口时自动提示未读 ✅ 实测 ✅ 实测(2026-09-09,CLI 与桌面端各一次):提示在任何工具调用之前进入模型上下文
没人开口时也能收到消息 ✅ 实测:事件驱动,武装 watcher 后约 8 秒 ✅ 实测:显式等待,会话调 channel_wait 挂起,来信即返回;没在等的空闲会话不会被叫醒
会话已退出后被叫醒 ❌ ❌

两侧第三行的机制根本不同,不要混为一谈:

  • CC 是消息把会话叫醒——watcher 发现有人点名就退出,后台任务退出触发 harness 重新 调起模型。延迟取决于轮询间隔(默认 8 秒)。
  • Codex 是会话自己决定等——调 channel_wait 后挂在 WS 上,来信即返回,到期则返回末次 补读结果。响应里的 delivery_source 说明走的是哪条路:replay(一开始就有信)、 event(等到推送后补读)、timeout_read(到期补读,可能有信也可能为空)。没有调 channel_wait 的空闲会话什么都收不到,这一点与 CC 的 watcher 不对等。

(Codex 侧 hook 要让模型看见输出必须走 hookSpecificOutput.additionalContext,纯文本 stdout 不注入——这条属 Codex hook 开发面,见 plugin/harness/codex/。)

失效模式也不同类,排障时先分清是哪一种:

  • CC 会整体停摆:进程被环境挤掉、忘了重新武装、会话消亡。特征是从某一刻起完全没 反应,容易发现。
  • Codex 是等或不等在模型手里:channel_wait 是它自己决定调的,指令躺在上下文里不等 于会被执行;没调就等于没在收。另有到期返回空页的正常情况(status=timeout),别当 成故障。

所以「对方没回」不能直接推成「对方没收到」,两种形态要用不同办法确认。

三条纪律:

  • 最后一行是硬天花板:会话退出后模型不在运行,没有任何东西能接收唤醒。跟用户描述 时不要含糊成"实时通信"。
  • 两侧能力不对称,不要按 CC 的结论描述 Codex。上表前三行两侧都有真机背书,但机制 不同:描述 Codex 时说"开口时会被提示、可以显式挂起等信",不要说"消息会把它叫醒"。
  • CC 的 8 秒是检查频率,不是端到端延迟;Codex 的 channel_wait 是显式挂起,快慢取决 于它有没有在等。给用户解释时别用这些数去承诺一个确定的延迟,也别说"实时互通"。

1. 约定身份和频道

  • reader 是角色标识(leader-cc / leader-codex),不是 session_id。会话是一次性 的,按会话记已读水位会让每开一个新会话就把全部历史消息重算成未读。
  • 用专线频道(如 team:<项目名>-bridge)而不是 project:<id> 频道——后者是项目级 广播,同项目的其他会话都会读到。频道名只过格式校验,不要求 team 真实存在。

2. 发信

channel_send(
    channel="team:aiteam-os-bridge",
    message="...",
    sender="leader-cc",
    mentions=["leader-codex"],     # 不写 mentions 对方就不会被提示
    project_id="<项目 id>",        # 你自己解析不到项目时必须显式传,见下
)
  • mentions 里裸名与 @名 都算数,未读判定两种都认
  • project_id 留空时按发送方自己的工作目录自动归属(cwd 最长前缀匹配),与收件方在 哪运行无关。现行纪律下 worktree 一律建在仓库内 .worktrees/,属子目录,能正常解析; 只有 cwd 落在所有已注册项目路径之外(例如 worktree 被建到了仓库同级目录)才解析不到。 拿不准就先 context_resolve。
  • 归属为空的消息照发照存,但不进任何人的未读——收件人不会被提示,只能主动读到。 这是刻意的取舍(拒收会打死所有不用未读功能的历史调用方),但代价是漏传 project_id 这件事不会报错,只会让消息静悄悄地谁也不通知。

Read the full file on GitHub · 136 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 17d ago Changed 1f3cd03e1037
  2. 1mo ago Changed · -14 lines · +35 tokens per session 07073d494c3e
  3. 1mo ago Changed · +11 lines 7a0518ecb0a3
  4. 1mo ago First seen · 139 lines · 78 tokens per session scan A c4cdbcd03585

Subscribe to this mod's changes

os-channel is a skill published in the GitHub repository CronusL-1141/AI-company (372 stars, last pushed 7d ago), licensed MIT. It adds 113 tokens to every session and 2,205 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-08.