Rememex
a semantic upgrade to your file system. you type meaning, it finds files. nothing leaves your machine.
named after Vannevar Bush's Memex (1945), a vision of a device that stores and retrieves all human knowledge.
______________________________________________________________________
仅限windows 10+ 目前。使用UWP OCR和云母背景。
______________________________________________________________________
为什么选择rememex?
|---|---|---|---|---|---| | 搜索类型 |语义+关键字混合|正则表达式/文字文本|文件名(内容通过 content:)|关键字+符号+语义|每5秒截图一次你的整个生活| | 理解意思 | ✅ | ❌ | ❌ | ✅ | ✅ (它看到了一切。真的一切。)| | 本地和私人 | ✅ 你机器上的一切✅ | ✅ | 云或自托管|“本地”(粉红色承诺)| | 文件类型 |120+(代码、文档、图像、配置)|文本文件|所有文件(按名称索引)|代码仓库|您的屏幕。所有这些,总是。 | | 图像OCR | ✅ 内置|❌ | ❌ | ❌ | ✅ (它也会记录你的密码)| | EXIF/GPS | ✅ 城市名称的反向地理编码|❌ | ❌ | ❌ | 反正知道你在哪里| | MCP服务器 | ✅ 内置AI代理|❌ | ❌ | ?|没有,但副驾驶看着你打字| | 价格 |免费,开源|免费,开源|free|起价49美元/用户/月|免费\*(\*牺牲你的尊严)| | 氛围 |查找您的意思|查找您键入的内容|查找文件名|enterprise™|大哥作为功能|
______________________________________________________________________
它做什么
- 索引120多种文件类型(代码、文档、图像、配置等)
- 通过windows内置引擎对图像进行OCR
- 读取EXIF→ 将GPS反向地理编码为城市名称。搜索“伊斯坦布尔的照片”,它奏效了
- EXIF日期→ 人类语言。《夏日早晨》找到了一张七月早上8点的照片
- 混合搜索:矢量+全文+JINA交叉编码器重新排序器
- 每种语言的智能组块(rust at
fn/structpython在def/class等) - 用于隔离(工作/个人/研究)的语义容器
- 用于AI代理的MCP服务器。 详情→ · 代理人指示→
- 注释:从UI或通过MCP将可搜索的注释附加到任何文件。代理和人类共享相同的知识层
- 可选的云嵌入——插入OpenAI、Gemini、Cohere或任何兼容的API。默认值仍然是100%本地
______________________________________________________________________
建筑
索引
graph LR
W[file watcher] -->|change event| SI[index single file]
WB[WalkBuilder] -->|bulk scan| B[collect files]
B --> C{image?}
C -->|yes| D[UWP OCR + EXIF]
C -->|no| E[file_io reader]
D --> F[git context]
E --> F
F --> G["semantic chunking (per-language)"]
G --> H[embedding provider]
H -->|local ONNX or remote API| I[(lancedb)]
I --> J[ANN + FTS index build]搜索
graph LR
Q[query] --> QR[query router]
QR -->|weights + hyde flag| HYDE{hyde?}
HYDE -->|conceptual| LLM[LLM hypothetical doc]
HYDE -->|other| EMB[embed query]
LLM --> EMB
Q --> EXP[expand query variants]
EMB --> VS[vector search]
EXP --> FTS[full-text search]
VS --> HM["hybrid merge (RRF)"]
FTS --> HM
EMB --> AS[annotation search]
AS --> AM[merge annotations]
HM --> AM
AM --> RR[JINA reranker]
RR --> SC[score normalization]
SC --> MMR[MMR diversity]
MMR --> R[ranked results]
UI[tauri UI] --> Q
MCP[MCP server] -->|stdio| Q______________________________________________________________________
运行它
npm install
npm run tauri dev # dev is slow
npm run tauri build # release build, use this for real speedAlt+Space 切换。配置和文档→ CONFIG.md
RAM使用率在初始索引期间达到峰值——这是意料之中的。一旦索引完成,它就会下降并保持稳定。
______________________________________________________________________
用真实数据试试
我们提供了一个测试数据集,这样你就可以看到语义搜索的实际感觉。2483份简历PDF,涵盖24个专业,会计师到教师。
# unzip test-set/data.zip somewhere
# create a new container in rememex, point it at the unzipped folder
# wait for indexing (~30 min on local embeddings)我们将其编入索引并运行这些查询。以下所有结果均使用 最基本的配置 --没有云API,没有微调:
| 设置 | 值 |
|---|---|
| 嵌入模型 | 多语言E5-Base(本地ONNX,~170MB) |
| 重新登录 | 关闭 |
| 块大小 | 512个令牌,64个重叠 |
| 查询路由器 | 打开 |
| MMR多样性 | 开启(约65%平衡) |
| 海德 | 关闭 |
| 嵌入提供程序 | 本地-零API调用 |
真实结果,真实分数:
| 查询 | 最佳结果 | 评分 | 为什么有趣 |
|---|---|---|---|
| “精通Python和机器学习的软件工程师” | AGRICULTURE/62994611.pdf --Python、TensorFlow、Keras、Scikit-learn、Pandas | 55.2 | 归入农业。rememex还是找到了 |
| “有急诊室经验的护士” | ADVOCATE/46772262.pdf --注册急诊护士、创伤护理专家 | 58.2 | 以ADVOCATE名义提交。错误的文件夹,正确的人 |
| “会做意大利和法国菜的人” | CHEF/10276858.pdf --意大利美食、精致餐饮、民族美食准备 | 34.7 | 查询说“法国人”也一样——排名第一的是意大利人,排名第三的是“法国美食天才”。它将比赛分为候选人 |
| “具有销售领导力的MBA毕业生” | DIGITAL-MEDIA/20330739.pdf --建立了2500万美元的销售团队,销售执行总监 | 55.5 | MBA+销售,见DIGITAL-MEDIA文件夹。类别并不重要 |
| “使用Photoshop和Illustrator的平面设计师” | DESIGNER/29147100.pdf --Adobe Photoshop、Illustrator、InDesign、作品集链接 | 66.1 | 最高得分。精准技能匹配+投资组合 |
| “使用AutoCAD和项目管理的土木工程师” | CONSTRUCTION/32025286.pdf --AutoCAD Civil 3D,成本分析,完整项目管理员 | 59.4 | 施工管理员,不是“土木工程师”。含义>标题 |
要点:grep需要精确的关键字。rememex能够找到意义——即使单词不同,即使文件放在错误的文件夹中。
______________________________________________________________________
代理基准
相同的5个任务,相同的代码库。grep与rememex MCP:
| task | grep | rememex |
|---|---|---|
| “查找GPS坐标成为城市名称的位置” | grep“GPS”→ 0. grep“地理编码”→ 已找到文件,需要打开。 3个步骤 | 1步 |
| “查找质量筛选器阈值” | grep“阈值”→ 0 (代码说 >= 25.0). 失败 | 1步 |
| “查找每个文件的最佳块的重复数据删除逻辑” | grep“重复数据删除”→ 0. grep“最佳”→ 噪音。 3-5个步骤 | 1步 |
| “查找配置迁移处理” | grep“遗留”→ 错误的文件。 错误对策 | 1步 |
| “查找嵌入批大小常量” | grep“batch_size”→ 0 (it's EMBED_BATCH_SIZE). 失败 | 1步 |
grep需要精确的关键字。rememex需要这个想法。
使用rememex的代理预计将使用5-10倍的令牌,并显著加快完成任务的速度。更少的搜索尝试,更少的错误文件打开,更少的往返。上面的基准显示1步vs 3-5步,这既是速度也是成本。
______________________________________________________________________
项目结构
rememex/
├── src/ # react/ts frontend
│ ├── components/ # UI components
│ │ ├── Sidebar.tsx # sidebar: containers, annotations, filters
│ │ ├── SearchBar.tsx # search input
│ │ ├── ResultsList.tsx # virtualized search results
│ │ ├── StatusBar.tsx # indexing status bar
│ │ ├── TitleBar.tsx # custom window title bar
│ │ ├── Settings.tsx # settings panel
│ │ └── settings/ # modular settings sub-panels
│ ├── locales/ # i18n translations (en, tr)
│ ├── Modal.tsx # modal dialog component
│ ├── i18n.tsx # internationalization setup
│ ├── types.ts # shared TypeScript types
│ └── App.tsx # main app shell
├── src-tauri/
│ └── src/
│ ├── indexer/ # core engine
│ │ ├── mod.rs # indexer orchestration, batch embed, reranker
│ │ ├── chunking.rs # per-language semantic splitting
│ │ ├── embedding.rs # fastembed ONNX inference
│ │ ├── embedding_provider.rs # local/remote provider trait
│ │ ├── search.rs # hybrid vector + full-text + reranker
│ │ ├── pipeline.rs # search pipeline scoring
│ │ ├── annotations.rs # annotation CRUD operations
│ │ ├── ocr.rs # UWP OCR bridge
│ │ ├── file_io.rs # file reading (text, pdf, binary)
│ │ ├── git.rs # git log integration
│ │ └── db.rs # lancedb operations
│ ├── bin/mcp.rs # MCP server binary (stdio)
│ ├── commands.rs # tauri IPC commands
│ ├── config.rs # config loading / migration
│ ├── state.rs # shared app state types
│ ├── watcher.rs # notify-based file watcher
│ └── lib.rs # app setup, tray, shortcuts
├── config.schema.json # JSON schema for config validation
├── AGENT.md # agent instructions for MCP
├── MCP.md # MCP server documentation
├── CONFIG.md # configuration reference
└── ROADMAP.md # what's done, what's next______________________________________________________________________
堆栈
锈(tauri 2)、反应/ts, 兰斯布多语言E5-Base,JINA Reranker v2,人造丝
路线图
文档
| doc | 什么 |
|---|---|
| CONFIG.md | 配置参考、所有选项、文件类型、提供程序设置 |
| MCP.md | MCP服务器设置、工具参考、编辑器配置 |
| AGENT.md | 使用rememex作为工具的AI代理说明 |
| 最佳实践.md | 充分利用rememex的技巧 |
| 贡献.md | 如何贡献、错误报告、公关指南 |
______________________________________________________________________
明星历史
贡献者
许可证
麻省理工学院
