makit

Claude Code · Codex · opencode

跑 AI 会话的
高性能终端。

makit 是专为 AI 编程会话设计的终端,采用原生实现,体积小、响应快。Claude Code、Codex、opencode 可在其中分屏、多标签并行运行。makit 同时记录全部历史会话:无论会话最初在哪个终端中启动,都能在侧栏中找到,并一键继续对话;正在等待您操作的会话会被明确标出。

通用安装包(Intel + Apple Silicon),约 15 MB · 当前版本 v0.2 · 已签名并经 Apple 公证(0.2.7 起)

makit 界面:左侧按时间分组的会话列表,右侧分屏终端
下载macOS、Homebrew、Windows 预览版 快速上手从安装到恢复第一个会话 常见问题隐私、签名、支持的 agent

基于原生 Rust + GPUI 构建,并非网页套壳:安装包 7.7 MB,内存占用约 55–75 MB,内置多套精美主题,支持 iTerm2 主题导入。仅在本地运行,不上传任何数据。

会话是对象,不是窗口

AI 编程会话本质上是一段保存在终端窗口里的对话。窗口关闭、目录改名或电脑重启之后,对话记录仍保存在磁盘上,但已没有入口可以找到它。makit 改变了管理的单位:以会话本身为对象,而不是以窗口为对象。它直接读取 Claude Code、Codex、opencode 写在磁盘上的会话记录,因此无论会话最初在哪个终端中启动,都会列在这里。

Unix 作业控制makit
jobs:列出作业和状态会话列表:运行中 / 等待操作 / 空闲 / 已停止 / 已归档
Stopped (tty input):停在那里等待输入等待审批 / 等待回答,并通知
fg %n:调回前台一键恢复,回到原工作目录
终端关闭后,作业随之消失记录保存在磁盘上:窗口关闭、系统重启、目录改名之后依然存在

与「持久会话终端」的区别

带后台服务的终端,会在窗口关闭后让进程继续运行,前提是该服务仍在运行。makit 保留的是对话:记录保存在磁盘上,系统重启、后台服务停止、目录改名之后依然存在。相应的代价是:关闭标签即结束其进程,恢复操作是继续之前的对话,而不是重新接入一个仍在运行的程序。

快速上手

  1. 安装并打开 makit。下载 .dmg,将 makit 拖入「应用程序」文件夹后打开。0.2.7 之前的版本没有签名,首次打开多一个步骤(详见下载与安装)。
  2. 查看侧栏。您已有的 Claude Code、Codex、opencode 会话会自动列出,并按时间分组。选择任一会话,即可在原工作目录中继续对话。
  3. 按 ⌘K。输入项目名或任务关键字,按回车,会话将在新标签中打开。
  4. 开启通知(Claude Code):在设置中安装 hook。此后会话需要审批或等待回答时,系统会弹出桌面通知。

下载与安装

macOS 为主要支持平台;Windows 目前为预览版;Linux 版本计划于 0.3 提供。

macOS

下载 .dmg 安装包,打开后将 makit 拖入「应用程序」文件夹。

下载 macOS 版

-universal 通用安装包适用于所有 Mac;Apple 芯片和 Intel 单架构安装包的体积约为其一半。

Homebrew

brew install --cask nicholas-hoult/tap/makit

Windows(预览版)

包含 makit.exe 的 .zip 压缩包,暂未签名,部分功能尚未实现。首次运行时 Windows SmartScreen 会给出提示,请依次选择:更多信息 → 仍要运行。

下载 Windows 版

macOS 首次打开。0.2.7 起应用已用 Apple Developer ID 签名并经 Apple 公证,双击即可打开。0.2.7 之前的版本没有签名,首次打开时 macOS 会予以拦截:请前往 系统设置 → 隐私与安全性,点击 仍要打开;如提示「已损坏」,请在终端执行 xattr -dr com.apple.quarantine /Applications/makit.app。

找到所有会话

makit 扫描 ~/.claude 和 ~/.codex(以及 opencode 的数据库),并列出找到的全部会话,不论其最初在哪个终端中启动。侧栏支持按时间、项目或状态分组,会话增减时列表会自动更新。

  • 点击会话即可恢复。若该会话已处于打开状态,makit 会切换到对应标签,不会重复打开。
  • 会话在原工作目录中恢复。若该目录已被删除或移动,makit 会重建关联,Claude Code 的会话不会丢失。
  • Claude Code、Codex、opencode 的会话以相同方式列出和恢复。三者均可显示运行状态;「忙碌」状态支持 Claude Code 和 opencode(Codex 显示为空闲);「等待操作」状态及对应通知目前仅支持 Claude Code。

等待操作的会话

每个会话在侧栏和标签上都有状态标记。标记以形状区分含义,不依赖颜色也能辨认:

标记状态
带三个点的实心圆等待操作:需要审批或回答
带弧线的圆环忙碌
带对勾的圆环空闲
虚线圆环已停止

会话进入等待状态时,makit 还会弹出桌面通知,并在通知中心(铃铛图标)保留该条记录。此功能依赖通知 hook:请在设置中点击安装 hook。这也是 makit 唯一会修改 ~/.claude/settings.json 的操作。

会话由运行中转为等待审批:状态标记变化,铃铛亮起,通知中心保留该条记录。

批量归档

归档会将已完成的会话收起,但不会删除;会话文件仍保留在 Claude Code、Codex 原本写入的位置。

  • 按住 ⌘ 点击,可将会话加入或移出选择;按住 ⇧ 点击,可选择连续范围。
  • 在选中的行上右键:选择归档所选 (N);若所选会话均已归档,则显示为取消归档所选 (N)。

够快的终端

终端是产品的另一半。它以原生 Rust + GPUI 实现,并非网页套壳,因此即使磁盘上有数千个会话,依然保持小巧、快速。

合成会话,Intel Core i7-1068NG7,release 构建,单架构。完整数据、方法和限制见 README。

指标数值
安装包(.dmg,单架构)7.7 MB
5,000 个会话,会话列表就绪0.6–0.9 s
运行内存55–75 MB
长对话每新增一条记录(5–200 MB)≈ 0.04 ms
  • 树形分屏与可拖动的标签;标签支持固定,也支持仅停止会话而不关闭。
  • 双击选词、字号缩放,以及可通过 ⌘ 加点击打开的链接和路径。
  • 内置多套精美主题,支持 iTerm2 主题导入。

分屏与标签

终端采用树形分屏:可继续拆分窗格,拖动分割线调整大小,并将标签拖到其他窗格。在同一屏幕上即可同时查看多个会话。

  • 右键标签 → 停止会话:结束进程并释放内存,标签保留在原位(重启后依然存在);停止其他标签会对其余标签执行同样操作。
  • 进程已结束的标签可原地重新运行:在其中按 Enter,或右键 → 恢复会话。
  • 右键 → 固定标签,使其始终位于窗格最前。「关闭其他」和「关闭右侧」不会关闭已固定的标签。

快捷键

按键作用
⌘K命令面板:搜索并打开会话
⌘1…9切换标签
⌥⌘1…9切换窗格
⌘ 加点击打开光标下的链接或路径
⌥⌘1…9 切换窗格,⌘1…9 切换标签,⌘K 打开更多会话。

对话重排阅读

实验性功能,默认关闭。开启后,会话历史会根据当前窗口宽度,从会话文件重新排版,并随窗口大小变化;底部处于活动状态的部分仍是真实终端。可在设置中开启。

主题与语言

内置多套精美主题,支持 iTerm2 主题导入。跟随系统明暗。界面语言支持 English 和中文,默认为英文,可在设置中切换或跟随系统。

其中三套在应用里的样子:

Catppuccin Mocha
GitHub Light
Dayfox

更新

makit 在启动后检查新版本,此后每小时检查一次。发现新版本时,标题栏会出现 Update x.y.z 标记,其菜单提供更新并重启、发布说明和跳过此版本三个选项。替换应用前,会使用发布页公布的 SHA-256 校验安装包;替换失败时自动回滚。通过 Homebrew 安装的,请运行 brew upgrade --cask makit。检查更新时仅请求版本信息。

隐私与数据

makit 仅读取本机的会话文件。无需账号,无遥测,不会上传任何会话内容、路径或项目名称。

  • 读取:~/.claude/projects、~/.claude/sessions、~/.codex/sessions,以及 opencode 的 SQLite 数据库(只读)。
  • 自身数据写入 ~/.claude/makit(设置、归档标记、日志)。
  • 仅当您点击安装 hook 时,才会修改 ~/.claude/settings.json。
  • 卸载 makit 不会删除会话;会话归 Claude Code、Codex、opencode 所有。

问题排查

打开 设置 → 诊断。检查环境会检测工具及其版本、PATH、代理变量、通知 hook、数据目录和会话目录,并给出修复建议。提交 issue 时,可使用复制诊断信息和打开日志目录;日志保留最近 7 天。

常见问题

和终端、终端复用器有什么不同?

makit 自带分屏终端,但它围绕会话而非窗口来组织:无论会话在哪里启动都会列出,保留其历史,并标明哪一个在等待操作。也可以与您习惯的终端搭配使用。

支持哪些 agent?

Claude Code、Codex 和 opencode。三者的会话均可列出和恢复;「等待操作」状态及通知目前仅支持 Claude Code。

会上传我的会话吗?

不会。它仅读取本地文件。检查更新时只请求版本信息,不会发送任何会话内容、路径或项目名称。

删掉 makit,会话会丢吗?

不会。会话归 Claude Code、Codex 所有,保留在原位置。删除 ~/.claude/makit 只会清除 makit 自身的设置和归档标记。

有没有签名?

有,0.2.7 起:用 Apple Developer ID 签名并经 Apple 公证。因为是个人开发者账号,证书上显示的是作者的法定姓名。0.2.7 之前的版本没有签名,打开步骤见「下载与安装」。

Windows 和 Linux 呢?

Windows 提供预览版(可正常运行,部分功能尚未实现);Linux 版本计划于 0.3 提供。

免费吗?

免费。项目开源,采用 MIT 或 Apache-2.0 双许可。