“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
antiwork/chromeless:零边框 macOS 浏览器,专为干净截图与全屏视频而生
antiwork/chromeless:零边框 macOS 浏览器,专为干净截图与全屏视频而生
一个没有浏览器外壳的 macOS 浏览器——仅需一个 Swift 文件,即可实现无干扰截图与全屏视频播放。
一、项目背景:当浏览器本身成为干扰
在日常开发、设计、内容创作与演示中,我们经常需要获取网页的“干净截图”——也就是没有地址栏、书签栏、标签页、滚动条等浏览器 UI 元素的纯页面截图。传统的做法是:
- 使用浏览器自带的开发者工具(如 Chrome 的“截图节点”功能),但步骤繁琐,且无法捕捉动态内容或全屏视频。
- 使用第三方截图软件(如 Snipaste、CleanShot X),但往往需要手动裁剪或隐藏窗口装饰,且容易遗漏窗口阴影或圆角。
- 使用无头浏览器(如 Puppeteer、Playwright),但需要 Node.js 环境,配置复杂,且无法实时观看全屏视频。
更让人头疼的是,当你想要全屏观看某个视频流(如直播、课程、会议录制)时,浏览器的地址栏、标签页依然占据顶部空间,破坏沉浸感。虽然 macOS 的“全屏模式”可以隐藏菜单栏,但浏览器自身的 UI 元素(如标签栏、地址栏)依然存在。
antiwork/chromeless 正是为了解决这一痛点而生。它提供了一个完全“无 chrome”(无浏览器外壳)的 macOS 浏览器窗口,仅保留网页内容本身。整个项目只有一个 Swift 文件,代码量极小,却精准解决了特定场景下的核心需求。
二、快速上手:从安装到使用
2.1 环境要求
- macOS 10.15 (Catalina) 或更高版本
- Xcode(用于编译,或直接下载编译好的二进制文件)
2.2 安装步骤
方式一:直接下载二进制文件
前往 Releases 页面 下载最新版本的 Chromeless.app,将其拖入“应用程序”文件夹即可。
方式二:从源码编译
bash
git clone https://github.com/antiwork/chromeless.git
cd chromeless
xcodebuild -project Chromeless.xcodeproj -scheme Chromeless -configuration Release build
编译产物位于 build/Release/Chromeless.app
2.3 基本使用
启动 Chromeless 后,你会看到一个完全空白的窗口——没有地址栏,没有工具栏,没有任何浏览器 UI。默认打开的是空白页(about:blank)。
输入 URL:按下 Cmd + L 或 Cmd + T,会在窗口顶部弹出一个临时地址输入框,输入网址后按回车即可跳转。输入框会自动消失,不留痕迹。
全屏视频:进入目标视频页面(如 YouTube、Vimeo、Bilibili),点击播放器的全屏按钮,即可获得真正的无干扰全屏体验。
截图:使用系统自带的截图工具(Cmd + Shift + 3/4)或第三方截图软件,即可捕获无浏览器边框的网页内容。
退出:Cmd + Q 正常退出。
2.4 代码示例(Swift 核心逻辑)
项目核心代码仅一个文件 AppDelegate.swift,以下是其关键部分:
swift
import Cocoa
import WebKit
@main
class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow!
var webView: WKWebView!
func applicationDidFinishLaunching(_ aNotification: Notification) {
// 创建一个无边框、无标题栏的窗口
window = NSWindow(contentRect: NSMakeRect(0, 0, 1280, 720),
styleMask: [.borderless, .resizable, .closable, .miniaturizable],
backing: .buffered, defer: false)
window.titlebarAppearsTransparent = true
window.titleVisibility = .hidden
window.isOpaque = false
window.backgroundColor = .clear
// 添加 WebView,填满整个窗口
webView = WKWebView(frame: window.contentView!.bounds)
webView.autoresizingMask = [.width, .height]
window.contentView?.addSubview(webView)
// 默认加载空白页
webView.load(URLRequest(url: URL(string: "about:blank")!))
window.center()
window.makeKeyAndOrderFront(nil)
}
// 键盘快捷键处理:Cmd+L 或 Cmd+T 弹出地址栏
@objc func showAddressBar(_ sender: Any?) {
// 创建一个临时的 NSTextField 作为地址输入框
// 用户输入后按回车加载 URL,输入框自动移除
}
}
可以看到,核心逻辑就是创建一个 styleMask 仅为 [.borderless, .resizable, .closable, .miniaturizable] 的窗口,并嵌入一个全尺寸的 WKWebView。没有地址栏、没有工具栏、没有滚动条装饰。
三、核心亮点与设计哲学
3.1 极简主义:一个文件解决一个痛点
整个项目只有一个 Swift 文件,约 200 行代码。没有依赖管理,没有复杂的构建流程。它不试图成为“无头浏览器”或“自动化工具”,而是专注于一个非常具体的场景:在 macOS 上获得一个完全无 UI 的浏览器窗口。
3.2 原生 macOS 体验
- 基于
WKWebView,与 Safari 使用相同的渲染引擎,性能出色,兼容性好。 - 支持所有现代 Web 标准:HTML5、CSS3、JavaScript、WebGL、视频编解码等。
- 完美支持 macOS 的全屏模式、分屏模式、空间(Spaces)切换。
- 支持系统级快捷键:
Cmd + L/Cmd + T输入 URL,Cmd + R刷新,Cmd + W关闭窗口。
3.3 真正的“零干扰”
与浏览器全屏模式不同,Chromeless 不会在鼠标移到屏幕顶部时弹出地址栏或标签栏。它就是一个纯粹的网页内容容器。这对于以下场景尤为重要:
- 录制教程视频:不需要后期裁剪浏览器边框。
- 演示网页设计:给客户展示时,不会被浏览器 UI 分散注意力。
- 数字标牌/信息亭:可以制作一个仅显示特定网页的 Kiosk 模式应用。
3.4 轻量且安全
- 应用体积仅约 2MB。
- 不收集任何数据,不联网,没有后台进程。
- 基于系统沙盒,权限控制严格。
四、适用场景详解
4.1 截图与录屏
- 网页全页截图:虽然 Chromeless 本身不提供截图功能,但结合系统截图或第三方工具(如 CleanShot X),可以轻松截取网页的任意部分,且无需裁剪浏览器边框。
- 动态内容捕获:对于动画、交互式图表、H5 游戏等,传统无头浏览器难以实时捕获,而 Chromeless 可以实时展示并截图。
4.2 全屏视频观看
- 直播平台:YouTube Live、Twitch、Bilibili 直播等,全屏后无任何干扰。
- 在线课程:Coursera、Udemy、可汗学院等,全屏观看课程视频,专注学习。
- 会议录制:Zoom、腾讯会议等 Web 版录播回放,全屏后自动隐藏浏览器 UI。
4.3 设计评审与演示
- UI 原型演示:将 Figma、Sketch 的在线原型链接在 Chromeless 中打开,全屏展示,如同原生应用。
- 数据可视化展示:Tableau、Power BI 等在线报表,全屏展示无干扰。
4.4 信息亭与公共展示
- 数字标牌:在零售店、展览馆、会议室部署,仅显示特定网页内容。
- 自助查询终端:配合 macOS 的“引导式访问”模式,可以制作简单的 Kiosk 应用。
五、同类项目对比
| 特性 | Chromeless | 无头浏览器 (Puppeteer/Playwright) | 浏览器全屏模式 | 截图工具 (CleanShot X) |
|---|---|---|---|---|
| 安装复杂度 | 极低(1个文件) | 高(Node.js + 依赖) | 零 | 中(需安装第三方软件) |
| 实时浏览 | ✅ 是 | ❌ 通常无界面 | ✅ 是 | ✅ 是(但需手动隐藏 UI) |
| 无浏览器 UI | ✅ 完全无 | ✅ 无(无头模式) | ❌ 仍保留部分 UI | ✅ 可裁剪,但非实时 |
| 全屏视频 | ✅ 完美支持 | ❌ 不支持(无渲染) | ✅ 但仍有标签栏 | ❌ 不支持视频 |
| 自动化能力 | ❌ 无 | ✅ 强大 | ❌ 无 | ❌ 无 |
| 跨平台 | ❌ 仅 macOS | ✅ 跨平台 | ✅ 跨平台 | ❌ 通常仅 macOS |
| 代码量 | ~200 行 Swift | 数千行 + 依赖 | N/A | N/A |
5.1 与无头浏览器的本质区别
无头浏览器(Headless Browser)的核心价值是自动化——通过代码控制浏览器进行爬虫、测试、截图等操作。它们通常没有 GUI 界面,即使有(如 Playwright 的 headless: false 模式),也是为调试服务,而非为最终用户提供干净的浏览体验。
Chromeless 恰恰相反:它有 GUI 但无 UI,它的核心价值是为人类用户提供一个干净的浏览窗口,而非为机器提供编程接口。
5.2 与浏览器全屏模式的对比
浏览器全屏模式(如 Chrome 的 Cmd+Shift+F)虽然隐藏了大部分 UI,但依然存在以下问题:
- 鼠标移到屏幕顶部时,会弹出地址栏和标签栏。
- 无法完全隐藏滚动条(某些站点)。
- 全屏切换有动画延迟,不适合快速截图。
- 不同浏览器的全屏行为不一致。
Chromeless 从根本上解决了这些问题,因为它压根就没有这些 UI 元素。
六、局限性与未来展望
6.1 当前局限
- 仅支持 macOS:无法在 Windows/Linux 上使用。
- 无地址栏持久化:每次输入 URL 后地址栏消失,无法看到当前 URL(可通过
Cmd+L再次查看)。 - 无多标签页:每次只能打开一个页面。
- 无 Cookie/会话管理:没有 Chrome 的密码管理器或自动填充功能。
- 无扩展支持:无法安装浏览器扩展。
6.2 可能的改进方向
- 添加可选的“浮窗地址栏”模式,显示当前 URL 但保持半透明。
- 支持多个窗口(多标签页通过多窗口实现)。
- 添加简单的截图快捷键(直接保存为 PNG)。
- 支持自定义 User-Agent 或 JavaScript 注入。
不过,项目的简洁性本身就是其最大的优点。过多的功能可能会破坏其“一个文件解决一个问题”的设计哲学。
七、总结:小而美的工具哲学
antiwork/chromeless 是一个典型的“小而美”的开源项目。它没有宏伟的目标,没有复杂的架构,没有庞大的社区,但它精准地解决了一个真实存在的痛点。在 macOS 生态中,这样的工具往往比大而全的软件更受欢迎,因为它们遵循了 Unix 哲学:做一件事,并把它做好。
对于以下用户,Chromeless 值得一试:
- 需要频繁截取网页内容的设计师、前端开发者、内容创作者。
- 希望在 Mac 上获得纯粹全屏视频体验的用户。
- 需要搭建简易信息亭或演示环境的运维人员。
- 对 macOS 开发感兴趣,想学习
WKWebView和NSWindow基础用法的开发者。