npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

imcodes-cn

v2026.5.2187

Published

A chat interface for AI coding agents — control Claude Code, Codex, Gemini CLI, OpenCode from browser and mobile

Readme

IM.codes

English | 繁體中文 | Español | Русский | 日本語 | 한국어

给 AI agent 的 IM。共享记忆、受监督执行,以及跨模型审计。

IM.codes 为 coding agent 提供一套跨 provider 共享的记忆层。它会把已完成的工作沉淀成可复用上下文,再把合适的历史注入后续 session,贯通 Claude CodeCodexGemini CLI、GitHub Copilot、Cursor、OpenCode、OpenClawQwen 等,同时提供终端访问、文件浏览、Git 视图、localhost 预览、通知、多 agent 工作流,以及 transport 型 agent 的原生流式输出。内置 Auto supervision 可在每轮完成后判断任务是否完成、是否继续自动执行,并可选进入审计/返工闭环后再把控制权交还给你。内置 P2P 讨论功能,让多个模型相互审阅对方的方案和实现,能有效减少单模型的遗漏、盲点和偏差。

说明: 本文件是中文版。英文版(README.i18n/README.en.md)是规范版本。 若内容存在差异,以英文版为准。

支持多个 agent 通过 CLI 和 SDK 两种方式接入。

截图

桌面端

iPad / 平板

手机

Apple Watch

手表支持会话快速查看、未读计数、推送通知,以及直接在手腕上快速回复。

下载

支持 iPhone、iPad 和 Apple Watch。也可以通过 Web App 使用。

为什么做这个

当你离开电脑时,大多数 coding-agent 工作流都会断掉。agent 仍然在终端里运行,但继续工作通常意味着 SSH、tmux attach、远程桌面,或者只能等你回到电脑前。

IM.codes 让这些会话在手机或网页上也始终可达:打开终端、检查文件和 Git 变更、在其他设备上预览 localhost、在任务完成时收到通知,并继续调度多个 agent。

它不是另一个 AI IDE,也不是普通的远程终端。它是围绕终端型 coding agent 的消息与控制层。

这是一个个人项目。我自己几乎没写代码——它基本由 Claude Code 构建完成,CodexGemini CLI 也提供了大量贡献。

共享代理上下文与记忆

IM.codes 会持续把已完成的代理工作沉淀成可复用记忆,并在后续会话中自动回灌这些上下文。

  • 保存的是问题 → 解决方案,不是日志噪音。 只有最终 assistant.text 会进入记忆;流式 delta、tool call、tool result 和中间噪音都会被排除。
  • 个人记忆支持可选云同步。 原始和处理后的记忆始终保留在本地;处理后的摘要可以按需同步到用户级云端池,在多台设备之间共享。
  • 企业共享上下文可查询、可检查。 团队可以把经验发布到 workspace/project 作用域,在 UI 里查询、查看统计,而不是把上下文藏在不可见的 prompt 里。这部分仍在持续开发中,还没有经过完整的生产级测试。
  • 多语言召回。 本地语义搜索和基于 pgvector 的服务端召回使用多语言 embedding,可以跨中英日韩西俄等语言找到相关修复经验。
  • 按消息和按会话启动自动注入。 相关历史会在发送消息前和 session 启动时自动注入,并通过 timeline 卡片显示召回内容、原因、相关性分数、召回次数和最后使用时间。
  • 用户可见、可控。 Shared Context UI 分离 raw events、processed summaries、cloud memory 和 enterprise memory,并提供查询、预览、archive/restore 与处理配置控制。

受监督执行与 Auto Audit

IM.codes 可用你自己的 supervisor 提示词对支持的 agent session 做逐轮驱动 —— 每一轮 idle 边界上结构化判定是 auto-continue、交还给你,还是触发一次 audit 闭环,而不是让你每轮手动打 "continue"。

  • 按 session 配置 Auto 模式。 可以为每个 session 单独设置 offsupervisedsupervised_audit,而不是对所有会话强行使用同一套策略。
  • 在 idle 边界做完成判定。 当一轮完成后,IM.codes 会把结果判成 completecontinueask_human,并把后续 continue prompt 直接发回同一 session。
  • 失败即回退的自动化。 Auto supervision 会保持在 timeline/footer 中可见,使用结构化判定,并在超时、输出无效或配置错误时把控制权还给你,而不是默默猜测。
  • 可选的 audit → rework 闭环。supervised_audit 中,已完成的回合可自动进入审计流程,并在交还控制权前把返工 brief 发回同一 session。
  • 全局默认值 + 单 session 覆盖。 你可以先设置默认的 supervisor backend/model/timeout,再按需在某个 session 上覆盖 backend/model/timeout、审计模式和自定义提示词。
  • 理解 IM.codes 原生工作流。 Auto supervision 会把 OpenSpec 工作流、P2P 讨论/评审流程,以及 imcodes send 式的 agent 协作视为正常下一步,而不是立即停下来要求人工介入。

功能

远程终端

可以从任意浏览器完整访问 agent 会话终端——无需 SSH、VPN 或端口转发。支持原始终端模式(原生 CLI 体验)与结构化聊天视图(解析工具调用、thinking block 和流式输出)之间切换。实时 PTY 流以 12fps 更新,没有消息条数限制。

文件浏览与 Git 变更

用树形结构浏览项目文件。可以从任意设备上传文件、图片和照片,也可以直接从服务器下载文件。Changes 标签页显示 git status,并给出每个文件彩色的 +新增 / -删除 行数。点击文件可打开悬浮预览窗口,支持语法高亮、diff 视图和每 5 秒自动刷新。文件浏览器还可以固定到侧边栏,并自动跟随当前活动标签的项目目录。

本地 Web 预览

可以在手机、平板或远端浏览器上预览你本机的开发服务器,而无需部署。daemon 会通过安全的 WebSocket 隧道把 localhost 流量代理到服务器。HTML 重写和运行时补丁会处理 URL 映射,使链接、fetch 和 WebSocket 都能正常工作。支持通过 WebSocket 隧道实现 HMR / 热更新。不需要公开 URL,也不依赖第三方隧道——流量只在你自己的 IM.codes 服务器中转。

移动端、手表与通知

完整支持移动端,包含生物识别认证和推送通知。Shell 会话在手机上也支持交互式键盘输入(类似 SSH)。子会话预览卡始终显示最新消息。Toast 通知可直接跳转到对应会话。Apple Watch 支持会话快速查看、未读计数和快速回复。

跨模型审计与 P2P 讨论

单模型输出不应被盲目信任。P2P 讨论让多个 agent——跨不同 provider 和思维风格——在写代码之前就对同一代码库进行协作分析。每轮遵循可自定义的多阶段流程,每个 agent 读取所有前序贡献并在此基础上输出。不同模型捕获不同类别的问题:一个发现竞态条件,另一个指出遗漏的 migration,第三个质疑 API 设计。这种跨 provider 交叉审查能在实现前发现绝大部分问题,大幅减少返工。

内置模式包括 audit(结构化 audit → review → plan 流水线)、reviewdiscussbrainstorm,也可以自定义阶段序列。侧边栏中的环形进度条会显示 round / hop 完成情况。支持 Claude Code、Codex、Gemini CLI 和 Qwen,也兼容带 sandbox 的 agent。通过 @@all(config) 或 UI 配置参与者、轮次、模式和 P2P 设置。

流式 Transport Agents

OpenClawQwen 这类 transport 型 agent,提供原生流式输出支持。这些 agent 通过网络协议(WebSocket 或本地 SDK)连接,而不是通过终端抓取,从而能提供实时 delta 更新、工具调用跟踪和会话恢复。

OpenClaw 说明: imcodes connect openclaw 目前只在 macOS 上验证过。

Agent 到 Agent 通信

agent 可以通过 imcodes send 直接互相发送消息。一个会话中的 agent 可以请求另一个兄弟会话去 review 代码、跑测试或协同处理任务——无需用户手动中转。支持按 label、session 名或 agent 类型解析目标。--reply 参数会要求对方自动把结果发回。内置了防滥用的保护:深度限制、速率限制和广播上限。

imcodes send "Plan" "review the changes in src/api.ts"
imcodes send "Cx" "run tests" --reply
imcodes send --all "migration complete, check your end"

除了 agent-to-agent 聊天,你还可以使用 script 会话构建自定义自动化。一个运行在 script 会话中的 Python 脚本可以调用 imcodes send,根据任意外部事件触发 agent:

# monitor.py — watch a log file, trigger agent when errors appear
import subprocess, time

while True:
    with open("/var/log/app.log") as f:
        for line in f:
            if "ERROR" in line:
                subprocess.run([
                    "imcodes", "send", "Claude",
                    f"Fix this error and write the patch to /tmp/fix.patch:
{line}"
                ])
    time.sleep(30)
# Webhook → agent: GitHub webhook handler triggers code review
curl -X POST https://your-server/webhook -d '{"pr": 42}' \
  && imcodes send "Gemini" "review PR #42, write summary to /tmp/review.md"

# CI → agent: post-build trigger
imcodes send "Claude" "tests failed on main, check CI log at /tmp/ci.log and fix" --reply

适用场景包括:日志监控自动修复、Webhook 触发代码评审、CI 失败自动诊断、定时数据管道检查,以及需要把结果写入指定文件供人工审批的自定义工作流。

@ 选择器——智能 Agent 与文件选择

输入 @ 搜索项目文件,输入 @@ 选择 agent 用于 P2P 分发。@@all(config) 会按照当前会话保存的 P2P 设置(模式、轮数、参与者)发送给所有已配置 agent。通过 @@all+ 可以自定义轮数。前端只负责选择,具体展开由 daemon 通过结构化 WS 路由完成。

多服务器、多会话管理

你可以把多台开发机接到同一个面板里。每台机器运行一个轻量 daemon,通过 tmux 管理本地 agent 会话。你可以在一个界面里查看所有 server 和 session,并即时启动、停止、重启或切换。Sub-session 允许你在运行中的主会话内部再启动更多 agent 来并行处理任务。支持可拖拽标签、固定和右键菜单。

Discord 风格侧边栏

支持 server 图标栏快速切换服务器。层级式会话树支持折叠 sub-session、未读消息徽标,以及 agent 完成任务时的 idle 闪烁动画。任意悬浮窗口(文件浏览器、仓库页、子会话聊天)都可以固定到侧边栏。语言切换器和构建信息在底部。

可固定面板

任何悬浮窗口都可以拖到侧边栏并固定为常驻面板。支持文件浏览器、仓库页面、子会话聊天和终端视图。面板可调整大小、通过服务器同步到多设备,并在重连后自动恢复。底层是通用注册机制,新面板类型只需在一个文件里注册。

仓库看板

可以直接在应用里查看 issue、pull request、branch、commit 和 CI/CD 运行状态。后台静默刷新,不会出现下拉刷新抖动。CI 状态自动轮询(运行中每 10 秒,否则每 15 秒)。仓库页面也可以固定到侧边栏,常驻显示。

定时任务(Cron)

支持以 cron 风格自动化重复性的 agent 工作流。你可以创建定时任务,按时间表向某个 session 发送命令,或触发多 agent 的 P2P 讨论。提供常见周期的可视化 cron 选择器、时区感知调度,以及用于调试的“立即运行”。执行历史支持展开查看详情,点击任何记录都可以跳转到目标会话并引用结果继续跟进。还支持跨任务执行列表的 Latest / All 模式和多服务器筛选。

跨设备同步

标签顺序、固定标签和固定侧边栏面板会通过服务器偏好 API 在多设备之间同步。采用写穿缓存模式:本地 localStorage 用于即时渲染,服务器端使用防抖 PUT 以保证跨设备一致性。通过带时间戳的 payload 解决冲突。设备特有状态(侧边栏宽度、面板高度、视图模式)仍然保留在本地。

国际化

支持 7 种语言:English、简体中文、繁體中文、Español、Русский、日本語、한국어。侧边栏底部有语言切换器。所有用户可见字符串都通过 i18n key 管理。

OTA 更新

daemon 可以通过 npm 自升级。也可以从 Web UI 为单台设备或全部设备触发升级。

IM.codes 不是什么

  • 不是另一个 AI IDE
  • 不是聊天壳子
  • 不只是远程终端客户端
  • 不是 Claude Code、Codex、Gemini CLI、OpenClaw 或 Qwen 的替代品
  • 它是围绕这些工具的消息与控制层

架构

You (browser / mobile)
        ↓ WebSocket
Server (self-hosted)
        ↓ WebSocket
Daemon (your machine)
        ↓ tmux / transport
AI Agents (Claude Code / Codex / Gemini CLI / OpenClaw)
        ↔ imcodes send (agent-to-agent)

Daemon 运行在你的开发机上,通过 tmux 管理进程型 agent,会通过网络协议管理 transport 型 agent(例如 OpenClaw gateway)。Agent 之间可以用 imcodes send 互相通信。Server 负责在你的设备与 daemon 之间中转连接。所有数据都留在你自己的基础设施里。

安装

npm install -g imcodes

快速开始

强烈建议自托管。 共享实例 imc.ovmap.cn 只用于测试,没有可用性保证,可能会被限流,也可能成为攻击目标。这是个人项目,没有商业支持。除了评估之外,建议部署到你自己的基础设施。

你可以用 imc.ovmap.cn 做体验,或者在正式使用时自行部署。

imcodes bind https://imc.ovmap.cn/bind/<api-key>

这条命令会把你的机器绑定到 IM.codes,启动 daemon,把它注册成系统服务,并让这台机器出现在网页和移动端面板里。

OpenClaw 连接

如果本机正在运行 OpenClaw,可以在 daemon 所在机器上把 IM.codes 连接到 OpenClaw gateway:

imcodes connect openclaw

这条命令会做以下事情:

  • 默认连接到 ws://127.0.0.1:18789
  • 自动复用 ~/.openclaw/openclaw.json 中的 OpenClaw gateway token
  • 把 OpenClaw 的主会话和子会话同步到 IM.codes,显示为 transport-backed session / sub-session
  • 把 IM.codes 侧的连接配置保存到 ~/.imcodes/openclaw.json
  • 重启 daemon,使 OpenClaw transport 会话能自动重连

常见变体:

imcodes connect openclaw --url ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=... imcodes connect openclaw
imcodes connect openclaw --url wss://gateway.example.com

注意:

  • 远程的非 TLS ws:// 地址需要加 --insecure
  • 可以通过 imcodes disconnect openclaw 删除保存的配置并断开连接
  • 这条流程目前只在 macOS 上测试过

自托管

一键部署

在同一台机器上部署 server + daemon。需要 Docker,以及一个 DNS 已指向服务器的域名。

npm install -g imcodes
mkdir imcodes && cd imcodes
imcodes setup --domain imc.example.com

这条命令会自动生成全部配置,启动 PostgreSQL + server + Caddy(自动 HTTPS),创建管理员账户,并绑定本机 daemon。最后会打印出凭据。

如果要连接更多机器:

npm install -g imcodes
imcodes bind https://imc.example.com/bind/<api-key>

手动部署

如果你希望手动配置:

git clone https://github.com/im4codes/imcodes.git && cd imcodes
./gen-env.sh imc.example.com        # generates .env with random secrets, prints admin password
docker compose up -d

生成的 docker-compose.yml 已经默认使用 pgvector/pgvector:pg18 作为 PostgreSQL 镜像。

然后访问 https://your-domain,使用 admin 和打印出来的密码登录。之后使用 imcodes bind 绑定你的开发机。

Windows(实验性)

Windows 通过 ConPTY 原生支持(Windows 10+ 内置),不需要 WSL。

安装与绑定(Windows)

npm install -g imcodes
imcodes bind https://imc.ovmap.cn/bind/<api-key>

升级(Windows)

imcodes upgrade

你也可以从网页面板远程触发升级(会向 daemon 发送 upgrade 命令)。

故障排查(Windows)

如果 daemon 在自动升级后停止运行,可以重建启动链:

imcodes repair-watchdog

这条命令会使用当前的 Node.js 和 imcodes 路径重写 watchdog 脚本和计划任务。适用于 Node.js 版本切换(nvm、fnm)之后,或者 daemon 升级后无法重启的情况。

如果升级后 imcodes 提示 “not recognized as internal or external command”,通常是 npm 全局目录没有加入 PATH。可以这样修复:

npm prefix -g

复制输出路径并把它加入 PATH:

setx PATH "<npm-prefix-path>;%PATH%"

然后打开一个新的终端窗口。

检查 daemon watchdog 日志:

%USERPROFILE%\.imcodes\watchdog.log

运行要求

  • macOS 或 Linux(都已验证)
  • Windows(实验性):通过 ConPTY 原生支持(Windows 10+ 内置)。直接 npm install -g imcodes 即可,不需要额外软件。WSL 也可用。
  • Node.js >= 22
  • 终端复用器:tmux(Linux/macOS)。Windows 使用 ConPTY(自动检测,系统内置)。
  • 至少安装一个 AI coding agent:Claude CodeCodexGemini CLIOpenClawQwen

免责声明

IM.codes 是一个独立开源项目,与 Anthropic、OpenAI、Google、Alibaba、OpenClaw 以及本文提到的其他公司不存在附属、背书或赞助关系。所有产品名、商标和注册商标均归其各自所有者所有。

许可证

MIT

© 2026 IM.codes