Nevo is a fast, local-first desktop app for organizing knowledge and notes, featuring an elegant interface. It includes a WYSIWYG editor based on ProseMirror.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Nevo is a minimalist desktop app for organizing your knowledge — inspired by Notion, Obsidian, and SiYuan. It pairs a distraction-free writing experience with a calm, borderless interface, and everything you create stays on your own device.
Grab the latest installer for your OS from the Releases page:
| Platform | Installer |
|---|---|
| 🪟 Windows | .msi or .exe |
| 🍏 macOS | .dmg (Apple Silicon & Intel) |
| 🐧 Linux | .deb, .rpm, AppImage, or Flatpak |
| 🤖 Android | Signed .apk (sideload) |
Desktop installations update automatically. 🎉
Android releases are distributed as APK files for manual installation. They are not published to Google Play and do not use Nevo's desktop updater.
The release workflow needs these GitHub Actions repository secrets:
ANDROID_KEY_BASE64 — base64-encoded Java keystore file.ANDROID_KEY_ALIAS — signing key alias in that keystore.ANDROID_KEY_PASSWORD — password for the key and keystore.Keep the same signing key for every release so Android can update an existing installation. Store the keystore and its passwords securely; losing the key prevents upgrades signed with it.
macOS builds are ad-hoc signed but not notarized, so Gatekeeper blocks the first launch. After moving Nevo.app to /Applications, do one of the following once:
xattr -dr com.apple.quarantine /Applications/Nevo.app
Prefer to build it yourself? You only need three tools — Node.js v20+, pnpm, and Rust (stable) — plus your platform's WebView/build libraries (details below).
git clone https://github.com/eliotBenitez/Nevo.git
cd Nevo
pnpm install # install frontend dependencies
pnpm tauri dev # run the app in development mode
pnpm tauri build # build production installers (.deb / .rpm / AppImage / .dmg / .msi / .exe)
Android launcher resources are prepared automatically by pnpm tauri:android:init, pnpm tauri:android:dev, and pnpm tauri:android:build. If you invoke pnpm tauri android ... directly, run pnpm tauri:android:icons after Android initialization and before building.
# Rust (rustup) — macOS / Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# pnpm via Corepack (included in Node.js ≥ 16.10)
corepack enable && corepack prepare pnpm@latest --activate
On Windows, install Rust with the rustup-init.exe installer.
Tauri v2 needs webkit2gtk-4.1 (WebView engine), libsoup-3.0, GTK3, librsvg2, openssl, an optional tray (libappindicator/ayatana), and a build toolchain (gcc, make, pkg-config).
Debian / Ubuntu (apt):
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev build-essential curl wget file \
libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev
Fedora (dnf):
sudo dnf install -y webkit2gtk4.1-devel openssl-devel curl wget file \
libappindicator-gtk3-devel librsvg2-devel
sudo dnf group install -y "c-development" "development-tools"
Arch / Manjaro (pacman):
sudo pacman -S --needed webkit2gtk-4.1 base-devel curl wget file openssl \
appmenu-gtk-module librsvg
# Tray support (optional) — package from AUR:
# yay -S libappindicator-gtk3
openSUSE (zypper):
sudo zypper in -y webkit2gtk3-soup2-devel libopenssl-devel curl wget file \
libappindicator3-1 librsvg-devel
sudo zypper in -t pattern -y devel_basis
If the package is not found on your openSUSE version, check its name with
zypper se webkit2gtk(Tauri v2 needs the soup3 variant, namedwebkit2gtk3-develin some releases).
The WebView (WKWebView) is built into the OS — no separate engine needed, just compilation tools.
xcode-select --install
brew install node
Apple Silicon (
aarch64) and Intel (x86_64) are both supported. For a universal binary, add the second target (e.g.rustup target add x86_64-apple-darwin) and build withpnpm tauri build --target universal-apple-darwin.
rustup-init.exe (MSVC toolchain stable-x86_64-pc-windows-msvc).winget install OpenJS.NodeJS; then corepack enable.Install everything at once with winget:
winget install Microsoft.VisualStudio.2022.BuildTools Rustlang.Rustup OpenJS.NodeJS Microsoft.EdgeWebView2Runtime
Only required for pnpm tauri build when packaging an AppImage (bundleMediaFramework is enabled in tauri.conf.json). Not needed for pnpm tauri dev.
| Distribution | Packages |
|---|---|
| Debian/Ubuntu | libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav |
| Fedora | gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-ugly-free gstreamer1-libav |
| Arch | gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav |
| openSUSE | gstreamer-plugins-base gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-libav |
| Backend | Tauri (Rust) |
| Frontend | Vue 3 (Composition API) |
| Language | TypeScript |
| Editor | ProseMirror |
| State | Pinia |
| Build | Vite |
| Styling | CSS design tokens & global project styles |
Nevo follows strict architectural boundaries to stay maintainable:
src/app/ — core application shell and layouts.src/editor-core/ — isolated ProseMirror logic (schema, plugins, commands).src/features/ — modular features (graphs, databases, onboarding).src/ui/ — reusable interface primitives and animations.src-tauri/ — Rust source for the desktop backend.Note: ProseMirror editor state is kept strictly out of Vue/Pinia to avoid performance and reactivity issues.
Start with the Plugin SDK V2 documentation for a guided quick start, manifest and capability reference, editor transactions, custom UI, host services, testing, security, and SDK V1 migration.
The MCP bridge lets external coding agents such as Claude Code and codex read and edit the workspace you have open. It is off by default; enable it under Settings → AI agents and pick how much access to grant.
Nevo is licensed under the AGPL-3.0 License. See LICENSE for details.