内容
<div align="center">
<sub>OMD.EXE // 公共测试版 0.3.0b2</sub>
# OMD.EXE
**本地AI语境收件箱,适用于Markdown、Obsidian和代理。**
将文档、网页、截图、音频、文件夹和选定的公共网址转换为可追溯的Markdown,存储在您可控的文件夹中。
[](https://github.com/omd-local/markdown-everything/actions/workflows/ci.yml)
[](https://www.python.org/downloads/)
[](LICENSE)
[](docs/privacy.md)
[在线演示](https://shionshine-omd-public-demo.hf.space) ·
[安装](#快速开始) ·
[操作指南](#操作指南) ·
[文档](#文档) ·
[报告问题](https://github.com/omd-local/markdown-everything/issues)
</div>
## 操作指南
<p align="center">
<a href="docs/assets/omd-walkthrough.gif">
<img src="docs/assets/omd-walkthrough.gif" alt="OMD.EXE 操作指南:添加网址或文件,选择Markdown或Obsidian vault,然后运行本地转换" width="640">
</a>
</p>
<p align="center">
<strong>尝试使用公共网页或非敏感文档的托管示例。</strong><br>
私有文件、cookie、vault写入、媒体转录和本地模型应留在本地应用中。
</p>
## 转换如何保持可恢复
<p align="center">
<a href="docs/assets/omd-context-pipeline.png">
<picture>
<source media="(max-width: 600px)" srcset="docs/assets/omd-context-pipeline-mobile.png">
<img src="docs/assets/omd-context-pipeline.png" alt="OMD 源到语境管道:检查每个源,选择文档、网页或媒体适配器,标准化为Markdown,可选运行模型并保留原始内容,然后保存Markdown笔记和可追溯的OMD侧车" width="640">
</picture>
</a>
</p>
核心转换永远不会依赖AI。可选的模型工作是隔离的,因此缺少模型或调用失败时,原始Markdown保持完整。
## 快速开始
```bash
brew install omd-local/omd/omd
omd doctor
omd-ui
```
选择 **Markdown文件** 进行普通导出或 **捕获到vault笔记** 进行Obsidian文件夹。Obsidian vault只是一个本地文件夹;OMD不需要Obsidian插件或帐户。
自定义Homebrew tap包括项目组织在命令中。`omd-local`是项目所有者,而不是个人帐户。测试版安装了CLI、MCP服务器、本地浏览器UI、公共文档转换器和`yt-dlp`。大型转录和本地模型工具仍然是可选的。
<details>
<summary><strong>设置菜单 // 手动安装和可选本地工具</strong></summary>
### 手动安装
```bash
git clone https://github.com/omd-local/markdown-everything.git omd
cd omd
pip install -e '.[all]'
omd doctor
```
Python 3.10或更新版本是必需的。最小的`pip install -e .`注册了`omd`和`omd-mcp`;`all`额外添加了UI、MarkItDown和Python `yt-dlp`。
### 可选本地模型
OMD从不自动下载Ollama模型。安装并启动Ollama,然后在终端中运行模型安装命令。OMD建议从机器的总内存中选择保守的指令模型;这是16 GB的示例:
```bash
ollama pull qwen3:4b-instruct
```
在`http://localhost:11434`处保留UI主机,以进行完全本地的模型调用。当Ollama不存在或停止时,核心转换仍然有效。
### 可选转录和OCR
```bash
# Apple Silicon语音转文本,用于音频、播客和支持的视频
brew install pipx
pipx install mlx-whisper
# 截图和文章图像中的文本识别
brew install tesseract tesseract-lang
```
**OCR** 表示光学字符识别:它从图像中读取可见文本。英语使用 `eng`;中英混合使用 `chi_sim+eng`。`mlx-whisper` 仅限Apple Silicon,并未包含在基本安装中,因为其模型堆栈较大。
</details>
<details>
<summary><strong>源菜单 // 格式、公共网址和cookie gated路由</strong></summary>
- **文档:** PDF、DOCX、PPTX、XLSX、HTML、CSV、JSON、XML、EPUB和ZIP使用MarkItDown。
- **图像:** PNG、JPG、WEBP、TIFF和BMP使用Tesseract OCR。
- **音频:** MP3、WAV、M4A、FLAC和OGG在安装时使用本地Whisper。
- **网页:** 文章、微信和公共网页使用源适配器或网页转换。
- **公共帖子:** Reddit、X、Bluesky、Mastodon、Threads、Hacker News和Telegram使用有限的公共适配器。
- **媒体:** Apple Podcasts、YouTube、TikTok和Bilibili保留元数据,并在可用时使用本地转录。
- **本地批次:** 文件夹和保存的单项每行列表独立路由每个项目。
OMD不绕过付费墙、登录门、验证码、访问控制或平台限制。公共帖子可以被删除、私有化、隔离、区域屏蔽或速率限制;在您的已登录浏览器中打开的网址可能仍然拒绝匿名转换器。
### 抖音和 小红书 / 红笔记
这些高级本地路由通常需要单独的Netscape `cookies.txt`导出。仅从您有权使用的帐户和内容中导出cookie,然后在UI中选择匹配的文件:
- **抖音cookie:** 在登录到`douyin.com`时导出。
- **小红书cookie:** 在登录到`xiaohongshu.com`时导出。
- 不要为另一个平台重用一个平台的cookie文件。
- 在托管演示中禁用cookie,永远不要提交。
在启动前使用 **检查源/cookie**。当当前源列表包含其中一个平台但其匹配的cookie文件丢失时,OMD会发出警告。
</details>
<details>
<summary><strong>输出菜单 // Markdown、Obsidian、润色和记忆卡</strong></summary>
### 直接Markdown
```bash
omd report.pdf -o report.md
omd screenshot.png -o screenshot.md --lang eng
omd bilingual.png -o bilingual.md --lang chi_sim+eng
```
### Obsidian兼容的vault捕获
```bash
omd capture report.pdf --vault ~/Obsidian/AI-Memory --tags research,pdf
omd capture "https://example.com/article" --vault ~/Obsidian/AI-Memory
```
捕获在`Sources/<源类型>/`下写入可读笔记,更新`Index/OMD Captures.md`,并在相邻的`.omd.json`侧车中保留哈希、路由诊断、模型错误和其他调试元数据。
### 可选本地AI部分
```bash
omd report.pdf -o report.md --polish-md --polish-md-keep-raw
omd capture report.pdf --vault ~/Obsidian/AI-Memory --memory-cards
```
`--polish-md` 清理解析器/OCR噪音。 `--memory-cards` 添加摘要、有用的标签、`[[链接]]` 和基于证据的卡片,位于保留的 `## 完整内容` 上方。在依赖生成的内容之前,请审查所有内容。
阅读 [Obsidian指南](docs/obsidian.md) 和 [记忆卡指南](docs/memory-cards-user-guide.md)。
</details>
<details>
<summary><strong>工具菜单 // CLI配方、MCP和代理安全模式</strong></summary>
```bash
# 检查路由、工具、cookie和本地准备情况,而不进行转换
omd inspect "<url-or-file>" --with-readiness
# 转换文件夹或可重用的单项每行列表
omd batch sources.txt -o out/
omd capture ~/Downloads/sources/ --vault ~/Obsidian/AI-Memory --batch
# 代理安全运行的安静确定性输出
omd --agent-safe report.pdf -o report.md
```
`omd-mcp` 暴露了四个工具:
- `convert_to_markdown(uri, output?, output_format?, lang?, reel_options?)`
- `inspect_source(uri, include_readiness?, cookies?, cookies_from_browser?)`
- `capture_to_vault(uri, vault, lang?, tags?)`
- `list_supported_formats()`
最小MCP配置:
```json
{
"mcpServers": {
"omd": {
"command": "omd-mcp"
}
}
}
```
将转换后的Markdown视为不受信任的输入。MCP默认限制本地路径和私有网络URL;仅对您打算客户端访问的文件夹使用狭窄的`OMD_MCP_ALLOWED_ROOTS`。
</details>
<details>
<summary><strong>帮助菜单 // 常见故障和保留内容</strong></summary>
| 症状 | 检查内容 |
|---|---|
| `markitdown` 丢失 | 重新安装Homebrew包或 `pip install -e '.[all]'`。 |
| OCR语言不可用 | 安装`tesseract-lang`;使用`eng`或`chi_sim+eng`。 |
| 本地模型警告 | 启动Ollama并运行显示的`ollama pull <model>`命令。原始Markdown被保留。 |
| 网页或Reddit HTTP 403 | 源拒绝自动化访问。保存为HTML或PDF并转换本地文件。 |
| 抖音/小红书警告 | 导出新的平台特定cookie文件并在匹配的UI字段中选择。 |
| 多文件运行中的部分失败 | 打开输出文件夹;当安全时,保留成功项和部分原始输出。 |
运行`omd doctor`进行本地能力检查。对于可复制的报告,请包含非敏感样本、警告文本和 `--verbose` 输出。详细日志显示在进程日志中,不会添加到用户面向的Markdown笔记中。
</details>
<details>
<summary><strong>项目菜单 // 开发、致谢和许可证</strong></summary>
```bash
git clone https://github.com/omd-local/markdown-everything.git omd
cd omd
pip install -e '.[all,test,audit]'
make smoke
make test
```
OMD建立在
[Microsoft MarkItDown](https://github.com/microsoft/markitdown)、
[yt-dlp](https://github.com/yt-dlp/yt-dlp)、
[f2](https://github.com/Johnserf-Seed/f2)、
[MLX Whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper)、
[Ollama](https://ollama.com/)和
[Tesseract](https://github.com/tesseract-ocr/tesseract)之上。
欢迎提出问题和重点拉取请求。在报告漏洞之前,请阅读 [SECURITY.md](SECURITY.md)。OMD在 [MIT License](LICENSE) 下发布。
</details>
## 本地优先,具有明确的边界
> **仅限个人笔记使用。** OMD设计用于个人研究、笔记和AI辅助知识工作流。它不是法律、合规、证据或存档系统。输出可能会省略、重新排序或重新格式化源内容。您负责确保您有权访问、处理和存储每个源。OMD不绕过付费墙、访问控制或平台限制。请在依赖AI生成的摘要、标签、证据和`[[链接]]`之前审查它们。
本地优先并不意味着每个URL工作流都是离线的:URL会与其源平台联系,显式配置的远程模型端点会接收发送给它们的内容。使用带有循环Ollama的本地应用程序保留私有材料。请参阅 [隐私模型](docs/privacy.md) 和 [安全策略](SECURITY.md)。
## 文档
| 阅读内容 | 何时需要 |
|---|---|
| [示例](examples/README.md) | 复制现成的转换、捕获、检查、批次和润色命令 |
| [Obsidian vault捕获](docs/obsidian.md) | 文件夹布局、侧车、索引和重复捕获 |
| [记忆卡指南](docs/memory-cards-user-guide.md) | 本地模型设置和生成的笔记部分 |
| [隐私模型](docs/privacy.md) | 保留本地内容和使用网络访问的情况 |
| [定位](docs/positioning.md) | 产品范围和OMD不是什么 |
| [变更日志](CHANGELOG.md) | 发布历史和当前测试版更改 |
<div align="center">
**本地源 -> 可追溯的Markdown -> 您控制的上下文**
[给这个仓库点赞](https://github.com/omd-local/markdown-everything) ·
[打开演示](https://shionshine-omd-public-demo.hf.space) ·
[报告错误](https://github.com/omd-local/markdown-everything/issues) ·
[MIT License](LICENSE)
</div>