macOS 菜单栏(Menu Bar)知识库 + 聊天助手:
点击菜单栏✨图标或快捷键唤起对话,聊天内容会自动沉淀到 本地 Markdown 知识库(默认 ~/CodexVault)。
- 形态:NSStatusItem + NSPopover(轻量常驻)
- 输出:本地文件(可检索、可同步、可长期积累)
- 支持:OpenAI 官方接口 + OpenAI-compatible 中转/代理(Responses API)
- 启动自检:状态栏显示 endpoint,并提示
✅ 接口OK / ⚠️ 接口不可用
Docs:
- Configuration:
docs/CONFIG.md - Contributing:
CONTRIBUTING.md
直接下载已打包版本(无需编译):
- Releases(下载入口):https://github.com/1EchA/Codex-KBChat/releases
- 当前版本:v0.1.0
在 Release 页面中下载附件:KBChatMenuBar.app.zip → 解压 → 得到 KBChatMenuBar.app。
由于这是未做 Apple 公证(notarization)的开源分发包,第一次打开可能会被 Gatekeeper 拦截。
推荐处理方式(二选一):
- 右键(或按住 Control 点击)
KBChatMenuBar.app→ 打开 → 再次确认打开 - 系统设置 → 隐私与安全性 → 找到拦截提示 → 点“仍要打开”
如果你想支持脚本化下载(稳定的
/releases/download/...链接),建议把 zip 作为 Release asset 上传(而不是 user-attachments)。
推荐:环境变量
export OPENAI_API_KEY="YOUR_KEY"或写入文件:~/.codex/auth.json
{ "OPENAI_API_KEY": "YOUR_KEY" }默认不写任何配置:走官方
https://api.openai.com/v1/responses
如果你使用中转/代理,创建 ~/.codex/config.toml。
推荐写法(只填 base_url,程序会自动拼 /v1/responses):
[model_providers]
[model_providers.local]
base_url = "https://your-gateway" # 或 http://127.0.0.1:8045model_provider = "packycode"
[model_providers.packycode]
base_url = "https://codex-api.packycode.com/v1"说明(更安全/更不容易踩坑):
base_url可以带或不带/v1,程序会自动规范化并最终请求到/v1/responses。- 如果你的网关路径不标准(比如已经是完整 endpoint、或不是
/v1风格),建议直接用responses_url指定完整接口。
responses_url = "https://your-gateway/v1/responses"启动后看状态栏:
- 显示当前
responses endpoint(确认是官方还是中转) - 显示自检结果:
✅ 接口OK或⚠️ 接口不可用
默认:~/CodexVault
可用环境变量覆盖:
export CODEX_VAULT="/path/to/your/vault"目录结构示例:
CodexVault/
.kb/
config.json
state.json
memory.md
chats/YYYY/<session>.md
summaries/YYYY/<date>_<session>.md
summaries/digests/YYYY/<daily|weekly>.md
- Chat UI:气泡消息、typing 动效、链接可点击、支持复制整条/复制链接
- KB 沉淀:对话达到阈值自动总结为 Markdown
- Monitoring:Hugging Face / GitHub 监控,支持日报/周报
- Workflows:节点级进度展示(monitor → summarize → write)
- Skills:启动自动安装到
~/.codex/skills,可扩展能力
./scripts/kbchat-skills bootstrap
./scripts/kbchat-skills find-skills- App 启动会自动安装 skills 到
~/.codex/skills - 支持
workflow_run自动执行监控/摘要/整理流程
配置存放在 vault 的 CodexVault/.kb/config.json(首次启动会自动生成)。常用字段:
model: 默认模型(例如gpt-5.2)codex_profile: 对应~/.codex/config.toml的 profile(默认kb)persona_file: 人设文件路径(例如personas/04-warm-buddy.md)hotkey: 唤起快捷键(例如cmd+m)popover_width/popover_height: 弹窗尺寸(可选)use_response_format: 是否启用response_format(部分中转不支持,建议默认关)
小贴士:改完后重启 App 生效。
KBChat 的 skills 目录有两套来源:
- Personal skills:
~/.codex/skills/(优先级更高,推荐放你自己的改动) - Bundled skills:仓库自带
skills/
快速查看可用 skills:
./scripts/kbchat-skills find-skills创建一个自定义 skill(示例):
mkdir -p ~/.codex/skills/kbchat-my-skill
$EDITOR ~/.codex/skills/kbchat-my-skill/SKILL.mdSKILL.md 建议写 frontmatter(脚本会读取 name/description):
---
name: kbchat-my-skill
description: My custom workflow / prompt for KBChat
---
# Your instructions here...查看某个 skill 内容:
./scripts/kbchat-skills use-skill kbchat-my-skill- 官方:默认无需配置
- 中转:
~/.codex/config.toml配base_url - 非标准:用
responses_url = ".../v1/responses"直接指定完整 endpoint
欢迎 PR / Issue(bug 修复、文档、UI 打磨、skills/workflows 扩展都欢迎)。
建议提交前自检:
swift build -c debug
./scripts/package_app.sh不同 macOS 版本的提示文案略有差异,但大致需要你允许以下权限:
-
通知 (Notifications):用于提醒/工作流完成提示
- 系统设置 → 通知 → KBChatMenuBar → 允许通知
-
访问文件夹 / 文件 (Files & Folders):用于写入/读取本地知识库
~/CodexVault- 默认会写入用户目录下的
CodexVault/ - 如果你用自定义路径(
CODEX_VAULT),也需要确保该目录可写
- 默认会写入用户目录下的
-
网络访问:用于访问 OpenAI 官方或中转服务(Responses API)
- 若你使用公司网络/校园网,可能需要代理或放行域名
如果 App 被系统拦截:系统设置 → 隐私与安全性 → 仍要打开。
-
找不到 OPENAI_API_KEY
- 优先使用环境变量
OPENAI_API_KEY - 或检查
~/.codex/auth.jsonJSON 是否合法、字段名是否为OPENAI_API_KEY
- 优先使用环境变量
-
接口不可用 / 401 / 403 / 400
- 官方:检查 key 是否有效、网络是否可访问 OpenAI
- 中转:检查
base_url可访问,且支持/v1/responses - 非标准路径:用
responses_url=".../v1/responses"直接指定
-
通知不弹出
- 系统设置里开启通知权限(见上文“macOS 权限”)
-
找不到bar中的✨图标?
- 可能是呗其他应用图标挤掉了,确认权限给好了之后删一删其他的应用在bar中的图标,然后把✨往右拖拽一点提高它的优先级,后续就不需要重新操作了
从源码运行(开发调试):
git clone https://github.com/1EchA/Codex-KBChat.git
cd Codex-KBChat
swift run --disable-sandbox打包成 .app:
./scripts/package_app.sh
open ./dist/KBChatMenuBar.app- 监控摘要:排序与去重进一步优化
- 知识库检索面板(可视化搜索/筛选)
- 更多可配置项(快捷键/监控源/频率/通知策略)
MIT License

