Skip to content

moughamir/ebony.md

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺΆ eBony.md β€” LLM-Driven Knowledge Workspace

zread


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.

πŸš€ Features

🧠 Knowledge-first

  • Vault-based storage: Keep all your notes organized in local folders.
  • Bidirectional links: Support for [[WikiLinks]] and backlinks.
  • Markdown-native: Uses .md files with optional frontmatter metadata.

πŸ’‘ LLM-Driven Workflow

  • (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.

πŸͺΆ Elegant Markdown Editor

  • Auto-saving Markdown editor with debounce optimization.
  • Minimal interface designed for focus and flow.
  • Keyboard shortcuts and command palette (planned).

🌿 Graph Visualization

  • Interactive graph view powered by react-force-graph-2d.
  • Explore relationships between ideas visually.

🧩 Plugin System

  • Extend functionality via Tauri plugins.
  • Example plugin scaffold included (tauri-plugin-sample-plugin/).

βš™οΈ Git Sync Setup

  • Optional onboarding wizard to configure Git author and remote repo.
  • Store settings locally with Tauri’s secure storage.

🎨 Customizable UI

  • Built with Tailwind CSS and Radix UI components.
  • Supports light/dark/system themes.
  • Font size and family preferences via persistent settings.

🧰 Tech Stack

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

🧩 Architecture Overview

πŸ“¦ 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

βš™οΈ Installation

Prerequisites

  • Node.js β‰₯ 18
  • pnpm β‰₯ 9
  • Rust β‰₯ 1.70 (for Tauri)
  • Tauri CLI
    cargo install tauri-cli

Clone and Run

# 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 dev

Build for Production

pnpm tauri build

This will produce a native desktop binary for your platform.

πŸͺ„ Usage

  1. Create or open a vault β€” a local folder containing your Markdown notes.
  2. Use the File Tree sidebar to browse and open notes.
  3. Edit your notes in the Markdown Editor β€” changes auto-save.
  4. Switch to Graph View to visualize relationships.
  5. (Optional) Configure Git sync from onboarding.

🧠 LLM Integration Roadmap

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

🧱 Development Notes

Markdown Utilities

Located in src/lib/markdown.ts, includes:

  • parseWikiLinks() β†’ Extracts [[linked notes]]
  • parseTags() β†’ Extracts hashtags
  • parseFrontmatter() β†’ Parses YAML frontmatter

Persistent Stores

Zustand-based stores in /src/stores:

  • vaultStore β†’ Manages open vault, notes, current file
  • settingsStore β†’ Persists theme, font, vault path, and plugins

🧩 Plugin System

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.rs

Each plugin can expose commands to the frontend via the invoke API.

πŸ–ΌοΈ Screenshots

  • TODO: (Replace with your actual app screenshots)
Editor Graph View
Editor Screenshot Graph View

🀝 Contributing

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-feature

Then open a Pull Request πŸŽ‰

πŸͺͺ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

πŸ–€ Acknowledgments

Built with TypeScript, Rust, and ❀️ β€” for hackers, thinkers, and creators.

Recommended IDE Setup

About

Community-Driven Note-Making App (Death to ObsidianND)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors