Navin

Notes module - Overview

The Notes module (sidebar → Notes, route #/notes) is Navin's knowledge space: a Notion-style block editor, structured databases, a knowledge graph, tasks, files - and above all a native AI memory: your notes become queryable context for the agent, and a note can launch real work (agent blocks).

Everything is local-first: each note is a Markdown file with YAML frontmatter under ~/.navin/notes/. No proprietary format, no lock-in - your notes stay readable with any editor.

Layout

┌────────────┬──────────────────┬──────────────────────────────┐
│ Rail       │  Notes list      │  Editor                      │
│ Sections   │  (search,        │  title, tags, blocks,        │
│ Folders    │   pinned,        │  autosave + conflicts        │
│ Tags       │   previews)      │                              │
└────────────┴──────────────────┴──────────────────────────────┘

All three columns scroll independently. Focus mode hides the chat for full-screen writing. The Navin chat stays available on the right in the standard view.

Sections

SectionContents
All notesFull list, full-text search (Ctrl+K), pinned first
DatabaseNotes as structured data: Table view (editable cells) and Kanban board (drag & drop by status), custom properties (text, number, date, status, select...), saved views with filters
GraphKnowledge graph: note + tag nodes, [[wikilink]] and tag edges; click a node to open the note or filter by tag
TasksEvery - [ ] item across all notes, toggleable here, quick add without opening a note, p1/p2 priorities
FilesAll attachments (_files/), direct upload, which notes reference them, in-product preview on click
TrashDeleted notes: restore, delete forever, or empty the trash (in-app confirmations, never a browser dialog)
CommandsReference of every slash command and tip, generated from the real catalog

Below the sections: the folders tree (inline creation, deletion trashes the contents) and the tags list with counts.

Editor

Block editor (Tiptap) with native Markdown: what you type is what gets stored.

Slash commands

Type / at the start of a line:

CommandBlock
/title /h2 /h3Headings
/textParagraph
/todoCheckbox task list
/bullet /numberedLists
/quoteQuote
/codeCode block with syntax highlighting
/tableTable
/dividerHorizontal rule
/linkInsert a hyperlink (in-app dialog: text + URL)
/imageUpload and embed a picture
/fileAttach a file
/agentExecutable agent block (see below)

Menu search is accent-tolerant and matches French/English synonyms (/tache finds To-do).

Format bar

Select some text: a floating bar appears with bold, italic, link, six text colours and six highlights (red, orange, amber, green, blue, purple - handy for marking priorities), plus an eraser to clear colours. Colours survive the Markdown round-trip (inline HTML) and stay readable in both light and dark themes.

Links and knowledge

  • [[Note title]] creates a wikilink; titles and aliases resolve case-insensitively.
  • /link or the link button in the selection bar inserts a regular [text](url) web link; Ctrl+click (Cmd+click on macOS) opens it in the OS browser (via the gateway on packaged desktop / Tauri, where window.open is blocked).
  • Backlinks appear automatically under each note.
  • Frontmatter #tags feed the Tags section and the Graph.

Saving

  • Autosave (800 ms after the last keystroke) plus Ctrl+S to force.
  • Conflict detection: if the note changed on disk since it was loaded (another tab, an agent, sync), the editor flags it and offers to reload instead of overwriting.
  • A version history is kept per note.

Attachments

Three ways to add a file to a note: /image or /file, drag & drop, or paste (Ctrl+V, handy for screenshots). The file goes to _files/ and the note keeps a portable relative path (never a token inside the Markdown).

Clicking opens an in-product preview (crucial for packaged Windows/macOS/Linux desktop builds: no browser tab, no token-bearing URL):

  • images (png, jpg, gif, webp, svg...),
  • PDF (embedded Chromium viewer),
  • video and audio (players with controls),
  • Markdown (rich rendering: headings, tables, highlighted code),
  • text/code (monospace view),
  • other types: a "no preview" screen with a Download button (blob-based, the token never leaves the app).

AI memory and Navin IA

The note toolbar has a Navin IA menu (next to Export):

ActionWhat it does
Ask NavinSeeds the chat with the note title + ~/.navin/notes/….md path so you finish the question
SummarySends a prompt to write a ## Summary section at the top of the same file
TranslationSends a prompt to append a ## Translation section below the existing text
CorrectionSends a prompt to correct in place (spelling, grammar, clarity) without duplicating the note

Prompts look like: Summarize this note : « Untitled » (fichier ~/.navin/notes/sans-titre-3.md).

  • Notes are semantically indexed in the background: chunking by Markdown sections, embeddings (Ollama nomic-embed-text by default via the semanticSearch endpoint), hybrid semantic + lexical search with RRF fusion.
  • The agent has a read-only notes tool: it searches and reads your notes as context during any turn - your notes become the workspace memory.

Export

Per-note Export menu in the toolbar:

FormatBehaviour
Markdown (.md)Downloads the note (TipTap colour / highlight HTML preserved for round-trip)
Text (.txt)Plain text only (HTML wrappers stripped)
PDFOpens the browser print dialog from the live editor HTML so colours, lists, tables and tasks are kept - choose "Save as PDF"

Agent blocks (/agent)

An agent block is a fenced code block with the agent language (perfect Markdown round-trip, readable by the agent with file tools). The inserted template describes Objective / Sources / Output. The block renders as a card with a Run button: clicking builds a structured prompt (block spec + note title + file path) and places it in the chat composer; the agent executes and appends the result to the note under ## Result.

This is the "the note no longer describes the work: it launches the work" building block.

Storage and format

~/.navin/notes/
├── <folder>/<note>.md       # Markdown + YAML frontmatter
├── _files/                  # attachments (hash prefix)
├── _versions/               # per-note history
├── _views.json              # database views
└── .trash/                  # trash

Note frontmatter:

---
id: 9f2c1a
title: V3 launch
tags: [product, roadmap]
aliases: [V3]
pinned: false
archived: false
folder: projects
props: { status: "in progress", priority: 1 }
created: 2026-08-10T18:00:00.000000Z
updated: 2026-08-10T19:30:00.000000Z
---

Atomic writes (temp file + fsync + os.replace), microsecond timestamps for conflict detection.