Write in Markdown. Work directly on the page. Keep your files.
English · 简体中文
Try in your browser · Download · Features · Docs · Contributing · MIT License
Important
Open Typora is an independent, unofficial project. It is not developed, endorsed, or supported by Typora, and is not an official free edition.
If you can afford it, please buy Typora and support its official developers. Visit typora.io for the official product and support.
Open Typora is an open-source Markdown editor inspired by Typora's inline editing experience. Write directly in the rendered document, switch to source when you need it, and save ordinary .md files in your own folders.
Status: early development, version 0.20.2. Release builds support macOS 14+ on Apple Silicon, Windows 10/11 x64, and Linux x64. The interface is currently in Simplified Chinese. This is an independent project, unaffiliated with Typora; full feature and behavior parity is still in progress.
- Optional AI editing — connect your own OpenAI-compatible API, OpenRouter, LM Studio or Ollama; rewrite a selection, review individual changes, and apply with one-step undo. Setup, privacy and limits.
- Live Markdown editing — headings, inline formatting, lists, tasks, tables, links, footnotes, and YAML front matter. Edit code and formulas in place, or switch to the full source view.
- Spreadsheet paste — copy an Excel/WPS range into an editable Markdown table in live or source mode; keep blank cells, quoted line breaks and one-step undo. Clipboard behavior.
- Tabs and split editing — reorder and navigate document tabs, compare two documents side by side or stacked, and use independent source/live modes. Restore the pane layout on restart. Right-click tabs for grouped closing, path copying, rename and split actions; use text/table context menus for editing.
- Responsive editing — initialize documents on first use, reuse unchanged blocks, and edit large files directly in a virtualized rendered document, with incremental block parsing, inner code/table viewports, delta undo history and background outline analysis; benchmarks and limits.
- A focused writing space — outline navigation, focus and typewriter modes, word counts, find and replace, six built-in themes, and local CSS themes.
- Theme customization — per-theme fonts, spacing, width and colors, live CSS, print-only CSS, and CSS export. Theme guide.
- Personal backgrounds — choose a local image, preview opacity, blur and placement, and keep it across restarts. Live and source modes share the background; exported documents stay free of it.
- Community plugins — six bundled, adapted typora_plugin plugins; local CommonJS files and folders with relative JS/JSON/CSS modules, configuration, shortcuts, and unloading. Compatibility scope.
- Files you control — folder tree, full-text search, quick open, recent files, autosave, session recovery, and external-change conflict detection.
- Images, math, and diagrams — local and pasted images, path and size controls, offline MathJax, Mermaid, and a legacy sequence/flow subset. Optional image uploads use a configured PicGo Server.
- More than UTF-8 — UTF-16 LE/BE, GB18030, GBK, Big5, Shift JIS, and Windows-1252. Preserve BOM and line endings; reject saves that would lose characters.
- Import and export — built-in HTML and PDF export with manual/chapter breaks, repeated table headers and widow/orphan controls; pagination guide. Additional formats such as DOCX, ODT, RTF, and EPUB through Pandoc.
- Windows Markdown preview — an opt-in native preview handler for Everything and File Explorer. Requires Microsoft Edge WebView2 Runtime. Setup and limits.
See the feature checklist for coverage and known differences.
Watch the editing demo · Project introduction and walkthrough (中文)
Trying the preview? Report a problem or suggest a feature. Include your platform, app version, and a small reproducible example.
Open the web demo to edit a sample, switch between live and source modes, open a UTF-8 Markdown file, and download your work. It uses the same editing kernel as the desktop app.
The demo keeps documents in the current tab's memory; it does not upload or persist their contents. Refreshing clears edits, so download a copy before leaving. Imports are limited to 1 MB and external embedded media are blocked. Local folders, recovery, other encodings, PDF / HTML export, plugins and AI editing require the desktop app. The demo does not accept model keys or call model services.
| Platform | Installer | Alternative |
|---|---|---|
| Windows 10/11 · x64 | Download Setup.exe | ZIP |
| macOS 14+ · Apple Silicon | Download DMG | ZIP |
| Linux · x64 | Download DEB | AppImage |
SHA-256 checksums · All releases
Ubuntu 22.04 or a compatible x64 distribution is the tested baseline. Download the DEB and install it with:
sudo apt install ./Open-Typora-0.20.2-linux-x64.debThe desktop launcher and Markdown file association are included. Uninstalling with sudo apt remove open-typora retains your documents and recovery data.
For other compatible distributions, make the AppImage executable and run it. Real FUSE mounting, editing and unmounting are tested on Ubuntu 22.04 and 24.04; Ubuntu 24.04 uses an explicit application-specific namespace profile. The launcher keeps Chromium sandboxing enabled. See the AppImage prerequisites and verification scope.
Additional document conversion on Windows/Linux requires Pandoc. ODT imports with older Pandoc 2.x also require LibreOffice to retain equations and headers. Legacy DOC/RTF imports also require LibreOffice, detected from its standard installation or PATH. Image copy, move, rename, download and Trash operations are available on all three platforms.
Run Setup.exe, choose an installation folder, and launch Open Typora from the Start menu. The installer also provides an optional desktop shortcut and Markdown file associations. Updates install into the same application folder; uninstalling preserves your recovery data.
To preview Markdown without opening the editor, enable 系统 Markdown 预览 in Preferences, then show the preview pane in Everything or File Explorer. This is optional and restores the previous handler when disabled. See the preview guide.
The Windows build is currently not code-signed. Windows may display an unknown-publisher or SmartScreen notice. Only use downloads from this repository's Releases page and verify the checksum if needed.
- Download Open-Typora-0.20.2-arm64.dmg from Releases.
- Open the DMG and drag Open Typora into Applications.
- Launch Open Typora from Applications.
Requires macOS 14 or later on Apple Silicon. A ZIP alternative and SHA-256 checksums are included in the release. No Node.js, Xcode, or Typora installation is needed to use the app.
The application is locally signed and not Apple-notarized. macOS may ask you to approve opening it in System Settings → Privacy & Security. See Apple's instructions. Never disable Gatekeeper to install it.
All platforms need Node.js 26 and npm. A Typora installation is not required. On macOS, also install the Xcode Command Line Tools (xcode-select --install).
git clone https://github.com/AniChikage/open-typora.git
cd open-typora
npm ci
npm run package:macOpen release/native/Open Typora.app, or install it in ~/Applications:
node scripts/install.mtsQuit a running Open Typora before replacing it. The installer preserves application data and removes the previous application after verifying the replacement. The build also produces a ZIP in release/native/; npm run package:release builds the DMG and checksum file too.
On Windows x64, also install Visual Studio 2022 Build Tools with the Desktop development with C++ workload and PowerShell 7 (pwsh). The build compiles the native preview handler using a pinned WebView2 SDK. Use the same clone and install steps, then build the installer:
npm run package:winThe EXE installer and ZIP are written to release/windows/. Build Windows releases on Windows x64. Intel Macs and Windows/Linux ARM do not yet have verified release builds.
On Linux x64, run npm run package:linux to produce DEB and AppImage files in release/linux/. Linux releases are built and tested on Ubuntu 22.04.
For additional document formats, install Pandoc, then select its executable in Preferences if it is not detected. Pandoc is optional for writing Markdown and exporting HTML/PDF. On Windows/Linux, install LibreOffice as well to import legacy DOC/RTF. Imported embedded images are extracted to persistent local storage; conversions can change formatting.
Open a Markdown file or a folder, or try the example document. Click the text to edit it. Enter continues a list or creates a paragraph; Tab moves through table cells.
| Action | macOS | Windows / Linux |
|---|---|---|
| New document | ⌘N |
Ctrl+N |
| Open a file | ⌘O |
Ctrl+O |
| Save | ⌘S |
Ctrl+S |
| Undo / redo | ⌘Z / ⌘⇧Z |
Ctrl+Z / Ctrl+Shift+Z |
| AI rewrite selection | ⌘⇧R |
Ctrl+Shift+R |
| Toggle source view | ⌘/ |
Ctrl+/ |
| Find in the document | ⌘F |
Ctrl+F |
| Search the folder | ⌘⇧F |
Ctrl+Shift+F |
| Quick open | ⌘⇧O |
Ctrl+P |
| Select word / delete word | ⌘D / ⌘⇧D |
Ctrl+D / Ctrl+Shift+D |
| Select line / table row | ⌘L |
Ctrl+L |
| Select scope / table cell | ⌘E |
Ctrl+E |
| Jump to selection | ⌘J |
Ctrl+J |
- Open 编辑 → 模型设置… (Edit → Model settings), or 偏好设置 → AI 改写 → 模型设置….
- Choose OpenAI 兼容 API / LM Studio for a compatible API, OpenRouter or LM Studio; choose Ollama 原生接口 for Ollama. Enter the service base URL, exact model ID and API key if needed. Start local servers separately.
- Click 保存并测试连接 (Save and test). This sends only the public sample
你好and a fixed test instruction, rather than your open document. You can also save without testing. - Select text, press ⌘⇧R / Ctrl+Shift+R, enter an instruction and click 生成改写. Review each change before choosing 应用 … 处修改. Generating a proposal does not modify or save the document; applying it is one undoable edit. The panel stays open so you can continue rewriting or read a new selection.
No model or API subscription is bundled. Only your selection, instruction and a fixed preservation instruction are sent to the configured service. On macOS, remembered keys are plaintext in the local configuration file with owner-only permissions; Windows/Linux retain system-backed encryption. Session-only keys are also supported. See the AI guide for endpoint examples, local models, credentials, errors and limits.
Use Node.js 26 (see .nvmrc).
npm ci
npm run dev:appTo work on the standalone browser demo, use npm run dev:demo; npm run build:demo writes the static site to dist-demo/. Its entry point is src/demo/, with a separate content security policy in web/index.html.
The Windows/Linux apps and development host use Electron/Chromium. The macOS app uses Swift/AppKit + WKWebView. Both share the same TypeScript/React interface and independently implemented editing model. First-party editor, desktop bridge, build, and test code is TypeScript; installers ship compiled JavaScript. Original third-party JavaScript plugins keep their upstream source and license notices.
npm run typecheck # Strict checks for renderer, desktop bridges, scripts, and tests
npm test # Editor and file-layer unit tests
npm run build # Type checking and production frontend build
npm run test:native # macOS filesystem tests
npm run test:webkit # Native WebKit integration tests; requires Pandoc
npm run test:ai # Electron AI UI with local HTTP fixtures; no API key
npm run test:ai-native # macOS model transport and credential tests
npm run test:ai-webkit # Native WebKit AI review and history testsMore editor and desktop suites, test isolation, and build details are in CONTRIBUTING.md. See the architecture for the document model, editing history, and native bridge.
| Guide | What it covers |
|---|---|
| AI editing | Custom APIs, local models, reviewing changes and data sent |
| Plugins · Themes | Supported plugin APIs, CSS, backgrounds and compatibility limits |
| Spreadsheet paste | Excel/WPS tables, plain text and clipboard limits |
| Performance | Large documents, code blocks, tables and measured limits |
| Printing · Windows preview · Linux AppImage | Pagination, Everything/File Explorer and FUSE setup |
| Feature checklist · Verification record | Implemented workflows, issue regressions and version-specific test coverage |
| Architecture · Contributing | Editing model, native hosts, development and release checks |
- Markdown open/save/recovery has no fixed 20 MiB cap. Large documents use viewport rendering, large code blocks use an inner CodeMirror viewport, and large tables mount visible rows. Available memory, initial parsing and runtime string limits still apply; tested sizes and remaining limits. Converted imports and media keep separate resource budgets.
- Legacy encodings without a BOM require an explicit encoding choice.
- Rich editing and source editing have separate undo histories; changes made in source mode join the rich history as one transaction when returning.
- Format conversion can change layout or unsupported document structures. Some RTF image formats are rejected explicitly. Keep the original file when importing.
- Windows/Linux DOC/RTF import requires both Pandoc and LibreOffice. Embedded WMF/EMF images need conversion to PNG/JPEG first.
- Physical IME checks for 0.20.0 cover Sogou Pinyin on macOS, including AI instructions, rich-text locations and undo/redo. Other physical IMEs and Windows/Linux candidate windows still need manual acceptance; synthetic composition is separate. See the versioned verification record.
- AI requires your own service and human review of the result. This release edits selections; it does not include whole-folder agents, browsing or tool calling. Ollama protocol tests use a controlled server; the real-model acceptance used a custom API, not local model weights.
- Third-party themes, embedded media, input methods, and image-host integrations vary in compatibility. Consult the checklist before depending on a specific workflow.
Bug reports, focused fixes, documentation, and reproducible compatibility examples are welcome. Start with the contribution guide, then open an issue or a pull request.
MIT. Third-party dependencies retain their own licenses; the packaged application includes their notices. Open Sans is licensed under OFL, and MathJax and its bundled fonts use Apache-2.0.
