GitHub 趋势 · 第 55 期
8 个「本地优先」仓库横评:真正断网能用的只有 2 个
#本地优先#技术选型#横向对比
这一期把榜单上自称「本地优先」的 8 个仓库捡出来横着比了一遍,合计 130,383 颗星。比完之后最直接的结论是:这四个字在这批项目里至少有五种兑现方式,而真正断网之后还能继续干活的,只有 2 个。
你可能已经踩过这个坑:冲着「本地优先」装下去,第一步却让你填 API key;或者模型确实跑在本地,但磁盘先掉 20 GB;或者 macOS 弹一句「已损坏」,教程教你右键批准;再或者你想把它接进公司产品,翻到许可条款才发现是 AGPL。这篇不介绍项目,只把这三类落差摆到台面上。
这一批是谁
入选口径:2026 年 9 月在 GitHub Trending 日榜、周榜或月榜上出现过,README 或仓库 Topics 里明确写了 local-first / 本地,且核心工作流发生在桌面或本机。一共 8 个,按 star 从高到低排。
| 仓库 | Star | 许可 | 语言 | 主安装通道 | 体量 |
|---|---|---|---|---|---|
| AlexsJones/llmfit | 36,031 | MIT | Rust | Homebrew / Scoop | 27,591 KB |
| debpalash/VoiceStudio | 22,414 | AGPL-3.0(默认权重 CC-BY-NC) | Python | 官网安装包 / Docker | 85,223 KB |
| AprilNEA/OpenLogi | 20,612 | Apache-2.0 或 MIT | Rust | Homebrew cask / 发行版包 | 14,570 KB |
| nashsu/llm_wiki | 18,676 | README 写 GPL-3.0,API 报 Other | TypeScript | GitHub Releases 资产 | 40,354 KB |
| vorssaint/vorssaint-utils | 18,167 | GPL-3.0-or-later | Swift | Homebrew cask | 64,155 KB |
| akitaonrails/ai-memory | 6,501 | MIT | Rust | Docker / AUR / 原生二进制 | 15,559 KB |
| apache/maka | 5,240 | Apache-2.0 | TypeScript | 尚无正式发行版,nightly 构建 | 118,332 KB |
| vastsa/PI-Desktop | 2,742 | LGPL-3.0 | TypeScript | GitHub Releases 资产 | 46,848 KB |
体量那一列取的是 GitHub API 的 size 字段(KB),它比 star 更能说明仓库里塞了多少东西:最大的 apache/maka 有 118,332 KB,是最小的 OpenLogi 14,570 KB 的 8.1 倍。八个仓库源码加起来是 412,632 KB,约 403 MB —— 而这只是代码,还没算模型权重。
错位一:「本地」在这 8 个仓库里有五种兑现方式
把 README 逐份读完,会发现「本地」被用在了五个完全不同的层次上。按层次分组,各组的 star 合计与占比是这样的:
| 「本地」指的是哪一层 | 代表仓库 | 合计 Star | 占比 |
|---|---|---|---|
| 模型在你机器上跑(本地推理) | VoiceStudio | 22,414 | 17.2% |
| 数据在本地,模型自带(云端或本地都行) | PI-Desktop、llm_wiki、maka | 26,658 | 20.5% |
| 默认路径压根不调模型 | ai-memory | 6,501 | 5.0% |
| 不跑模型,只告诉你哪些跑得动 | llmfit | 36,031 | 27.6% |
| 根本没有模型 | OpenLogi、vorssaint-utils | 38,779 | 29.7% |
五行合计 130,383,和上面的总数对得上。真正把模型放在本机跑的那一档只有 1 个仓库,占 17.2%;star 最高的那一档(llmfit)根本不跑模型,它只是体检你的 CPU、内存和显存,告诉你哪些模型跑得动;而占比最大的一档(29.7%)是两个跟 AI 毫无关系的桌面工具。
最能说明问题的是 PI-Desktop 自己:它在 README 里专门留了一节解释「本地优先」的边界,明确把这件事和「什么都不过网」区分开 —— 对话、设置、凭据、日志都在本地,但模型请求会直接发往你配置的 provider。它给的那句原话是:There is no required PI-Desktop account and no mandatory PI-hosted relay between your machine and your model provider.(没有强制的官方账号,也没有强制的中继)。
真正断网之后还能干活的只有 2 个。VoiceStudio 明写 Local by default; remote features are opt-in,桌面端只跟 localhost:3900 上的回环后端说话;ai-memory 更彻底,原文是 the default path uses zero LLM calls —— 采集、检索、交接全都不需要任何 key。
所以「本地优先」这四个字本身不构成承诺。买之前只问一句:到底哪一部分在本地。模型在本地的,要按显卡挑;数据在本地的,按数据合规挑;两者都不在的,就只是一句营销话术。
错位二:许可最不宽松的,恰恰是主打本地的这一批
第 52 期那份 skills 合集里,10 个仓库里 9 个是 MIT。这一批正好相反:8 个里有 4 个是 copyleft,而且是最容易被忽略的那种「不是不能用、是不能随便用」。
- ▪LGPL-3.0 —— vastsa/PI-Desktop。桌面应用本体用 LGPL,改完要回流的边界卡在库那一层。
- ▪GPL-3.0-or-later —— vorssaint/vorssaint-utils。
- ▪AGPL-3.0 —— debpalash/VoiceStudio,8 个里最严的一个。
- ▪GPL-3.0(README 声明) —— nashsu/llm_wiki:README 的 License 一节写的是 GNU General Public License v3.0,仓库里也确实有一个 35,195 字节的 LICENSE 文件,但 GitHub 的 license 字段返回的仍是 Other。
VoiceStudio 把这条写得最清楚,而且写的是「你改了会发生什么」,不是「本软件采用 XX 协议」:
If you modify VoiceStudio and provide that modified version as a network service, AGPL requires you to offer the corresponding source under the same license.
与之配套的是三条硬约束,全部来自 README 原文:
- ▪默认权重不是 AGPL,是非商用:The default OmniVoice repository labels its pretrained weights CC-BY-NC and includes a tokenizer under separate community terms.(OmniVoice 的预训练权重标的是 CC-BY-NC,另附一个单独条款的 tokenizer)。
- ▪应用许可能单独买:A commercial license for VoiceStudio-owned code is available for proprietary embedding,但明说它不覆盖第三方模型(原文 it does not relicense third-party models)。
- ▪第三方引擎另有门槛:IndexTTS 2.5 在月活超过 1 亿或年收入超过 10 亿元人民币时,需要单独的 B 站书面许可。
另外还有 2 个仓库把「品牌」从代码里单独切了出去,这是比许可协议更容易被忽略的一层:
- ▪vorssaint-utils:the GPL covers the source, while the Vorssaint name, icon and look are covered by TRADEMARKS.md, so forks need their own identity.(GPL 管代码,名字、图标和外观另有 TRADEMARKS.md 管,fork 得自建身份)。
- ▪OpenLogi:Forking the code grants no right to the OpenLogi name, logo, or icon(分叉代码不附带名字、logo、图标的使用权),brand 资产单独放在 design/LICENSE 下。
可执行结论:判断顺序应该是应用许可 → 模型权重 → 第三方引擎,三层各查一遍。VoiceStudio 这个例子把三层的差异摆得很典型 —— 应用是 AGPL(内部用没问题,改成对外提供的服务就要开源),但它明确写了应用许可不限制你生成的音频;真正卡住商用的是模型权重那一层。把「本地跑」当成「随便商用」,是这批项目里最容易踩的一条。
错位三:省下的订阅费,会以三张账单的形式回来
这批项目的共同卖点是「没有订阅」。但成本没有消失,它被转移到了三个更具体的地方,而且每一处都能在 README 里找到明确数字。
账单一:磁盘与显存。下面是 VoiceStudio README 的 Requirements 表原文:
RAM 最低 8 GB / 推荐 16 GB+
Disk 最低 10 GB / 推荐 20 GB+ SSD
GPU 可选,CPU 模式可用
VRAM 用 GPU 时最低 4 GB / 默认多阶段工作流 8 GB+
大号可选引擎需要 12 到 16 GB 甚至更多
再叠上前面那 403 MB 的源码体量,以及 VoiceStudio 自己也承认的「首次启动会下载默认模型」—— 本地方案省下的是月费,付出的是「你的机器要够好」。
账单二:平台门槛。这一批的默认假设是 Apple Silicon 的 Mac,而且有些门槛是写在括号里、真正装的时候才发现的:
- ▪VoiceStudio:Intel Macs cannot run the local Python backend; use a remote backend instead. —— Intel Mac 跑不了本地后端,而本地方案正是它全部的卖点。
- ▪vorssaint-utils:A Mac with Apple Silicon 与 macOS 14 Sonoma or newer,两项都是硬性的,没有 Intel 选项。
- ▪llm_wiki:README 写 macOS 的 .dmg 覆盖 Apple Silicon + Intel,但 v0.6.11 的 12 个发行资产里只有一个 dmg,而且是 aarch64 的 —— Intel 那条线文档里有、包里没有。
- ▪PI-Desktop:Linux x64 包需要 glibc 2.35 或更新,README 直接点名 Ubuntu 20.04、Debian 11、Fedora 35 及更旧版本无法加载捆绑的 host。
- ▪OpenLogi:Linux 预编译包同样要求 GLIBC 2.35 以上(Ubuntu 22.04 基线),并额外为用户配置 udev 规则才能免 sudo 访问设备。
- ▪ai-memory:支持矩阵把 Windows via WSL2 标为 Supported,而 Native Windows 只是 Experimental。
账单三:签名状态。这一栏最容易被低估,因为它不影响功能,只影响你敢不敢装。写明了签名加公证的是少数,另外几个的默认产物是不签名的。
- ▪签了:OpenLogi 的 macOS 版是 signed, notarized .dmg;vorssaint-utils 写的是 Builds are signed with an Apple Developer ID and notarized。
- ▪没签:PI-Desktop 的标记发布工作流默认发布未签名的 macOS 产物,README 的应对方式是教你把 app 拖进 Applications、再双击一个 .command 脚本;VoiceStudio 在 macOS 首次启动需要右键再选 Open 批准。
- ▪另外:apache/maka 的桌面版走每日 nightly 构建,README 明说 Windows 与 Linux 是未签名的 preview,It is not an ASF release and is not intended for production use.
顺带一条量化:未关闭 issue 数除以 star 数(乘 100),这 8 个从 VoiceStudio 的 0.04 到 apache/maka 的 9.39,跨度 235 倍。maka 的 star 只有 llmfit 的七分之一,积压 issue 却是它的 7.6 倍。不过这个指标第 53 期已经当成主线用过,这里只列数、不展开。
上手:照 README 抄命令
下面每条都是 README 原文,没有改写。前六个是打包好的安装路径:
# llmfit(macOS / Linux)
brew install AlexsJones/llmfit/llmfit
llmfit # 交互式 TUI:你的硬件,每个模型,排好序
# VoiceStudio(Docker,只监听回环)
docker run -d -p 127.0.0.1:3900:3900 -v omnivoice-data:/app/omnivoice_data --name voicestudio palashdeb/omnivoice-studio:stable
# OpenLogi(macOS,装之前先退出 Logi Options+)
brew install --cask openlogi
# vorssaint-utils(macOS 14+ / Apple Silicon)
brew install --cask vorssaint
# ai-memory(README quick start 第 2 步,默认只绑回环)
docker run -d --name ai-memory \
--restart unless-stopped \
-p 127.0.0.1:49374:49374 \
-v ai-memory-data:/data \
-e AI_MEMORY_LLM_PROVIDER=anthropic \
-e ANTHROPIC_API_KEY=sk-ant-... \
-e AI_MEMORY_EMBEDDING_PROVIDER=openai \
-e OPENAI_API_KEY=sk-... \
docker.io/akitaonrails/ai-memory:latest
ai-memory install-mcp --client claude-code --apply
注意 ai-memory 那一组:里面写了两个 key,但 README 同时强调默认路径是零 LLM 调用的 —— key 是可选的升级项,不是启动前提。这种「示例里带了 key、正文说不需要」的写法,正是上一节说的第一类误会的来源。
另外两个只有源码路径,工具链要求也不轻:
# apache/maka(源码跑桌面版) git clone https://github.com/apache/maka.git cd maka npm ci npm run dev # PI-Desktop(源码跑) git clone https://github.com/vastsa/PI-Desktop.git cd PI-Desktop pnpm install cargo build -p host-core pnpm build:js pnpm dev
我的判断:适合谁,不适合谁
适合:你主要在 Apple Silicon 的 Mac 上干活 —— 这一批的桌面安装包基本都以 macOS 为主入口,而 VoiceStudio 与 llm_wiki 的本地能力在 Intel Mac 上直接缺席;你的诉求是「数据不出本机」而不是「不装显卡也能跑大模型」;你能接受未签名应用、右键批准、以及自己配模型端点这几件事。
不适合:Intel Mac 用户,VoiceStudio 明写本地后端跑不了、llm_wiki 的 macOS 包只有 aarch64;Windows 原生用户,ai-memory 把 Native Windows 标成 Experimental;想把代码直接塞进闭源产品的团队,这一批里 4 个是 copyleft。
几个具体到会卡住你的坑:
- ▪OpenLogi 装之前必须先退出 Logi Options+。README 用的是 the two applications fight over HID++ access, and only one can own a given receiver at a time.(两个程序会抢 HID++ 访问权,同一个接收器同一时间只能有一个主人)。
- ▪apache/maka 的本地凭据是明文文件。README 原话:API keys and similar secrets are a local plaintext file (credential-vault.json), readable only by your OS account. —— 也就是说安全边界等于你的系统账号。
- ▪maka 升级工作区之后可能显示空会话 —— 旧的 JSONL 记录不会自动导入;同时它的断点恢复默认关闭,打开 MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1 之后,恢复会真的调模型并消耗 token。
- ▪ai-memory 的默认 quick start 没有鉴权,靠的是只绑回环。README 给的部署铁律是 one server per data directory, never two.
- ▪PI-Desktop 仍然标着 Early Preview,MCP 控制默认关闭、只绑回环,而且 README 明写 confirm: true is not a user prompt —— 那个确认不等于弹窗问你。
- ▪VoiceStudio 的默认权重是非商用条款,动手之前先把上一条错位那三层许可核对完。
怎么选
- ▪先确定要哪一层本地:要模型在本地 → VoiceStudio;要数据在本地、模型走云 → PI-Desktop / llm_wiki / maka;连模型调用都想省掉 → ai-memory;只是想知道自己这台机器能跑什么 → llmfit。
- ▪再确认许可能不能过:AGPL 的 VoiceStudio 内部用没问题,改成对外提供的服务就要开源,而且权重另算。
- ▪最后确认平台:Apple Silicon 是这一批的默认假设,Intel Mac 和原生 Windows 都有人被排除在外。
- ▪如果只是想要一个「漂亮又本地」的桌面工具、不带 AI,那这 8 个里 vorssaint-utils 与 OpenLogi 反而是最省心的两个。
数据来源:GitHub REST API 实测(star / 许可 / size / 未关闭 issue / 默认分支 / 创建与推送时间)+ 各仓库 raw README 原文;Trending 日、周、月榜同期快照作对照。
抓取时间:2026-09-12 GMT+8。表内 star 取 API 实测值,8 项合计 130,383;Trending 页面同期快照合计 130,967,差 584 颗。
许可口径备注:llm_wiki 的 README 写 GPL-3.0、仓库内 LICENSE 为 35,195 字节,但 GitHub 的 license 字段返回 Other(NOASSERTION),表内如实并列,不取其一。
发行版信息:PI-Desktop v0.14.6(2026-09-10 发布,18 个资产);llm_wiki v0.6.11(2026-08-25 发布,12 个资产,macOS 仅 aarch64);apache/maka 尚无 Apache 正式 release,nightly 桌面构建的 Windows / Linux 为未签名 preview。
密度指标(未展开):未关闭 issue ÷ star × 100,VoiceStudio 0.04 → apache/maka 9.39,跨度 235 倍。
正文引用的英文原句均取自各仓库 README 原文,未做改写。
这一批项目最值得学的一点,其实不是技术,而是把边界写进 README:PI-Desktop 主动解释「本地优先」不等于不联网,VoiceStudio 主动写清改完当服务会触发 AGPL,maka 主动说明 nightly 构建不是正式发行版。愿意把「我在哪里不行」印在文档第一屏的项目,比只列能力清单的项目更值得信任。
你被「本地优先」坑过吗?或者你手上有一台 Intel Mac、装到哪一步卡住的?留言说说,下期可以按平台拆一篇。
下期:如果榜单出现高动量新面孔,回到单项目精读;如果仍然是零新候选,换主题族做合集,方向是「把模型塞进小设备与边缘」那一族 —— 第 52 期做的是 skill 包,第 53 期是 agent 外围层,这一期是本地优先,主题不重样。
#本地优先#技术选型#横向对比