Skip to content
BerryUIKIPublic

About

Local‑first open‑source Markdown editor with seamless in‑place WYSIWYG. Zero‑split‑pane workflow, no telemetry, fully offline‑capable cross‑platform writing tool.

Topics

Resources

Contributing

Stars

4 stars

Watchers

1 watching

Forks

Latest commit

 

History

190 Commits

Folders and files

Repository files navigation

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español · Русский

Taleno

✨ Taleno

A Typora-style, local-first, high-performance Markdown reader & in-place WYSIWYG editor.

v0.1.11 Released · AGPL-3.0 Open Source

Website Release License: AGPL-3.0 Platform CI Tauri 2 Rust SolidJS

🚀 Local-first • 📝 Zero split-panes • 🌐 9 Languages •

📥 Download · 🖥️ Interface Preview · 🌟 Key Features · ⌨️ Keyboard Shortcuts · 📚 Documentation · 🌐 Website

Published desktop release: v0.1.11 (2026-11-01). Later development changes are unreleased. See the implementation and platform matrix for actual dependencies, source paths and verification limits. Android/iOS external files, saves and keyboard/safe-area behavior still require device acceptance; signed mobile release jobs are not configured. Startup time and package size vary by build and platform; the performance record, rather than a fixed marketing figure, is authoritative.


📖 Table of Contents


🖥️ Interface Preview

A real look at Taleno in action — menu bar, multi-tabs, outline sidebar, and in-place WYSIWYG editing, all in one window. No split panes, no previews, no distractions.

Taleno in-place WYSIWYG Markdown editor

Reading · Writing · Code — three display modes, one keystroke (Ctrl+/) to switch.


📥 Instant Downloads

Choose your platform and package:

View all releases and source archives.


📖 Introduction

Taleno is an open-source Markdown reader and editor engineered for writers, developers, and researchers who want the speed of plain-text Markdown without the cognitive overhead of split-screen previews.

Built on Tauri 2 and Rust with a fine-grained reactive SolidJS frontend, Taleno combines native desktop responsiveness with a minimalist, distraction-free aesthetic.


🌟 Key Features

Feature Highlights Status
🌐 9-Language i18n System Native support for English, 简体中文, 繁體中文, 日本語, 한국어, Deutsch, Français, Español, and Русский with OS auto-detection and runtime switching ✅ Complete
🪟 Platform-Native Window Chrome Theme-matched menus with compact custom controls on Windows/Linux and native traffic-light window controls on macOS ✅ Complete
🏷️ Windows .md File Association Automatically associates .md, .markdown, .mdx, and .txt files; double-click in Windows Explorer to open directly ✅ Complete
🔄 Tri-State Display Modes Quickly switch between Reading (read-only), Writing (Typora-style WYSIWYG), and Code (source code with line sync) via Ctrl+/ ✅ Complete
📥 Intelligent Drag & Drop Drag file into window to open; drag onto tab bar for new tabs; drag into text to insert formatted Markdown links ✅ Complete
✍️ In-Place Formatting Format selections directly with standard shortcuts (Ctrl+B for bold, Ctrl+0 for paragraph, Ctrl+1~6 for headings) ✅ Complete
🔲 Monochrome Vector UI Pure, minimalist theme-adaptive vector SVGs (stroke="currentColor") that keep focus on your text ✅ Complete
💾 Crash-Safe Atomic Saving Never lose your work with atomic file writes (write to .tmp -> rename) and dirty state tracking ✅ Complete
📂 Workspace Tree & Tabs Multi-document tabs, recursive file tree CRUD operations, and quick file switcher (Ctrl+P) ✅ Complete
🌈 Code Syntax Highlighting High-performance code block highlighting via syntect with language tags and copy button ✅ Complete
📑 Dynamic Table of Contents Interactive document outline with smooth anchor scrolling across all display modes ✅ Complete
📊 Mermaid Diagrams & Math Layout HTML/CSS containers for flowcharts, sequence diagrams (mermaid), and serif LaTeX math formatting (math/katex/$$) ✅ Complete
🔍 Native Workspace Search Recursive file search in Rust backend (src-tauri/src/commands/search.rs) with line match extraction (Ctrl+Shift+F) and in-document Find & Replace (Ctrl+F / Ctrl+H) ✅ Complete
📤 Standalone HTML Export Export any document to self-contained, offline-styled HTML (Ctrl+E) ✅ Complete
🧩 Plugin System & Extensibility Modular extension engine with identifier-derived directory scanning (plugins/), hot-reload, sandboxed JS context, and Preferences sub-menu (Ctrl+Shift+X) ✅ Complete

See the Roadmap and Milestones for what's planned next.


📊 Feature & Platform Status Matrix

Core Feature Implementation Pathways

Component Technology & Implementation Path Architecture Details Verification Status
Markdown WYSIWYG Editor Milkdown v7 + ProseMirror In-place editing, ProseMirror transactions, history stack ✅ Production Ready
GFM AST Parser Rust pulldown-cmark crate Zero-copy AST traversal, slugified heading anchors ✅ Production Ready
Syntax Highlighting Rust syntect crate Sublime syntax definitions, language badges, copy button ✅ Production Ready
Diagram Containers Rust parser HTML wrapper Fenced mermaid code transformed into .mermaid-diagram container ✅ Production Ready
Math Block Containers Rust parser HTML wrapper math/katex and $$...$$ rendered into styled .math-block ✅ Production Ready
Workspace Search Rust async recursive walker tokio::fs directory recursion, case-insensitive line matches ✅ Production Ready
Crash-Safe File I/O Rust atomic tempfile writer <filename>.tmp write + buffer flush + atomic fs::rename ✅ Production Ready
Plugin Runtime Sandboxed TalenoPluginContext Isolated storage, lifecycle hooks, identifier-derived data path ✅ Production Ready
Theme Runtime CSS variable token injector Hot CSS variable overrides on :root via theme.json + theme.css ✅ Production Ready
Cloud Synchronization None (Intentionally omitted) 100% local-first architecture; zero telemetry or cloud lock-in ⛔ Out of Scope

Target Platform Support Matrix

Platform Target Architecture Distribution Formats Verification Status Known Limitations & Notes
Windows x86_64, aarch64 NSIS Installer (.exe), WiX MSI (.msi) ✅ Verified Fully tested on Windows 10/11 local host and CI runners.
macOS Apple Silicon (aarch64), Intel (x86_64) Apple Disk Image (.dmg), App Bundle (.app) ⚠️ CI Verified Compiles cleanly in GitHub Actions CI. Code signing and notarization require Apple Developer certificate (see macOS Signing).
Linux x86_64, aarch64 AppImage, Debian Package (.deb), RPM Package (.rpm) ⚠️ CI Verified Built in CI matrix. Requires system webkit2gtk-4.1 and gtk3 runtime libraries.
Android arm64-v8a, armeabi-v7a, x86_64 Android Package (.apk), App Bundle (.aab) 🔄 In Progress Responsive single-column UI, navigation drawer, and visual viewport virtual keyboard scrolling implemented. Physical device hardware testing and SAF scoped storage validation pending.
iOS arm64 iOS App Archive (.ipa) 🔄 In Progress Responsive mobile shell and safe-area insets implemented. Physical device testing and security-scoped bookmark sandbox validation pending.

💡 Why Taleno?

Taleno Split-Pane Editors Web-Based Notes
Rendering In-place WYSIWYG, zero panes Side-by-side preview Browser tab juggling
Startup < 400 ms native cold start Depends on Electron weight Page load + sync wait
Privacy 100% local-first, zero telemetry Local files Data stored on cloud
Offline Fully offline Fully offline Requires network
Formatting Pure Markdown on disk Proprietary formats possible Vendor lock-in

Taleno keeps your documents as pure Markdown on disk — portable, diffable, and yours forever. No cloud account, no sync engine, no lock-in.


⌨️ Keyboard Shortcuts

Category Shortcut Action
Document Ctrl + N New Document
Ctrl + O Open File...
Ctrl + Shift + O Open Workspace Folder...
Ctrl + S Save Current Document
Ctrl + Shift + S Save As...
Ctrl + W Close Current Tab
Ctrl + E Export Document as HTML...
Editing Ctrl + Z / Ctrl + Y Undo / Redo
Ctrl + B Toggle Bold Formatting
Ctrl + I Toggle Italic Formatting
Ctrl + Shift + X Toggle Strikethrough
Ctrl + K Insert / Wrap Link
Ctrl + ` Toggle Inline Code
Ctrl + 0 Format as Normal Paragraph
Ctrl + 1 ~ 6 Format as Heading 1 ~ Heading 6
Navigation & Search Ctrl + P Quick File Switcher
Ctrl + F Find in Current Document
Ctrl + H Replace in Current Document
Ctrl + Shift + F Search Across Workspace
View Ctrl + / Switch Display Mode (Reading / Writing / Code)
Ctrl + Shift + B Toggle Sidebar (Files / Outline)
Ctrl + Shift + D Toggle Focus Mode (Distraction-Free)
F11 / Ctrl + Shift + Z Toggle Zen Mode (Full-Screen)
Ctrl + + / - Zoom In / Zoom Out Font Size
Ctrl + 0 (NumPad) Reset Font Size (16px)
Preferences & Plugins Ctrl + , Open Preferences / Settings
Ctrl + Shift + X Open Plugins Management Tab

(On macOS, replace Ctrl with Cmd)


🛠️ Architecture & Tech Stack

┌────────────────────────────────────────────────────────┐
│               Frontend (SolidJS + Webview)             │
│   • Reactive UI Components (MenuBar, Sidebar, Tabs)   │
│   • Editor Engine (Milkdown / ProseMirror WYSIWYG)     │
│   • Multi-language Engine (Solid Signals, 9 Locales)   │
│   • Typed IPC Wrappers (invoke / listen)               │
└──────────────────────────┬─────────────────────────────┘
                           │ IPC Bridge (JSON / Events)
┌──────────────────────────▼─────────────────────────────┐
│                 Backend (Rust Native App)              │
│   • State Management (Mutex<AppState>)                 │
│   • Native Update Checker (HTTPS Reqwest Client)       │
│   • Atomic File I/O & FS Watcher (notify crate)        │
│   • Zero-Copy AST Parser (pulldown-cmark)              │
│   • Code Syntax Highlighter (syntect)                  │
└────────────────────────────────────────────────────────┘

💻 Developer Setup

Prerequisites

Clone & Run Locally

git clone https://github.com/BerryUIKI/Taleno.git
cd Taleno

# Install frontend dependencies
pnpm install

# Start local Tauri dev server
pnpm tauri dev

Tests & Verification

# Strict TypeScript type check and linter
pnpm lint

# Run all Rust unit tests
cargo test --manifest-path src-tauri/Cargo.toml

# Run frontend unit tests (Vitest)
pnpm test

Production Build

# Build standalone executable & OS installers
pnpm tauri build

📚 Documentation

Document Description
ARCHITECTURE.md System design & data flow
DESIGN_DECISIONS.md Architecture Decision Records (ADRs)
DEVELOPMENT.md Developer setup & debug guide
CONTRIBUTING.md Contribution guidelines & conventions
COLLABORATION.md Team workflow & review rules
ROADMAP.md Phased feature roadmap & MoSCoW
MILESTONES.md Milestones & schedule
NEXT_STEPS.md Phase 2 implementation blueprint
PLUGIN_DEVELOPMENT.md Plugin developer guide, APIs & standards
THEME_DEVELOPMENT.md Theme & skin developer guide, CSS tokens & palette spec

🤝 Contributing

Contributions are warmly welcome — bug reports, feature ideas, translations, and pull requests alike.

  1. Fork the repository and create a branch from dev.
  2. Follow the Contributing Guide and Collaboration Handbook.
  3. Keep commits in Conventional Commits format.
  4. Open a pull request against dev.

All commit messages follow the format: <type>(<scope>): <short summary> — e.g. feat(editor): integrate Milkdown core in-place WYSIWYG renderer.


💬 Community & Support


❤️ Acknowledgments

Taleno stands on the shoulders of these amazing open-source projects:


📄 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.

If you modify Taleno and run it as a network service, AGPL-3.0 requires you to make your modified source code available to its users.

About

Local‑first open‑source Markdown editor with seamless in‑place WYSIWYG. Zero‑split‑pane workflow, no telemetry, fully offline‑capable cross‑platform writing tool.

Topics

Resources

Contributing

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages