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/llmfit36,031MITRustHomebrew / Scoop27,591 KB
debpalash/VoiceStudio22,414AGPL-3.0(默认权重 CC-BY-NC)Python官网安装包 / Docker85,223 KB
AprilNEA/OpenLogi20,612Apache-2.0 或 MITRustHomebrew cask / 发行版包14,570 KB
nashsu/llm_wiki18,676README 写 GPL-3.0,API 报 OtherTypeScriptGitHub Releases 资产40,354 KB
vorssaint/vorssaint-utils18,167GPL-3.0-or-laterSwiftHomebrew cask64,155 KB
akitaonrails/ai-memory6,501MITRustDocker / AUR / 原生二进制15,559 KB
apache/maka5,240Apache-2.0TypeScript尚无正式发行版,nightly 构建118,332 KB
vastsa/PI-Desktop2,742LGPL-3.0TypeScriptGitHub 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占比
模型在你机器上跑(本地推理)VoiceStudio22,41417.2%
数据在本地,模型自带(云端或本地都行)PI-Desktop、llm_wiki、maka26,65820.5%
默认路径压根不调模型ai-memory6,5015.0%
不跑模型,只告诉你哪些跑得动llmfit36,03127.6%
根本没有模型OpenLogi、vorssaint-utils38,77929.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,而且是最容易被忽略的那种「不是不能用、是不能随便用」。

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 原文:

另外还有 2 个仓库把「品牌」从代码里单独切了出去,这是比许可协议更容易被忽略的一层:

可执行结论:判断顺序应该是应用许可 → 模型权重 → 第三方引擎,三层各查一遍。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,而且有些门槛是写在括号里、真正装的时候才发现的:

账单三:签名状态。这一栏最容易被低估,因为它不影响功能,只影响你敢不敢装。写明了签名加公证的是少数,另外几个的默认产物是不签名的。

顺带一条量化:未关闭 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。

几个具体到会卡住你的坑:

怎么选

数据来源: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 外围层,这一期是本地优先,主题不重样。

#本地优先#技术选型#横向对比