Skip to content

1EchA/Codex-KBChat

Repository files navigation

KBChatMenuBar (Codex KBChat)

macOS 菜单栏(Menu Bar)知识库 + 聊天助手:
点击菜单栏✨图标或快捷键唤起对话,聊天内容会自动沉淀到 本地 Markdown 知识库(默认 ~/CodexVault)。

image
  • 形态:NSStatusItem + NSPopover(轻量常驻)
  • 输出:本地文件(可检索、可同步、可长期积累)
  • 支持:OpenAI 官方接口 + OpenAI-compatible 中转/代理(Responses API)
  • 启动自检:状态栏显示 endpoint,并提示 ✅ 接口OK / ⚠️ 接口不可用

Docs:

  • Configuration: docs/CONFIG.md
  • Contributing: CONTRIBUTING.md

KBChatMenuBar demo

KBChatMenuBar vault

⬇️ Download(推荐)

直接下载已打包版本(无需编译):

在 Release 页面中下载附件:KBChatMenuBar.app.zip → 解压 → 得到 KBChatMenuBar.app

首次打开(macOS 安全提示)

由于这是未做 Apple 公证(notarization)的开源分发包,第一次打开可能会被 Gatekeeper 拦截。

推荐处理方式(二选一):

  • 右键(或按住 Control 点击)KBChatMenuBar.app → 打开 → 再次确认打开
  • 系统设置 → 隐私与安全性 → 找到拦截提示 → 点“仍要打开”

如果你想支持脚本化下载(稳定的 /releases/download/... 链接),建议把 zip 作为 Release asset 上传(而不是 user-attachments)。

✅ Quick Start(3 步)

1) 配置 Key(二选一)

推荐:环境变量

export OPENAI_API_KEY="YOUR_KEY"

或写入文件:~/.codex/auth.json

{ "OPENAI_API_KEY": "YOUR_KEY" }

2) 选择接口:官方 / 中转(二选一)

默认不写任何配置:走官方

  • 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:8045

中转示例:Packy(我们在用)

model_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"

3) 启动并验证

启动后看状态栏:

  • 显示当前 responses endpoint(确认是官方还是中转)
  • 显示自检结果:✅ 接口OK⚠️ 接口不可用

📁 Vault(知识库位置)

默认:~/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

✨ Features

  • Chat UI:气泡消息、typing 动效、链接可点击、支持复制整条/复制链接
  • KB 沉淀:对话达到阈值自动总结为 Markdown
  • Monitoring:Hugging Face / GitHub 监控,支持日报/周报
  • Workflows:节点级进度展示(monitor → summarize → write)
  • Skills:启动自动安装到 ~/.codex/skills,可扩展能力

🧩 Skills & Workflows

./scripts/kbchat-skills bootstrap
./scripts/kbchat-skills find-skills
  • App 启动会自动安装 skills 到 ~/.codex/skills
  • 支持 workflow_run 自动执行监控/摘要/整理流程

⚙️ 自定义

1) 修改默认行为(模型/人设/快捷键/窗口大小)

配置存放在 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 生效。

2) 自定义 Skills(最推荐的扩展方式)

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.md

SKILL.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

3) 自定义接口(官方/中转/非标准路径)

  • 官方:默认无需配置
  • 中转:~/.codex/config.tomlbase_url
  • 非标准:用 responses_url = ".../v1/responses" 直接指定完整 endpoint

🤝 Contributing

欢迎 PR / Issue(bug 修复、文档、UI 打磨、skills/workflows 扩展都欢迎)。

建议提交前自检:

swift build -c debug
./scripts/package_app.sh

🔐 macOS 权限(首次使用需要确认)

不同 macOS 版本的提示文案略有差异,但大致需要你允许以下权限:

  • 通知 (Notifications):用于提醒/工作流完成提示

    • 系统设置 → 通知 → KBChatMenuBar → 允许通知
  • 访问文件夹 / 文件 (Files & Folders):用于写入/读取本地知识库 ~/CodexVault

    • 默认会写入用户目录下的 CodexVault/
    • 如果你用自定义路径(CODEX_VAULT),也需要确保该目录可写
  • 网络访问:用于访问 OpenAI 官方或中转服务(Responses API)

    • 若你使用公司网络/校园网,可能需要代理或放行域名

如果 App 被系统拦截:系统设置 → 隐私与安全性 → 仍要打开。

🛠 Troubleshooting

  • 找不到 OPENAI_API_KEY

    • 优先使用环境变量 OPENAI_API_KEY
    • 或检查 ~/.codex/auth.json JSON 是否合法、字段名是否为 OPENAI_API_KEY
  • 接口不可用 / 401 / 403 / 400

    • 官方:检查 key 是否有效、网络是否可访问 OpenAI
    • 中转:检查 base_url 可访问,且支持 /v1/responses
    • 非标准路径:用 responses_url=".../v1/responses" 直接指定
  • 通知不弹出

    • 系统设置里开启通知权限(见上文“macOS 权限”)
  • 找不到bar中的✨图标?

    • 可能是呗其他应用图标挤掉了,确认权限给好了之后删一删其他的应用在bar中的图标,然后把✨往右拖拽一点提高它的优先级,后续就不需要重新操作了

🧑‍💻 Development(从源码运行/打包)

从源码运行(开发调试):

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

📌 Roadmap

  • 监控摘要:排序与去重进一步优化
  • 知识库检索面板(可视化搜索/筛选)
  • 更多可配置项(快捷键/监控源/频率/通知策略)

📄 License

MIT License

About

macOS 菜单栏(Menu Bar)知识库 + 聊天助手

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors