🐧 The Linux of Note-Taking
A modular, plugin-first markdown editor that you can extend infinitely
Features • Quick Start • Plugins • Architecture • Contributing
|
Everything is a plugin. The core is minimal — all features (editor, explorer, themes) are implemented as plugins that can be replaced or extended. See formatting as you type. Markdown decorations, WikiLinks, and callouts render inline while editing. Create interactive React components that render inside your notes. Progress bars, buttons, status badges — if you can build it, you can embed it. |
Develop plugins with instant feedback. Save your code and see changes immediately — no restart required. Register custom themes with full control over colors, fonts, and styling. Switch themes on the fly. Plugins run in isolation. A buggy plugin can't crash the core. Safe, stable, extensible. |
| Method | Description |
|---|---|
| Windows Installer | Download .msi from Releases |
| Portable | Download .zip, extract, and run Notehub.exe |
# Clone the repo
git clone https://github.com/khton-tech/notehub.md.git
cd notehub.md
# Install dependencies
pnpm install
# Run in development mode
pnpm dev:desktopNotehub is designed for extensibility. Create your own plugins to add features, widgets, themes, and more.
import { NotehubPlugin, PluginContext } from '@notehub/api';
export default class MyPlugin extends NotehubPlugin {
async onload(ctx: PluginContext): Promise<void> {
// Register an API
ctx.registerApi('my-plugin:greet', (name: string) => `Hello, ${name}!`);
// Subscribe to events
ctx.subscribe('explorer:file-selected', (payload) => {
console.log('File selected:', payload.path);
});
}
async onunload(): Promise<void> {
// Cleanup is automatic!
}
}| Language | Link |
|---|---|
| 🇬🇧 English | Plugin Developer Guide |
| 🇷🇺 Русский | Руководство разработчика плагинов |
┌──────────────────────────────────────────────────────────────┐
│ NotehubCore │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ EventBus │ │ ApiBus │ │ Plugin Registry │ │
│ │ (pub/sub) │ │ (RPC calls) │ │ (lifecycle) │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────────────────┘
▲ ▲ ▲
│ │ │
┌────┴────┐ ┌────┴────┐ ┌──────┴─────┐
│ Logger │ │ Editor │ │ Explorer │
│ Plugin │ │ Plugin │ │ Plugin │
└─────────┘ └─────────┘ └────────────┘
| Package | Description |
|---|---|
@notehub/core |
Microkernel with EventBus and ApiBus |
@notehub/api |
Public SDK for plugin development |
apps/desktop |
Tauri-based desktop application |
| Category | Examples |
|---|---|
| System | Logger, Config Manager, State Manager, Synapse (plugin loader) |
| UI | Theme Manager, Layout Manager, Settings, Dialogs |
| Features | Editor, Explorer, Backlinks, About |
We welcome contributions! Notehub is Open Source and Copyleft (AGPLv3).
- 🐛 Report bugs — Open an issue
- 💡 Suggest features — Start a discussion
- 🔧 Submit PRs — Check open issues
- 📖 Improve docs — Help us write better guides
- Developer Hub — Architecture and conventions
- Plugin Guide — Build external plugins
GNU Affero General Public License v3.0 (AGPL-3.0)
Copyright © 2026 Notehub Contributors
If you modify and distribute Notehub, you must share your changes. See LICENSE for details.
Made with ❤️ for people who love plugins and markdown