eBony.md is an open-source, cross-platform note-making and knowledge management app built with Tauri, React, and TypeScript β designed as a lightweight, privacy-friendly alternative to Obsidian.
β¨ Local-first. Markdown-native. LLM-powered.
eBony.md blends the simplicity of Markdown editing with the power of local AI assistance, graph-based knowledge linking, and plugin extensibility.
- Vault-based storage: Keep all your notes organized in local folders.
- Bidirectional links: Support for
[[WikiLinks]]and backlinks. - Markdown-native: Uses
.mdfiles with optional frontmatter metadata.
- (Coming soon) Context-aware note summarization and Q&A.
- Planned support for local models (Ollama, LM Studio, GPT4All).
- Embeddings and semantic search for intelligent note retrieval.
- Auto-saving Markdown editor with debounce optimization.
- Minimal interface designed for focus and flow.
- Keyboard shortcuts and command palette (planned).
- Interactive graph view powered by
react-force-graph-2d. - Explore relationships between ideas visually.
- Extend functionality via Tauri plugins.
- Example plugin scaffold included (
tauri-plugin-sample-plugin/).
- Optional onboarding wizard to configure Git author and remote repo.
- Store settings locally with Tauriβs secure storage.
- Built with Tailwind CSS and Radix UI components.
- Supports light/dark/system themes.
- Font size and family preferences via persistent settings.
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + Vite |
| UI Library | TailwindCSS + Radix UI + Lucide Icons |
| State Management | Zustand (persistent stores) |
| Editor | Custom Markdown textarea editor |
| Backend | Rust (Tauri) |
| Graph View | react-force-graph-2d |
| Storage | Local filesystem (Vaults) |
| Build Tool | pnpm + vite + tauri-build |
π¦ eBony.md/
βββ src/
β βββ components/ β UI + Core features (FileTree, GraphView, Editor)
β βββ hooks/ β Reusable logic (debounce, note operations)
β βββ lib/ β Markdown parsing, Tauri API layer, utilities
β βββ stores/ β Persistent Zustand stores (vault, settings)
β βββ App.tsx β Main entry point
β βββ main.tsx β App mount + Tauri integration
βββ src-tauri/ β Rust backend (commands, search, graph)
βββ tauri-plugin-sample-plugin/ β Example Tauri plugin
βββ public/ β Icons, assets
βββ package.json β Workspace dependencies
- Node.js β₯ 18
- pnpm β₯ 9
- Rust β₯ 1.70 (for Tauri)
- Tauri CLI
cargo install tauri-cli
# Clone the repo
git clone https://github.com/<your-username>/ebony.md.git
cd ebony.md
# Install dependencies
pnpm install
# Start the app in dev mode
pnpm tauri devpnpm tauri buildThis will produce a native desktop binary for your platform.
- Create or open a vault β a local folder containing your Markdown notes.
- Use the File Tree sidebar to browse and open notes.
- Edit your notes in the Markdown Editor β changes auto-save.
- Switch to Graph View to visualize relationships.
- (Optional) Configure Git sync from onboarding.
| Feature | Status | Description |
|---|---|---|
| Context-aware note Q&A | π§© Planned | Ask questions and get answers based on your vault content |
| Local embeddings | π In design | Generate note embeddings for semantic search |
| Ollama / LM Studio support | π Planned | Run models locally for privacy-first AI |
| Supabase vector search | π Future | Cloud-optional sync and retrieval |
Located in src/lib/markdown.ts, includes:
parseWikiLinks()β Extracts[[linked notes]]parseTags()β Extracts hashtagsparseFrontmatter()β Parses YAML frontmatter
Zustand-based stores in /src/stores:
vaultStoreβ Manages open vault, notes, current filesettingsStoreβ Persists theme, font, vault path, and plugins
You can create and integrate custom Tauri plugins to extend eBony.md.
Example plugin scaffold:
tauri-plugin-sample-plugin/
βββ src/
β βββ commands.rs
β βββ desktop.rs
β βββ mobile.rs
β βββ lib.rs
β βββ models.rs
β βββ error.rsEach plugin can expose commands to the frontend via the invoke API.
- TODO: (Replace with your actual app screenshots)
| Editor | Graph View |
|---|---|
![]() |
![]() |
Contributions, issues, and feature requests are welcome! To contribute:
# Fork the repo and create your branch
git checkout -b feature/amazing-feature
# Commit your changes
git commit -m '(feat) Add amazing feature'
# Push to the branch
git push origin feature/amazing-featureThen open a Pull Request π
This project is licensed under the MIT License β see the LICENSE file for details.
- Tauri for secure, lightweight native builds.
- Obsidian and Logseq for inspiration.
- Radix UI, TailwindCSS, and Lucide Icons for modern UI.
- react-force-graph for visualization magic.
Built with TypeScript, Rust, and β€οΈ β for hackers, thinkers, and creators.

