📦 Kiro Realtime Chat — 多实例实时聊天

v1.0.0

通过轮询共享 JSON 文件,实现多个 Kiro 实例间的准实时聊天与任务协同,无需网络或凭证。

0· 260·0 当前·0 累计
下载技能包
最后更新
2026/3/6
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
技能代码与说明符合其声明用途(通过本地 JSON 文件共享消息),不请求凭据或网络访问,但存在路径不一致及轻微安全/可用性问题,安装前需留意。
评估建议
该技能与描述一致,不要求凭据或网络访问,但安装前请确认并修正聊天文件路径(SKILL.md 与脚本不一致);消息以明文存于 OpenClaw 工作区,仅限非敏感内容并限制文件权限;脚本无文件锁与原子写,并发写可能损坏 JSON,建议加锁或先写临时文件再重命名;过短轮询间隔会增加磁盘 I/O,需权衡响应与负载;若需更高保密或真实时,请改用认证网络方案(MCP/WebSocket)或加密。若继续使用,请先审阅两则 Python 脚本并在安全环境测试。...
详细分析 ▾
用途与能力
名称/描述、SKILL.md 及两则 Python 脚本一致:通过读写共享 JSON 聊天文件实现 Kiro 实例间消息交换。未请求无关凭据、二进制文件或网络集成。注意:SKILL.md 指向 memory/kiro-realtime.json,而脚本使用 ~/.openclaw/workspace/memory/kiro-realtime.json,路径不匹配可能导致配置错误或混淆。
指令范围
所有指令与代码仅操作本地 JSON 文件(创建、读取、写入、标记已读、轮询),不调用外部端点或读取无关系统文件。风险:未实现文件锁或原子写(并发写入时可能竞态/损坏),消息以明文存于用户工作区,可被本地其他进程或有权限用户读取。
安装机制
无安装规范或远程下载,仅含指令与自带脚本。未从外部 URL 获取任何内容,也未执行归档解压。
凭证需求
技能未请求环境变量或凭据,符合其设计。然而,聊天数据写入用户 OpenClaw 工作区路径(~/.openclaw/workspace/memory),若消息含敏感内容,可能被本地其他进程/有文件系统访问权限的用户读取;该风险由所选存储方式固有。
持久化与权限
技能未标记 always:true,仅用户调用。不修改其他技能配置或系统级设置,仅读写自身聊天 JSON 文件。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/3/6

通过 JSON 轮询实现 Kiro 实例间的实时聊天

无害

安装命令

点击复制
官方npx clawhub@latest install kiro-realtime
镜像加速npx clawhub@latest install kiro-realtime --registry https://cn.longxiaskill.com

技能文档

# Kiro 实时聊天 ## 概述 本技能通过轮询共享 JSON 文件,实现多个 Kiro 实例之间的准实时通信。每条消息包含时间戳、发送者及内容。 ## 文件位置 `` memory/kiro-realtime.json ` ## JSON 结构 `json { "messages": [ { "id": 1, "from": "VPS Kiro", "to": "Laptop Kiro", "message": "Selam!", "timestamp": "2026-03-05T22:58:00Z", "read": false } ], "lastCheck": "2026-03-05T22:58:00Z" } ` ## 用法 ### 发送消息 `python import json import os from datetime import datetime CHAT_FILE = "memory/kiro-realtime.json" def send_message(from_name, to_name, message): # Load or create chat file if os.path.exists(CHAT_FILE): with open(CHAT_FILE, "r") as f: chat = json.load(f) else: chat = {"messages": [], "lastCheck": datetime.now().isoformat()} # Add new message msg_id = len(chat["messages"]) + 1 chat["messages"].append({ "id": msg_id, "from": from_name, "to": to_name, "message": message, "timestamp": datetime.now().isoformat(), "read": False }) # Save with open(CHAT_FILE, "w") as f: json.dump(chat, f, indent=2) return msg_id ` ### 检查新消息 `python def check_messages(my_name, since_timestamp=None): if not os.path.exists(CHAT_FILE): return [] with open(CHAT_FILE, "r") as f: chat = json.load(f) # Update last check time chat["lastCheck"] = datetime.now().isoformat() with open(CHAT_FILE, "w") as f: json.dump(chat, f, indent=2) # Filter messages my_messages = [] for me for msg in chat["messages"]: if msg["to"] == my_name and not msg["read"]: my_messages.append(msg) msg["read"] = True # Save read status with open(CHAT_FILE, "w") as f: json.dump(chat, f, indent=2) return my_messages ` ### 轮询循环(实现准实时) `python import time def poll_messages(my_name, interval=5): """Poll for new messages every N seconds""" while True: msgs = check_messages(my_name) for msg in msgs: print(f"{msg['from']}: {msg['message']}") # Process and respond here time.sleep(interval) `` ## 推荐轮询间隔 - 需要快速响应: 2–3 秒 - 正常场景: 5–10 秒 - 低带宽环境: 30–60 秒 ## 提示 - 处理后将消息标记为“已读” - 利用时间戳避免重复处理 - 如需更佳实时性,可考虑 MCP server 或 WebSocket - 单条消息请保持在 1000 字符以内

数据来源ClawHub ↗ · 中文优化:龙虾技能库