KitKit 是一个原生、依赖为零、仅在本机处理数据的 macOS 截图工具。
它由 Swift、SwiftUI、AppKit、ScreenCaptureKit、Vision 和 AVFoundation 构建,截图、滚动拼接、OCR、标注和录屏都不会上传到网络。
- 区域截图:按显示器物理分辨率冻结当前屏幕画面;悬停自动识别窗口,单击选中窗口,也可拖动自由框选;松开鼠标后可拖动选框内部整体换位,八个手柄可扩大或缩小选区,预览保持屏幕原生像素精度。
- 像素检查器:开始截图时显示无边框 15×15 像素预览和十字准线,信息精简为物理像素坐标与 HEX;按
H/Z复制 HEX、按R复制 RGB,方向键微调 1 px。 - 图片编辑:选择、矩形、直线、箭头、画笔、文字、像素马赛克、毛玻璃。
- 对象编辑:完成后可选择、移动、删除、调整颜色与尺寸;支持撤销/重做。
- 贴图:点击图钉或按
P,将当前截图固定为始终置顶的非激活浮窗;可继续操作其他应用,拖动贴图可换位,悬停后可关闭,并支持同时保留多张贴图。 - 截图外观:0–48 px 圆角即时预览;最终 PNG 可添加右下定向阴影。
- OCR:Apple Vision 本地识别中英文,结果可像文本编辑器一样自由选择和复制。
- 滚动截图:先像普通截图一样选择区域,可拖动内部换位或用八个手柄缩放;按
S/Enter开始后保持选区清晰、其余区域灰显;选区下方提供紧凑的三个图标按钮:取消、完成并复制到剪贴板、下载到本地;可自由上下滚动,回看已经采集的区域不会重复追加内容。 - 内存保护:滚动截图只保存新增画面、预览降采样,并设置 160 MiB 原始像素上限。
- 屏幕录制:ScreenCaptureKit 30 fps、最高 4K、H.264 MOV;支持无声音、系统声音、麦克风和双音轨混合录制。
- 剪贴板:选区确认时不写入中间原图;只在最终复制或保存时写入一次最终截图。
- 中英文界面:首次启动跟随系统语言,也可在主界面顶部或菜单栏中即时切换;选择会自动保存。
- macOS 14 或更高版本
- Xcode 16 或更高版本
- Apple Silicon(当前打包脚本默认 arm64;Swift Package 本身可构建其他 macOS 架构)
git clone https://github.com/majunmin/KitKit.git
cd KitKit
./scripts/test.sh
./scripts/build-app.sh
open release/KitKit.app也可以直接用 Xcode 打开 Package.swift 后运行 KitKit target。
| 功能 | 快捷键 | 行为 |
|---|---|---|
| 区域截图 | Control + Shift + 1 |
取景、编辑、OCR、复制或保存 |
| 滚动截图 | Control + Shift + 2 |
选择并调整区域,按 S/Enter 开始;点击 ✓ 或再次按快捷键完成并复制,点击 ↓ 下载到本地 |
| 屏幕录制 | Control + Shift + 3 |
开始/停止录制鼠标所在屏幕 |
截图编辑器中的工具可用数字键 1–7 切换。
KitKit 需要 macOS 的“屏幕与系统音频录制”权限。选择麦克风或混合声音时,还会单独请求麦克风权限。授权后如状态未刷新,请重启 KitKit。
打包脚本会自动使用本机可用的 Apple Development 或 Developer ID 证书签名;没有证书时回退到临时签名。也可通过 KITKIT_CODE_SIGN_IDENTITY 显式指定签名身份。稳定的开发者签名可以避免每次重新构建后反复授权。
KitKit 当前不发送网络请求,也不包含分析 SDK。默认输出位置:
- 滚动截图:
✓复制到系统剪贴板;↓保存到~/Downloads/KitKit/Scrolling/ - 录屏:
~/Movies/KitKit/ - 普通截图:由保存面板选择;复制操作只写系统剪贴板
Sources/KitKit/
├── App/ SwiftUI 主窗口、菜单栏与全局快捷键
├── Capture/ ScreenCaptureKit、原位编辑覆盖层、像素镜、滚动拼接
├── Editor/ 标注模型、AppKit 画布与最终 PNG 渲染
├── OCR/ Vision OCR 与可选择文本界面
├── Recording/ ScreenCaptureKit + AVFoundation + AVAssetWriter 音视频录制
└── Shared/ 主题、错误与图像类型
更详细的设计见 docs/ARCHITECTURE.md。
./scripts/test.sh
swift build --disable-sandbox
xcrun swift-format lint --configuration .swift-format -r Sources Tests项目没有第三方包依赖。PR 提交前请阅读 CONTRIBUTING.md。安全问题请参阅 SECURITY.md。