一款本地优先的 macOS 专注工具:在番茄钟期间只保留白名单应用,完成后获得露珠并在个人花园里种下一棵植物。
森时是独立开发的原创项目,与 Forest 官方无关,也不包含 Forest 的代码、图像或其他资源。
- 5–120 分钟专注计时,含 25 / 50 / 90 分钟快捷选项
- 从
/Applications多选白名单应用 - 专注期间监听并轮询普通前台应用,立即隐藏不在白名单中的应用
- 域名白名单,支持 Safari、Chrome、Edge、Arc、Brave 与 Opera 当前标签页守护
- 可命名的多套专注模式,每套保存独立的应用和网页白名单
- 八种可离线循环的工作背景音:白 / 粉 / 棕噪声、细雨、篝火、溪流、海浪与咖啡馆;支持独立试听、音量控制及随专注自动播放和停止
- 可选的菜单栏实时剩余时间、拦截次数和快速回到主窗口
⌘⇧F全局快捷键快速唤醒- macOS 正式登录项与独立后台守护助手
- 原创嫩芽应用图标,打包时自动生成多分辨率
.icns - 六种按时长解锁的原创矢量树、稀有度奖励、花园、图鉴与历史记录
- 按周一至周日生长的“本周森林”场景;新的一周自动开启新森林,往期树木仍保留在收藏与历史中
- 完成后只发送无声系统横幅,不播放声音、不弹出应用内弹窗
- 中途放弃不发奖励;意外重启后可恢复未结束的计时
- 全部数据保存在本机
UserDefaults
需要 macOS 14 或更新版本。只安装 Command Line Tools 也可以构建:
swift run打包为可双击的本地应用:
./Scripts/build-app.sh
open dist/FocusGarden.app如需稳定使用“登录时启动”和“后台守护助手”,请先把 FocusGarden.app 移到 /Applications,再在应用的“设置”页启用相应开关。macOS 可能要求在“系统设置 → 通用 → 登录项与扩展”中批准。
这是专注辅助工具,不是不可绕过的家长控制工具。启用守护助手后,关闭主窗口或退出主应用不会中断正在进行的守护;但用户仍可在系统设置中关闭登录项或主动结束相关进程。Finder 与必要系统界面始终放行,以避免桌面环境反复崩溃。非白名单应用会被隐藏而非强制退出,因此未保存内容不会被破坏。
网页守护通过 macOS 浏览器自动化读取当前标签页,首次使用时需要允许森时控制对应浏览器。白名单匹配主域名及其子域名,例如添加 notion.so 也会允许 www.notion.so。如果读取或清空标签页失败,浏览器会被隐藏,避免白名单静默失效。它限制顶层浏览页面,不是系统级网络过滤器。
后台助手会在主应用退出后继续执行已经开始的会话,并在会话结束时静默拉起菜单栏应用来结算奖励和发送通知。它不阻止用户在系统设置中关闭登录项,因此仍不是不可绕过的家长控制工具。
森时的背景音来自开源项目 Moodist(“Ambient sounds for focus and calm”)。感谢作者 MAZE / remvze 及 Moodist 的所有贡献者整理并开放这套声音资源。
本项目使用了 Moodist 中以下音频。自然场景录音会先做离线响度归一化,再在应用内循环播放并进行实时音量平衡:
| 森时场景 | Moodist 原始文件 |
|---|---|
| 粉噪声 | public/sounds/noise/pink-noise.wav |
| 棕噪声 | public/sounds/noise/brown-noise.wav |
| 白噪声 | public/sounds/noise/white-noise.wav |
| 叶上细雨 | public/sounds/rain/rain-on-leaves.mp3 |
| 林间篝火 | public/sounds/nature/campfire.mp3 |
| 深夜海浪 | public/sounds/nature/waves.mp3 |
| 林间溪流 | public/sounds/nature/river.mp3 |
| 远处咖啡馆 | public/sounds/places/cafe.mp3 |
Moodist 采用 MIT License。森时与 Moodist 没有隶属或官方合作关系;这里的署名是对上游开源工作的感谢与保留说明。
要做成更强的版本,下一步应加入:浏览器扩展级网络过滤、中断成本与成就系统,以及可选的 iPhone 伴侣应用。
- 专注记录、露珠、应用白名单和网站白名单只保存在本机
UserDefaults。 - 项目不包含账号系统、分析 SDK、广告 SDK或遥测上报。
- 网页白名单通过 macOS 自动化读取受支持浏览器的当前顶层标签页;源码不会收集或上传浏览历史。
- 请勿在公开 Issue 中上传包含个人白名单、浏览记录或本机路径的日志与截图。
swift build
swiftc Sources/FocusGarden/Models.swift SmokeTests/main.swift -o .build/model-smoke
.build/model-smoke./Scripts/build-app.sh 会创建经过本地临时签名的 dist/FocusGarden.app。公开分发前仍应配置自己的 Apple Developer 签名、公证和发布流程。
项目采用 MIT License。欢迎提交 Issue 和 Pull Request,贡献前请阅读 CONTRIBUTING.md。