Memex 那篇文章发表 81 年了,今天还在被人读。
我们希望 sift 也能活得久一点——哪怕有一天,我们不在了。
sift 不是我们最早想做的东西。 我们只是在用 ChatGPT、Claude、Notion AI 这些工具的时候反复遇到同一个问题—— 对话结束之后,那段记忆就消失了。
Vannevar Bush 在 1945 年描述 Memex 的时候,反复强调一件事:它必须是个人的。 不是某家公司的服务器、不是某个订阅账号—— 是你的桌子、你的抽屉、你的笔记。哪怕公司倒闭,桌子还在。
所以我们做了两个决定。 第一,sift 的数据库默认存在你手机本地,不是我们这边。 第二——也就是这一页要说的事——代码全部开源。
Memex was an idea, never a product. sift 想做的是: 把那个 idea 真的端出来一份, 放在每个想拥有它的人手里。
如果有一天我们的服务器关了、域名过期了、人不在了—— 你依然可以从 GitHub 拉下代码,自己跑一份,把数据接着用下去。 这是 SaaS 永远做不到的事。 开源不是营销话术,是数据自主权的最低保障。
简单说:个人用、公司内部用都没问题。
但如果你拿 sift 改一改开个 SaaS 卖钱——
你也得把你改的部分开源出来。
下面这个流程把数据完全留在你自己手里。 不需要我们的服务器,也不需要任何账号——只要你愿意承担"自己维护"的麻烦。
从 GitHub 拉下来。仓库里有 Android 端(Kotlin / Compose)、后端(Python / FastAPI)、安装脚本。
# 在你的电脑或 NAS 上
git clone https://github.com/HuanNan520/sift.git
cd sift
把 .env.example 复制成 .env,填一个 AI 模型 key 进去。
谁的 key 都行——SiliconFlow 便宜、Anthropic Claude 稳、DeepSeek 官方 75% off、本地 Ollama 完全免费。挑一个用就好。
# .env 至少要有这三行
LLM_PROVIDER=siliconflow
LLM_API_KEY=sk-xxxx
LLM_MODEL=deepseek-chat
Docker compose 一行起。也可以裸跑 Python,docs/self-host.md 写了两种方式。
docker compose up -d
# 默认监听 :8787,SQLite 数据库存在 ./data/
打开 sift APP → 设置 → 服务端地址 → 填上你刚才那台机器的 IP:8787(或公网域名)。 APP 重启一次,从此以后所有数据都流向你自己。
备份就是 tar -czf sift-backup.tar.gz data/。
想换机器,把这个文件挪过去解压就行。
没有任何东西经过我们的服务器,包括 AI 调用——你的 key 直接连模型厂商。
不需要"专业贡献者"身份。提个 issue 也是贡献,挑错字也是贡献。下面三个入口随你挑。
所有源码在 GitHub 上。Android 端、后端、Web 前端、文档全在一个仓库里。 给个 star 是最低门槛的支持——能让更多人路过这个项目。
github.com/HuanNan520/sift →用着用着哪里别扭、装不上、想要某个功能——开 issue 告诉我们。 不用客气,也不用写得多正式。截图加一句话就够了。
开一个 issue →想改代码 / 加功能 / 修文档——欢迎。先开 issue 聊一下方向再动手, 避免做完发现跟我们路线冲突。CONTRIBUTING.md 里写了 PR 流程跟 code style。
读贡献指南 →sift 用到的开源软件几十个,下面列的是骨干。每一个都比 sift 重要——没有它们,这个项目根本起不来。
这份名单短得不像话。
sift 真正用到的依赖在 package.json 跟 build.gradle.kts 里都有。
给所有写它们的人——谢谢。