Search README

The project's README from github.com/driceroland/Search. As one markdown file: README.md.

Search

A small, fast, quiet web browser for the Mac, by Office Commun.

Search, with its tabs down the left and a page taking the rest of the window

Download for macOS → · macOS 14 or later · free · about 3 MB

Or with Homebrew: brew install --cask driceroland/tap/search


What it is

Search is a browser with nothing in the way. A row of tabs — across the top or down the left, your choice — and the page. There is no toolbar, no start page, no sidebar of suggestions, no account to sign into, nothing that wants your attention. You type an address or a few words in one field and you are on the page.

It uses WebKit, the engine already inside every Mac (it is what Safari runs on). That is why the whole app is about 3 MB on disk and opens instantly: there is no second copy of Chromium to download, update and keep in memory.

It was built by a design studio that spends its whole day in a browser and was tired of the ones that had become products. This one is a tool.

What it does

What it doesn't do

On purpose:

Privacy, concretely

What Where it is Who can read it
Passwords The macOS login keychain, as ordinary keychain items tagged Search Search, signed by Office Commun. Any other app triggers the system's permission dialog.
History, bookmarks, open tabs, hidden elements Small JSON files in ~/Library/Application Support/Search/ You.
Cookies and site data WebKit's own store for the app The sites that set them, as in any browser.
Extensions Unpacked in ~/Library/Application Support/Search/Extensions/, their data in WebKit's extension store Each extension, within the permissions you accepted when adding it.
Anything else Nowhere. There is no server. —

A private tab (⇧⌘N) has its own cookie jar and leaves nothing behind when it closes.

Keyboard

⌘L address · ⌘K switch tab · ⌘T new tab · ⌘W close · ⇧⌘T reopen ⌘[ ⌘] back, forward · ⇧⌘[ ⇧⌘] previous, next tab · ⌘1–⌘9 jump
⇧⌘S tabs across the top or down the left · ⌘S fold the sidebar away · ⇧⌘B bookmark this page ⇧⌘R reading mode · ⇧⌘P float the video · ⇧⌘H hide something · ⇧⌘U what is hidden here
⌘F find · ⌘D duplicate tab · ⇧⌘C copy address · ⇧⌘V paste and go ⌘Y history · ⇧⌘J downloads · ⌘, settings · ⌥⌘L passwords

⌃Tab and ⌃⇧Tab walk along the row of tabs; Tab stays the page's, for moving through a form. esc puts away whatever is open.


For developers

Why the source is here

So anyone can read exactly what a browser handling their passwords and history is doing, build it themselves, or fix something that bothers them. The code is small enough to actually read — about 12,700 lines of Swift, no dependencies beyond what Apple ships with macOS, one file per concern.

Building it

A build you make yourself won't be notarized or carry Office Commun's Developer ID, so the first launch needs a right-click → Open (or an allow in System Settings → Privacy & Security). That's expected — it's the same thing that happens with any app that isn't from the App Store or a notarized DMG. Your own build also keeps its passwords apart from a signed Search's: the keychain tells the two apart by their signatures.

./build.sh release dmg also makes Search.dmg / Search.zip. ./build.sh release ship additionally notarizes and staples — that step needs a Developer ID certificate and Apple credentials, so it only really does anything for Office Commun's own releases.

How it's put together

Testing it without closing it

Turn on Settings › General › Let a script drive Search and the running app listens on a Unix socket in its own folder (readable by your user only). ./bench at the root of the repository speaks it:

./bench open https://example.com     # a tab of its own, at the end of your row, marked with a flask
./bench wait 2e7e7e89                 # until it has loaded
./bench text 2e7e7e89                 # the page's text
./bench shot 2e7e7e89 out.png         # a picture of it
./bench click 2e7e7e89 "button.go"    # click, type, submit — through the page's own events
./bench probe                         # the window's state: open panels, a modal, every window
./bench close all

Bench tabs are never selected for you, never enter the session or the history, and go when the script says so. It is how this browser is tested while somebody is using it.

Contributing

Issues and pull requests are genuinely welcome — see CONTRIBUTING.md for how this is reviewed and what tends to get merged. The short version: small changes, no new dependencies, nothing that phones home.

License

MIT — see LICENSE. Do what you want with the code. "Search" and the app icon are Office Commun's; please rename a fork before distributing it under another name.

Search (driceroland/Search)

Searching Database…

2.6K ·GitHub
这是什么?Search 是 Office Commun 开发的一款小巧快速的基于 WebKit 的 macOS 浏览器,设计上没有任何工具栏、起始页、侧边栏或账户碍事。
它是基于 Chromium 的浏览器,还是更轻量的产品?它使用 Safari 所用的同一引擎 WebKit,而不是捆绑 Chromium,这也是整个应用在磁盘上只有约 3 MB 的原因。
它是为 Mac 高级用户设计的,还是面向所有人?它面向所有想要一款安静、极简浏览器的人,但也特别欢迎开发者,因为整个约 12,700 行的 Swift 代码库小到足以通读和审计。
运行它需要什么 macOS 版本?浏览器本身需要 macOS 14 或更高版本;如果要使用 Chrome 扩展,则需要 macOS 15.4 或更高版本。
它会偷偷联网回传什么吗?除了你请求的页面之外,它唯一的网络活动是每天一次的新版本小检查;没有任何遥测、分析或崩溃报告。
我的密码和浏览数据会怎样?密码存放在 macOS 登录钥匙串中,由系统加密,仅 Search 可读;历史记录、书签和隐藏元素列表保存在本地 JSON 文件中,任何内容都不会同步到任何服务器。
广告拦截器会拖慢页面吗?不会——它是一个在启动时编译一次的 WKContentRuleList,在 WebKit 的网络层于请求发出前执行拦截,因此与基于 JavaScript 的拦截器不同,拦截没有任何运行时开销。
我可以从 Chrome 或其他浏览器导入密码吗?可以,Search 可以一键从 Chrome、Arc、Dia、Brave 或 Edge 导入已保存的账号,导入过程中没有任何数据离开这台 Mac。
⇧⌘H 隐藏功能到底做什么?它让你点击任意元素(如 Cookie 横幅或订阅弹层),在该网站上将其永久隐藏;隐藏规则以样式表的形式在页面渲染之前注入,因此这些元素绝不会闪现出来。
Office Commun 为什么不直接用 Safari 或 Chrome,而要再造一个浏览器?这家设计工作室整天泡在浏览器里,厌倦了那些充斥干扰、变得臃肿的“产品”,于是他们打造了一款极简工具。
Size
3.6 MB
Stars
2.6K
Age
28d
Commits · 90 Days