README
🚀 zulook
zulook 可对 Zulip 对话进行只读访问。它既可以作为命令行工具(CLI)使用,也能充当 MCP 服务器或 ACP 代理。
只需提供一个 Zulip URL,就能获取相应的消息,就这么简单。
$ zulook https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/test
Messages from t-lang > test:
**Alice** (2025-01-15 14:32 UTC) [test]
Has anyone looked at the new RFC?
**Bob** (2025-01-15 14:35 UTC) [test]
Yes, I left some comments on the thread.
Older: https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/test/near/12340
Newer: https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/test/near/12345
🚀 快速开始
在使用 zulook 之前,你需要进行一些设置。
📦 安装指南
你需要一个 Zulip API 密钥,最简单的获取方式如下:
- 登录你的 Zulip 实例。
- 进入 个人设置 > 账户与隐私。
- 点击 管理你的 API 密钥,输入你的密码。
- 点击 下载 .zuliprc。
- 将其移动到
~/zuliprc:mv ~/Downloads/.zuliprc ~/zuliprc
配置文件路径遵循 zulip-terminal 的约定:~/zuliprc(无点号)。
或者,你也可以设置环境变量:
export ZULIP_URL=https://your-org.zulipchat.com
export ZULIP_EMAIL=you@example.com
export ZULIP_API_KEY=your_api_key
💻 使用示例
基础用法
CLI 方式
zulook <url> [limit=N]
你可以传入任何 Zulip URL,包括流、主题、直接消息、群组直接消息,无论是否带有 /near/ 锚点。默认的消息数量限制为 100 条。
# 流主题
zulook https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/test
# 直接消息对话
zulook https://rust-lang.zulipchat.com/#narrow/dm/116009,116107-dm/near/572348733
# 获取较少的消息
zulook https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/test limit=20
输出结果中会包含 Older 和 Newer 链接,方便你浏览历史消息。
MCP 服务器方式
zulook mcp
以 MCP 服务器的形式通过标准输入输出运行。它提供了一个 zulip 工具,你可以给它传入一个 URL 或者 "help"。
Claude Code 配置(~/.claude/settings.json):
{
"mcpServers": {
"zulook": {
"command": "/path/to/zulook",
"args": ["mcp"]
}
}
}
ACP 代理方式
zulook acp
以 ACP 代理的形式通过标准输入输出运行,可与 ACP 导体配合使用。
🔧 技术细节
zulook 会解析 Zulip 的窄化 URL,从 URL 片段中提取流/频道、主题、直接消息参与者和消息锚点。然后,它会使用相应的窄化过滤器调用 Zulip REST API(GET /api/v1/messages),并返回格式化后的消息。
URL 是唯一的交互接口。只有一个工具、一种命令模式,分页操作只需跟随链接即可,这些链接与你在浏览器中看到的是一样的。
🛠️ 构建
cargo build --release
构建该项目需要 Rust 2024 版本。
Scan to contact