Legal
Privacy Policy
Last updated: 25 October 2026 · Applies to the MarkCraft Chrome extension and to markcraft.cc
MarkCraft is a local Markdown viewer, editor and review tool. It has no accounts, no analytics, no telemetry and no advertising. Your documents are rendered on your own machine and are never uploaded to us.
The short version. We do not collect, store, sell or share personal data. Everything MarkCraft remembers stays in your browser's local storage on your device. Document content only leaves your computer through features you set up and trigger yourself: the AI agent (sent to the AI provider you configure) and PlantUML rendering (off by default, requires your explicit consent).
1. What we do not do
- No accounts, sign-ups, logins or user profiles.
- No analytics, crash reporting, telemetry, session recording or A/B testing.
- No advertising, tracking pixels, cookies for advertising, or fingerprinting.
- No selling, renting or sharing of data with data brokers or advertisers.
- No remote code: all JavaScript, WebAssembly and styles are bundled inside the extension package.
2. Data stored on your device
MarkCraft uses the browser's extension storage (chrome.storage and IndexedDB) to remember things between sessions. We never receive any of it. Your settings are kept in chrome.storage.sync, so if you are signed in to Chrome with sync turned on, Chrome copies them between your own devices through your Google account. Documents, cached copies and annotations stay local and are not synced.
| What | Why |
|---|---|
| Settings | Theme, layout, enabled plugins, presentation style, custom shortcuts, PlantUML consent. |
| Recent documents & bookmarks | So you can reopen a file from the toolbar popup or the folder browser. |
| Cached document copies | Instant reopening and change detection ("live reload") for files opened from disk or the web. |
| Annotations | Highlights, underlines and comments you add, so they survive a reload and appear in exports. |
| AI provider | The API format, base URL, model and API key you enter for the AI agent. Kept in the extension's own local storage on this device only: never synced, never included in settings exports, not readable by web pages, and removed with Remove in Settings → AI Provider. |
You can erase it inside the extension under Settings → Import / Export: Clear Cache removes cached file handles, recent documents and folder bookmarks, Delete all annotations removes highlights and comments, and Reset to Defaults restores your settings. Uninstalling the extension removes all of its local data at once.
3. Network requests the extension can make
MarkCraft works fully offline. The following requests only happen in the situations described, and they always go to the server you chose to open content from — never to us.
- Documents you open by URL. If you open a Markdown file from a web address (for example a raw file on GitHub), the extension requests that URL. The request goes to that server, which may log it as any normal web request.
- Images and links inside a document. Images referenced by your Markdown are loaded from their original host when the document is displayed. Clicking an external link opens it in a normal browser tab.
- PlantUML diagrams — optional, off by default. If you enable PlantUML rendering and explicitly grant consent, the source of
```plantumlcode blocks is sent to the PlantUML server you configure (by default the community server atplantuml.com) in order to receive an SVG. Nothing is sent before you consent, and you can revoke consent or point the setting at a self-hosted server at any time. - AI agent — only after you configure a provider. When you run the agent, the current document, its file name and your instructions are sent to the AI provider you configured in Settings → AI Provider (for example OpenAI, Anthropic, or a server on your own machine such as Ollama), together with your API key so the provider can authenticate you. The provider processes them under the account and terms you have with it. Nothing is sent until you configure a provider and press Run, only
https://endpoints are accepted (plainhttp://only forlocalhost), and the provider's reply is shown as a diff that is applied only if you accept it. - HTML files you export. An exported HTML file references a KaTeX stylesheet on
cdn.jsdelivr.netso that math renders when the file is opened in a browser. That request is made by the exported file, not by the extension, and only when you open that file.
We operate no servers that receive your data. We have no ability to see your documents, your settings or your usage.
4. Saving files
MarkCraft saves with Chrome's built-in File System Access API. It can only write to files and folders you pick in Chrome's own file dialog, and Chrome asks for your permission. MarkCraft does not install or talk to any program outside the browser.
5. Permissions and why they are needed
| Permission | Reason |
|---|---|
storage, unlimitedStorage | Persist settings, annotations and cached copies of large documents locally. |
| Access to all sites | A content script must run when a page loads to detect raw Markdown (for example a .md URL served as text/plain) and replace it with a reading view. It only inspects the current document to decide whether it is Markdown. |
file:// access | Opening local Markdown files is the main use case. This must be enabled by you in Chrome's extension settings. |
contextMenus | Adds three right-click menu entries: "Open link in MarkCraft", "Render this page as Markdown" and "New Markdown document from selection". |
clipboardWrite | Copies rendered content as rich text or Markdown when you click Copy. |
6. Sharing and third parties
We share nothing, because we receive nothing. Data you send to an AI provider or PlantUML server goes directly from your browser to that service; we are not in the middle. The extension contains no third-party analytics, advertising or tracking SDKs. The open-source libraries it bundles (marked, highlight.js, KaTeX, Mermaid, Viz.js, WaveDrom, Milkdown, markmap, docx, DOMPurify, jsdiff, Lucide) run entirely inside the extension and do not report back to their authors.
If you enable PlantUML, the diagram source you write is disclosed to the diagram server you configured — that is a transmission you initiate and control. Choose a self-hosted server if your diagrams are confidential.
7. Your rights
Because we do not hold any of your data, there is nothing for us to export, correct or delete on our side. Data on your device is under your control: clear it in the extension's settings or uninstall the extension. If you believe we hold data about you, contact us and we will confirm that we do not.
8. Children
MarkCraft is a developer and writing tool. It is not directed at children and we do not knowingly collect information from anyone, including children under 13.
9. Changes to this policy
If a future version of MarkCraft starts handling data differently — for example a new optional network feature — this page will be updated and the "last updated" date above will change before that version is released. Material changes will also be noted in the release notes.
10. Contact
Questions about this policy or about privacy in MarkCraft: open an issue at github.com/zhangweiii/markcraft/issues.
法律
隐私政策
最后更新:2026 年 10 月 25 日 · 适用于 MarkCraft Chrome 扩展及 markcraft.cc
MarkCraft 是一个完全在本地运行的 Markdown 阅读、编辑与批注工具。它没有账号体系,没有统计分析,没有遥测,也没有广告。你的文档只在你自己的电脑上渲染,从不会上传给我们。
一句话版本。我们不收集、不存储、不出售、不共享任何个人数据。MarkCraft 记住的所有内容都保存在你设备上浏览器的本地存储里。文档内容只会通过你自己配置并主动触发的功能离开你的电脑:AI 智能体(发送给你配置的 AI 服务商)和 PlantUML 渲染(默认关闭,需要你明确同意)。
1. 我们不做的事
- 没有账号、注册、登录,也没有用户画像。
- 没有统计分析、崩溃上报、遥测、会话录制或 A/B 测试。
- 没有广告、追踪像素、广告 Cookie,也不做指纹识别。
- 不向数据经纪商或广告商出售、出租、共享任何数据。
- 没有远程代码:所有 JavaScript、WebAssembly 和样式都打包在扩展内部。
2. 保存在你设备上的数据
MarkCraft 使用浏览器的扩展存储(chrome.storage 与 IndexedDB)在会话之间记住一些内容,我们不会收到其中任何数据。设置保存在 chrome.storage.sync 中:如果你登录了 Chrome 并开启了同步,Chrome 会通过你的 Google 账号在你自己的设备之间同步这些设置。文档、缓存副本和批注只保存在本地,不会同步。
| 内容 | 用途 |
|---|---|
| 设置 | 主题、版式、启用的插件、演示样式、自定义快捷键、PlantUML 授权状态。 |
| 最近文档与书签 | 方便你从工具栏弹窗或文件夹浏览器重新打开文件。 |
| 文档缓存副本 | 立即重新打开、以及检测文件变化(自动刷新)。 |
| 批注 | 你添加的高亮、下划线和评论,刷新后仍保留,并会出现在导出内容里。 |
| AI 服务商 | 你为 AI 智能体填写的 API 格式、Base URL、模型和 API Key。只保存在本设备上扩展自己的本地存储中:不会同步,不会包含在设置导出中,网页无法读取,可在设置 → AI 服务商中点击「移除」删除。 |
你可以在扩展的设置 → 导入 / 导出中清除这些数据:「清除缓存」删除缓存的文件句柄、最近文档和文件夹书签,「删除所有标注」删除高亮和评论,「恢复默认」重置设置。卸载扩展会一次性删除它的全部本地数据。
3. 扩展可能发起的网络请求
MarkCraft 完全可以离线使用。下列请求只在描述的情形下发生,并且只会请求你自己选择打开的内容所在的服务器——永远不会请求我们的服务器。
- 你通过网址打开的文档。如果你打开的是网络上的 Markdown 文件(例如 GitHub 上的原始文件),扩展会请求该网址。请求发往该服务器,对方可能像记录普通网页请求一样记录它。
- 文档中引用的图片与链接。显示文档时,Markdown 里引用的图片会从它原本所在的服务器加载;点击外部链接会在普通标签页中打开。
- PlantUML 图表——可选,默认关闭。只有当你启用 PlantUML 渲染并明确同意后,
```plantuml代码块的源码才会发送到你配置的 PlantUML 服务器(默认为社区服务plantuml.com)以获取 SVG。在你同意之前不会发送任何内容,你也可以随时撤销同意或改指向自建服务器。 - AI 智能体——仅在你配置服务商之后。当你运行智能体时,当前文档、文件名和你的指令会发送给你在设置 → AI 服务商中配置的服务商(例如 OpenAI、Anthropic,或你本机上的 Ollama 等服务),同时附带你的 API Key 以便服务商验证身份。服务商按照你与它之间的账号和条款处理这些内容。在你配置服务商并点击运行之前不会发送任何内容;只接受
https://地址(只有localhost允许http://);服务商的回复会以差异的形式展示,只有你接受后才会应用。 - 你导出的 HTML 文件。导出的 HTML 引用了
cdn.jsdelivr.net上的 KaTeX 样式表,以便在浏览器中打开时公式能正常显示。这个请求由导出文件发起,而不是扩展发起,且只在你打开该文件时发生。
我们不运营任何接收你数据的服务器,也没有能力看到你的文档、设置或使用情况。
4. 保存文件
MarkCraft 使用 Chrome 内置的 File System Access API 保存文件。它只能写入你在 Chrome 自带的文件对话框中选择的文件或文件夹,并且由 Chrome 向你申请权限。MarkCraft 不会安装、也不会连接浏览器之外的任何程序。
5. 权限及用途
| 权限 | 原因 |
|---|---|
storage、unlimitedStorage | 在本地保存设置、批注以及大文档的缓存副本。 |
| 访问所有网站 | 页面加载时需要运行内容脚本来判断是否为原始 Markdown(例如以 text/plain 提供的 .md 网址),并替换成阅读视图。该脚本只检查当前文档是否为 Markdown。 |
file:// 访问 | 打开本地 Markdown 文件是主要用途。此权限需要你在 Chrome 的扩展设置中手动开启。 |
contextMenus | 添加三个右键菜单项:「用 MarkCraft 打开链接」「将此页面渲染为 Markdown」「用选中文本新建 Markdown 文档」。 |
clipboardWrite | 点击复制时把渲染内容复制为富文本或 Markdown。 |
6. 共享与第三方
我们不共享任何数据,因为我们根本没有收到数据。你发给 AI 服务商或 PlantUML 服务器的数据直接从你的浏览器发往该服务,中间不经过我们。扩展中不包含任何第三方统计分析、广告或追踪 SDK。它打包的开源库(marked、highlight.js、KaTeX、Mermaid、Viz.js、WaveDrom、Milkdown、markmap、docx、DOMPurify、jsdiff、Lucide)全部在扩展内部运行,不会向作者回传信息。
如果你启用 PlantUML,你编写的图表源码会被发送给你配置的图表服务器——这是由你发起并控制的传输。如果图表内容涉密,请改用自建服务器。
7. 你的权利
由于我们不持有你的任何数据,我们这边没有可供导出、更正或删除的内容。你设备上的数据完全由你掌控:在扩展设置中清除,或卸载扩展。如果你认为我们持有你的数据,请联系我们,我们会确认事实并非如此。
8. 儿童
MarkCraft 是一款面向开发者和写作者的工具,并非面向儿童,我们不会有意收集任何人的信息,包括 13 岁以下的儿童。
9. 政策变更
如果未来的 MarkCraft 版本以不同方式处理数据(例如新增可选的网络功能),本页面会在该版本发布前更新,上面的「最后更新」日期也会随之改变。重大变化还会在版本发布说明中注明。
10. 联系方式
关于本政策或 MarkCraft 隐私问题,请在 github.com/zhangweiii/markcraft/issues 提交 issue。