KartikLabhshetwar/better-shot
GitHub: KartikLabhshetwar/better-shot
一款基于 Swift 的 macOS 原生截图与录屏工具,提供截图编辑、屏幕录制、OCR 文字识别和取色等功能,是 CleanShot X 的免费开源替代品。
Stars: 2013 | Forks: 106
# BetterShot
[](https://github.com/KartikLabhshetwar/better-shot)
[](LICENSE)
[](https://x.com/code_kartik)
[](https://www.buymeacoffee.com/code_kartik)
CleanShot X 的开源替代品。macOS 原生 Swift 应用 —— 快速、轻量、本地优先。无订阅、无云端、无遥测。
## 功能
### 截图
| 操作 | 快捷键 |
|---|---|
| 区域截图 | `⌘⇧4` |
| 全屏截图 | `⌘⇧3` |
| 窗口截图 | `⌘⇧5` |
| 录屏 | `⌘⇧2` |
| OCR 文本扫描 | `⌘⇧O` |
| 取色器 (hex) | `⌘⇧C` |
区域、全屏和窗口截图均使用 macOS 原生 `screencapture` CLI 以确保最高可靠性。OCR 可以从屏幕上的任何区域提取文本。取色器可对屏幕上的任何像素进行采样并复制其十六进制 (hex) 值。所有快捷键均可在 设置 > 截图 中自定义。
### 屏幕录制
- **录制全屏** — 使用 ScreenCaptureKit 将整个显示器捕获为 MP4 视频
- **浮动状态栏** — 包含计时器、暂停/恢复、停止、重启和取消控件(在录制画面本身中隐藏)
- **视频编辑器** — 裁剪、裁切、添加内边距、圆角、阴影和背景(纯色、渐变、壁纸、自定义图像)。导出为已内置特效的 MP4
- **可配置** — 在 设置 > 录制 中配置 FPS (24/30/60)、显示鼠标指针、捕获音频
### 美化
- **背景** — 12 种纯色预设,16 种渐变预设,内置 macOS 壁纸或自定义图像
- **特效** — 内边距、圆角、阴影强度 —— 全部实时渲染
- **裁切** — 使用可拖拽的控制点、深色遮罩和三分网格裁切截图与录制内容
- **布局** — 宽高比(自动、1:1、4:3、3:2、16:9、9:16),带有智能圆角的 9 点对齐网格
- **默认设置** — 在设置中配置您偏好的特效和背景,并带有实时预览
- **导出** — 截图可导出为 PNG 或 JPEG,录制内容可导出为 MP4
### 标注
矩形、实心矩形、椭圆、直线、曲线箭头、自由手绘、文本、编号徽章、模糊和高亮。在编辑器中,每种工具都有对应的单键快捷键(`R`、`F`、`O`、`L`、`A`、`D`、`T`、`N`、`B`、`G`)。文本标注支持字体选择、字号、加粗、斜体、下划线以及对齐方式。
### 工作流
- **点击编辑** — 点击浮动预览即可打开编辑器(支持图片或视频)
- **拖拽到应用** — 将预览面板中的内容直接拖拽至 Figma、Slack 或任何应用中
- **固定截图** — 将任何截图固定为始终置顶的浮动窗口,可从菜单栏取消固定全部窗口
- **自动应用** — 每次截图或录制时,自动应用您的默认背景、内边距、圆角和阴影
- **倒计时** — 截图前显示倒计时覆盖层(3秒、5秒、10秒)
- **截图历史** — 在设置中提供独立的截图和录制选项卡
- **最近菜单** — 从菜单栏快速访问最近的截图和录制内容
- **Toast 通知** — OCR、取色器和图库保存时的确认 Toast 弹窗提示
- **应用内更新** — 无需离开应用即可检查、下载并安装更新
- **可配置覆盖层** — 选择预览位置和自动消失时间
## 安装
### Homebrew
```
brew install --cask bettershot
```
### 下载
1. 前往 [Releases](https://github.com/KartikLabhshetwar/better-shot/releases)
2. 为您的系统架构(Apple Silicon 或 Intel)下载最新的 `.dmg`
3. 打开 DMG 文件,将 BetterShot 拖入“应用程序”
4. 启动并根据提示授予权限
### 从源码构建
```
git clone https://github.com/KartikLabhshetwar/better-shot.git
cd better-shot
make run
```
这将构建一个调试版本并启动它。请查看下方的[所有 make 命令](#make-commands)。
### 权限
首次启动时,BetterShot 需要两项 macOS 权限:
1. **屏幕录制** — 系统设置 > 隐私与安全性 > 屏幕录制
2. **辅助功能** — 系统设置 > 隐私与安全性 > 辅助功能
屏幕录制权限允许应用捕获您的屏幕。辅助功能权限允许其覆盖 macOS 默认的截图快捷键。
## 用法
1. 启动 BetterShot —— 它会显示在您的**菜单栏**中(屏幕右上角)
2. 使用键盘快捷键或从菜单中点击截图操作
3. 出现浮动预览 —— **点击它以打开编辑器**
4. 调整背景、特效并添加标注
5. `⌘S` 保存,`⇧⌘C` 复制到剪贴板
### 编辑器快捷键
| 操作 | 按键 |
|---|---|
| 选择工具 | `V` |
| 矩形 | `R` |
| 实心矩形 | `F` |
| 椭圆 | `O` |
| 直线 | `L` |
| 箭头 | `A` |
| 自由手绘 | `D` |
| 文本 | `T` |
| 编号圆圈 | `N` |
| 模糊 | `B` |
| 聚光灯 | `G` |
| 保存 / 导出 | `⌘S` |
| 复制到剪贴板 | `⇧⌘C` |
| 撤销 / 重做 | `⌘Z` / `⇧⌘Z` |
| 删除标注 | `Delete` |
| 全选 | `⌘A` |
| 关闭编辑器 | `Esc` |
### 设置
从菜单栏 > **设置**(或 `⌘,`)打开。
- **通用** — 保存位置、剪贴板行为、外观、带有实时预览的默认特效(内边距、圆角、阴影、背景(包括 macOS 壁纸和自定义图像))、导出格式
- **截图** — 倒计时延迟、键盘快捷键(点击任意快捷键可重新录制,包括录屏)、覆盖层位置和消失时间
- **录制** — FPS (24/30/60)、显示鼠标指针、捕获音频、录制后打开编辑器
- **历史** — 浏览并删除过往截图
- **视频** — 浏览并删除过往录制内容,在视频编辑器中打开
- **关于** — 版本信息、应用内更新检查、项目链接(GitHub、X)
## Make 命令
| 命令 | 功能 |
|---|---|
| `make build` | 调试构建 |
| `make release` | 发布构建(未签名) |
| `make run` | 构建并启动 |
| `make dmg` | 创建用于本地测试的 DMG |
| `make clean` | 删除构建产物 |
| `make lint` | 检查编译器警告 |
| `make test-build` | 完整清理 + 发布构建 |
| `make version` | 打印当前版本 |
## 架构
原生 Swift 6 / SwiftUI。无 Electron、无 Web View、无外部依赖。
| 框架 | 用途 |
|---|---|
| CoreGraphics | 图像合成、标注渲染、美化 pipeline |
| CoreImage | 用于信息遮盖的高斯模糊 |
| Vision | OCR 文本提取 |
| ScreenCaptureKit | 屏幕与窗口录制 |
| AVFoundation | 视频编辑、裁切、通过 AVMutableVideoComposition 进行特效合成 |
| AppKit | 取色、浮动面板、固定窗口、通过 CLI 截图 |
| Carbon | 通过 CGEvent tap 实现全局键盘快捷键 |
## 许可证
BSD 3-Clause。请查看 [LICENSE](LICENSE)。
## Star 历史
标签:OCR, Swift, 图片编辑, 录屏工具, 截图工具, 风险管理