Skip to content
AlbertKurtzPublic

About

A lightweight and powerful notetaking app.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

50 Commits

Folders and files

Repository files navigation

Contributors Forks Stargazers Issues MIT License


NoteLook Logo

NoteLook

A lightweight, portable note-taking app with semantic memory and hybrid search.
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Architecture
  5. Roadmap
  6. Contributing
  7. License
  8. Acknowledgments

About The Project

How often, while working or at the computer, do you find yourself taking quick notes in basic editors like Windows Notepad, Gedit, or whatever? Writing down dates, tasks, or bullet points during a meeting to remember what to say? I do it every day.

The problem begins when you need to retrieve those thoughts weeks or months later. You need that exact keywords, maybe the date, and text search falls short if you can't recall the specific wording. Or you did not even save the note...

NoteLook tries to solve this. It preserves the instant feel of a minimalist notepad, but adds semantic memory.

NoteLook Screenshot

NoteLook is a simple project bringing together three core goals:

  1. Rust: Building an efficient, low-footprint desktop application using modern Rust patterns.
  2. Local Natural Language Processing: Integrating offline, CPU-friendly embeddings without relying on third-party cloud APIs.
  3. A Notepad with Memory: Creating a fast, local note-taking tool that understands both exact keywords and conceptual meaning.

(back to top)

Key Features

  • Lightweight Footprint: Designed to remain fast and portable without bloat.
  • Hybrid Search (Vector + Lexical): Fuses dense semantic vector embeddings with native full-text retrieval using Reciprocal Rank Fusion (RRF).
  • Token-Aware Markdown Chunking: Automatically splits long Markdown documents into chunks.
  • 100% Local & Offline: All inference runs locally via Hugging Face Candle on CPU: the notes never leave the machine.
  • Dual Interface: Includes both desktop GUI and a CLI for scriptable ingestion and terminal queries.

(back to top)

Built With

  • Rust
  • Iced
  • Turso / libSQL
  • Hugging Face Candle

(back to top)

Getting Started

Install the Executable

Download Pre-built Binaries at Release

  • Windows (.zip)
  • Linux (.tar.gz)
  • macOS (.tar.gz)

Install from source

Prerequisites

  • Rust Toolchain: Stable Rust (edition 2021 or newer).
    curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh
  • Git: To clone the repository.
  • Note: On the first run, NoteLook downloads the paraphrase-multilingual-MiniLM-L12-v2 model weights (~90MB) from Hugging Face into your local cache directory. Subsequent runs operate completely offline.

Installation

  1. Clone the repository:
    git clone [https://github.com/AlbertKurtz/notelook.git](https://github.com/AlbertKurtz/notelook.git)
    cd notelook
  2. Build the release binaries:
    cargo build --release
  3. Run the GUI application:
    cargo run --release --bin notelook

(back to top)

Usage

GUI Application

Launch the desktop interface:

cargo run --release --bin notelook

or the executable.

  • Sidebar: View your recent notes, sorted by last update. Active notes display an accent indicator.
  • Editor: Live line and character counts with dirty-buffer tracking.
  • Hybrid Search Bar: Type queries in the sidebar search box and press Enter. Results return both lexical and semantic matches with similarity match percentages.

Keyboard Shortcuts

Shortcut Action
Ctrl + S Save note and trigger background re-indexing
Ctrl + N Create a new note
Ctrl + E Export a note to .txt or .md
Ctrl + Q Quit application

CLI Tool

A companion CLI utility is provided for terminal-centric workflows and scripting:

  • Add a Markdown file directly into the database:
    cargo run --bin cli -- add path/to/meeting_notes.md
  • Search notes from the command line:
    cargo run --bin cli -- search "cache failure on production" 5
  • List recently saved notes:
    cargo run --bin cli -- list

(back to top)

Architecture

                    ┌────────────────────────┐
                    │      Iced 0.14 GUI     │
                    │   (Editor & Sidebar)   │
                    └───────────┬────────────┘
                                │ Async Tasks
                                ▼
 ┌──────────────────────────────────────────────────────────────┐
 │                      Background Worker                       │
 │                                                              │
 │  1. Content Hashing (blake3) -> Detect edits                 │
 │  2. Tokenizer-Aware Markdown Chunking (text-splitter)        │
 │  3. CPU Inference Pool (Candle + `embedding model`)           │
 └──────────────────────────────┬───────────────────────────────┘
                                │
                                ▼
 ┌──────────────────────────────────────────────────────────────┐
 │                     Turso / libSQL Engine                    │
 │                                                              │
 │  • notes       -> Raw text and metadata                      │
 │  • chunks      -> Token-sliced text + F32_BLOB(384) vectors  │
 │  • Search      -> Vector cosine distance + Native FTS        │
 │                   fused via Reciprocal Rank Fusion (RRF)     │
 └──────────────────────────────────────────────────────────────┘

(back to top)

Roadmap

  • Embedded local vector storage via Turso / libSQL (F32_BLOB)
  • CPU inference engine with Hugging Face Candle
  • Token-based semantic Markdown splitting
  • Multi-channel hybrid search (BM25 + Cosine Distance fused with RRF)
  • Responsive Iced 0.14 desktop interface with keyboard shortcuts
  • Standalone CLI tool for headless ingestion and search
  • Direct note tagging and metadata filtering
  • More notepad features.
  • Rich Markdown preview mode toggle
  • Local export utilities (JSON/ZIP/Folder sync)

See the open issues for proposed features and active tasks.

(back to top)

Contributing

Contributions and feedback are welcome. If you have an idea or encounter an issue:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Acknowledgments

  • Candle by Hugging Face for lightweight, minimalist ML in Rust
  • Iced for the cross-platform GUI architecture
  • Turso / libSQL for SQLite with native vector support
  • text-splitter for tokenizer-accurate chunk boundaries
  • sentence-transformers for the paraphrase-multilingual-MiniLM-L12-v2 embedding model

(back to top)

Contact

Alberto Flor - LinkedIn

Project Link: https://github.com/AlbertKurtz/notelook

(back to top)

About

A lightweight and powerful notetaking app.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages