构建前必须复制并填写 Local.xcconfig 中的 DEVELOPMENT_TEAM,否则签名不完整;签名需用固定开发证书,否则每次构建后屏幕录制授权会失效;工程由 project.yml 生成,改动后要执行 xcodegen generate。
caplo
icloudza活跃维护基于 ScreenCaptureKit 和 SwiftUI 的 macOS 屏幕录制工具,支持录制后直接剪辑视频,省去导出再导入编辑器的步骤。
macOS 屏幕录制工具
cp Config/Local.xcconfig.example Config/Local.xcconfig # 填写 DEVELOPMENT_TEAM
open Caplo.xcodeproj需 macOS 15 及以上,支持 Apple Silicon 与 Intel Mac;README 未提及显存或 GPU 型号要求。首次运行需授予屏幕录制、摄像头、麦克风权限。
macOS 原生录屏与视频编辑工具,录完直接进编辑器做镜头、光标、字幕处理后导出成片
基于 ScreenCaptureKit 和 SwiftUI 的 macOS 屏幕录制工具,支持录制后直接剪辑视频,省去导出再导入编辑器的步骤。
核心能力
- 按点击与指针轨迹自动生成聚焦缩放镜头
- 平滑光标轨迹并支持点击效果、多套样式与玻璃透镜
- 录制时记录按键并在成片显示为键帽,可按组删除
- 系统语音识别本地转写字幕,可逐条编辑
- 导出 H.264/HEVC MP4、ProRes 422 MOV、GIF,最高 4K
容易踩的坑
- v0.3.0Caplo 0.3.0最新正式版2026-10-12 · 2026-10-12 16:22 UTC
- 人像背景可以虚化或移除The camera background can be blurred or removed
- 可导入视频:用它新建工程,或接到成片末尾Import videos: start a project from one, or append it to the end of your edit
- 新增音乐轨:背景音乐可调音量、淡入淡出和循环Music track: background music with volume, fades and looping
- 设置里可调新录制的默认效果:自动聚焦、光标效果和画面布局Defaults for new recordings in Settings: auto focus, cursor effects and layout
- 时间线更清爽:去掉底部总览条,刻度更简洁,片段更醒目,两端把手悬停时才出现A cleaner timeline: no overview strip, a simpler ruler, bolder clips, and trim handles that appear on hover
- 时间线高度随轨道数自动调整,拖动分界可自己定,双击恢复自动Timeline height follows the number of tracks, drag the divider to set your own and double-click to reset
- 触控板捏合可缩放时间线Pinch on the trackpad to zoom the timeline
- v0.2.1Caplo 0.2.12026-10-12 · 2026-10-12 14:15 UTC
查看更新说明
- 提词器有了最小宽度和高度,不会再被压扁The teleprompter now has a minimum width and height and can no longer be squashed
- 提词器更容易拖动和缩放:顶部新增拖动条,四边四角的手柄加宽The teleprompter is easier to move and resize: a drag bar on top and wider handles on the edges and corners
- v0.2.0Caplo 0.2.02026-10-12 · 2026-10-12 09:00 UTC
查看更新说明
- 新增显示按键:录制时可记录快捷键或全部按键,成片上显示为键帽Keystroke display: record shortcuts or all keys and show them as keycaps
- 时间线新增按键轨,不想显示的那一组可以单独删掉Keystroke track on the timeline, remove any group you don't want shown
- 新增去除静音,一键剪掉停顿Remove silence: cut pauses in one click
- 新增提词器,不会录进画面Teleprompter that stays out of the recording
- 新增文字或图片水印Text or image watermark
- 区域录制记住上次的范围,可隐藏桌面图标,录制中可开关人像Region recording remembers the last area, desktop icons can be hidden, and the camera can be toggled while recording
- 导出完成后可拷贝到剪贴板,默认导出到“影片”里的 Caplo 文件夹Copy the export to the clipboard when done, exports go to the Caplo folder in Movies by default
- 导出未完成时关闭窗口或打开其他工程,会先确认Asks before closing the window or opening another project while an export is in progress
- v0.1.5Caplo 0.1.52026-10-09 · 2026-10-09 02:12 UTC
查看更新说明
- 修复了一些已知问题Fixed some known issues
- 优化了部分使用体验Improved the overall experience
- v0.1.4Caplo 0.1.42026-10-07 · 2026-10-07 15:22 UTC
查看更新说明
- 导出时 Dock 图标显示进度条 / Export progress on the Dock icon
- 启动时与每小时检查更新,有新版本发送通知 / Checks for updates at launch and hourly, with a notification when one is available
- 权限引导新增通知 / Notifications added to the permission guide
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
功能
- 录制:全屏、自定义区域、单个窗口;同时采集摄像头、麦克风与系统声音,录制浮层不进画面;可隐藏桌面图标、录制中关开人像;自带提词器,随录制自动滚动。
- 镜头:按点击与指针轨迹自动生成聚焦缩放,可在时间线上手动增删、调整。
- 光标:平滑轨迹、点击效果、多套光标样式与实时玻璃透镜。
- 画布:原始 / 常用比例与平台预设,背景、边距、圆角、阴影、裁剪。
- 叠加层:遮罩、文字、标题卡、摄像头人像布局、文字或图片水印。
- 按键:录制时可记下快捷键或全部按键(默认关闭,需输入监控权限),成片上显示为键帽。时间线上有一条按键轨,不想显示的那一组可以单独删掉。
- 字幕:系统语音识别本地转写,可逐条编辑。
- 声音:降噪、回声消除、逐片段音量、一键去除静音停顿;录制声音默认跟随画面,可分离单独编辑。
- 导出:H.264 / HEVC(MP4)、ProRes 422(MOV)、GIF,最高 4K。
- 更新:应用内检查、下载并安装新版本,录制与导出期间不打扰。
- 语言:简体中文与英文,默认跟随系统,可在设置中切换。
环境
- macOS 15 及以上
- Xcode 16 及以上(Swift 6,严格并发检查)
- 首次运行需授予屏幕录制、摄像头、麦克风权限
构建
cp Config/Local.xcconfig.example Config/Local.xcconfig # 填写 DEVELOPMENT_TEAM
open Caplo.xcodeproj
签名用固定的开发证书,避免每次构建后屏幕录制授权失效。工程由 project.yml 生成,修改后执行 xcodegen generate。
命令行无签名构建:
xcodebuild -project Caplo.xcodeproj -scheme Caplo -configuration Debug \
-destination 'platform=macOS' -derivedDataPath build \
CODE_SIGNING_ALLOWED=NO CAPLO_APP_IDENTIFIER=com.caplo.buildcheck CAPLO_APP_NAME=CaploBuildCheck build
-derivedDataPath build 与改名参数用于隔离检查构建,不覆盖日常使用的 Caplo.app。
测试
Scripts/check.sh
依次执行:单元测试 → 颜色令牌检查 → 全部窗口实际创建并跑完显示周期 → 无签名构建。单独运行:
cd Packages/CaploKit
swift test # 单元测试
swift run PreviewGallery ../../build/previews --windows # 窗口回归
swift run PreviewGallery ../../build/previews --demo # 界面与渲染快照
多语言
界面文字的键是中文原文,英文翻译在 App/Localizable.xcstrings(权限说明等在 App/InfoPlist.xcstrings)。
代码里直接写在 Text / Button 中的字面量会自动本地化;其余显示文字用 String(localized:),枚举的原始值作为存档标识不翻译,另加 title。
改动界面文字后同步并检查未翻译条目:
Scripts/localize.sh
发布
推送 vX.Y.Z 标签后,GitHub Actions 自动完成签名、公证、制作 DMG、创建 GitHub Release,并上传到 Cloudflare R2,供官网下载和应用内更新(Sparkle)。配置与流程见 Scripts/release/README.md。
结构
App/ 应用入口、Info.plist、权限声明
Config/ xcconfig(本机签名配置不入库)
Packages/CaploKit/
Sources/
CaptureKit ScreenCaptureKit 采集、分段写入、设备会话
EditingCore 编辑数据模型:时间线、镜头、光标轨迹、画布布局
RenderKit Core Image 合成、光标与玻璃渲染、Metal 内核
ExportKit 播放项组装、导出、转写、语音处理
ProjectKit 工程包读写与存储
Features SwiftUI / AppKit 界面:录制条、编辑器、项目中心、设置
CaploDesignSystem 颜色、字体、材质令牌与通用控件
PlatformSupport 系统版本兼容层
CRNNoise RNNoise 降噪(C)
PreviewGallery 快照与窗口回归工具
Shaders/ Metal 内核源码
Scripts/ 内核编译、资源生成、整体检查、发布(release/)
ReleaseNotes/ 各版本更新说明
修改 Shaders/CaploKernels.metal 后执行 zsh Scripts/build-kernels.sh 重新生成 CaploKernels.metallib;LiquidGlass.swift 中的 CIKL 兜底实现需同步修改。
参与贡献
欢迎提交 PR!缺陷修复、体验打磨、翻译校对和文档补充都很有价值。
- 发现问题或有想法,先开一个 Issue,按模板填写。
- 新功能或较大的改动请先在 Issue 里讨论,确认方向后再动手。
- 提交前运行
Scripts/check.sh,改了界面文字再运行Scripts/localize.sh。
开发约定与贡献授权见 CONTRIBUTING.md。
LINUX DO — a new ideal community, where tech enthusiasts gather.
许可证
源码与官网发布的安装包均以 PolyForm Noncommercial 1.0.0 授权:允许个人学习、研究、爱好项目以及非营利机构使用、修改和分发;禁止任何商业用途,包括在公司或营利性工作中使用、出售,或作为商业产品与服务的一部分。商业授权请联系 [email protected]。
第三方组件保留各自的许可证:
- Sparkle:MIT,应用内更新,SwiftPM 依赖
- RNNoise:BSD-3-Clause,见
Packages/CaploKit/Sources/CRNNoise/COPYING - OpenScreen:MIT,见
Packages/CaploKit/Sources/RenderKit/Resources/Licenses/OpenScreen.txt - Capptivo 光标素材:MIT,见
Packages/CaploKit/Sources/RenderKit/Resources/Licenses/Capptivo.txt