上周我写了一篇文章,说链接路由是操作系统和浏览器假装不存在的功能。当时我说,AI时代或许能带来一个像样的多平台路由器,而我愿意当它的头号宣传员。多平台版本还没出来,但Linux版先来了。今天正式发布McLovin。

和电影《Superbad》里一样,McLovin跟操作系统(官方Slater)和浏览器(官方Michaels)都处得来。作为两边的朋友,它负责把每个链接送到该去的地方。

打开网易新闻 查看精彩图片

为什么做McLovin?

之前在Mac上我用的是Finicky。差不多一年前,我转到Linux的Omarchy系统,开始找替代品。Junction的问题是每次都要手动选,mimi则完全没有路由规则。剩下的路就是"自己搭一个"——我搭了,效果很好,还做了一个跟Omarchy风格搭的TUI界面。然后我想:这东西本该是每个操作系统的默认功能,就像系统自带的选择PDF打开方式的规则一样。于是决定把McLovin做成正经的多平台路由器:任何人都能配置,需要时弹出浏览器选择器,用规则把链接送到正确位置。

iOS和Android也有同样的问题,但留到以后解决。

它是什么

McLovin把自己注册成系统默认的http和https处理器。你在Slack、终端或任何应用里点击链接时,系统把URL交给McLovin。它读取rules.toml,决定往哪送,然后启动对应的应用或浏览器,自己消失。

如果没有规则匹配,就弹出一个Walker风格的选择器,让你从检测到的浏览器里挑。两个前端共享同一个Rust核心:一个CLI用于自动化和快捷键,一个GUI(mclovin settings)给鼠标键盘用。

规则系统

规则存在~/.config/mclovin/rules.toml里。三种类型:子串匹配、带重写的正则、以及Lua动态规则。举个例子:

fallback_browser = "brave"

[[handler]]

match = "github.com/empresa"

command = "chrome --profile-directory='Profile 1' {url}"

description = "GitHub do trabalho no Chrome do trabalho"

[[handler]]

match_regex = '^https?://open\.spotify\.com/(\w+)/([^?#/]+)'

rewrite = "spotify --uri=spotify:{1}:{2}"

description = "Spotify aberto direto no app desktop"

[[handler]]

match_lua = "ctx.url.host:find('work') and ctx.now.hour < 18"

command = "chrome --profile-directory='Profile 1' {url}"

description = "Links de trabalho dentro do horário comercial"

fallback_browser覆盖所有未匹配的情况。Lua在隔离环境运行(没有os.execute,没有loadfile),能获取URL上下文、当前时间、以及点击来源应用。现成的配置模板可以用mclovin examples导出。

现状

Linux的alpha版本已经可用。macOS和Windows版本即将推出。遇到问题可以在mclovin-release的GitHub仓库开issue。

安装手册、配置指南和规则示例都在官方网站。

上一篇文章里我写的是"除了用,我还要当头号宣传员"。现在宣传开始了。