Skip to main content
Scratch stores your notes as plain Markdown files in a folder you choose. This makes your notes portable, searchable, and accessible with any text editor or AI agent.

File Storage

Each note is saved as a .md file in your notes folder. The filename is automatically derived from the note’s title (the first # Heading in the content).

Filename Sanitization

When you save a note, Scratch sanitizes the title to create a safe filename:
  • Invalid characters (/, \, :, *, ?, ", <, >, |) are replaced with -
  • Leading and trailing spaces are removed
  • Empty titles default to “Untitled”
  • If a file with the same name exists, a counter is appended (e.g., Meeting-2.md)
Title changes = File renames: When you change a note’s title, Scratch automatically renames the file. Your note ID updates, but you stay in the same note.

Example

A note with the title:
# Project Ideas: Q1 2024
Will be saved as:
Project Ideas- Q1 2024.md

Folder Structure

You can organize notes into subfolders for better structure. Scratch discovers all .md files recursively up to 10 levels deep.

Special Folders

Scratch excludes certain folders from note discovery:
  • .git - Git repository metadata
  • .scratch - App settings and cache
  • .obsidian - Obsidian vault metadata
  • .trash - Deleted notes
  • assets - Images and attachments
Create subfolders directly in your notes folder (e.g., Projects/, Archive/, Daily/) to organize by category or date.

Folder-Based Note IDs

Notes in subfolders have IDs that include the path:
Projects/Scratch.md → ID: "Projects/Scratch"
Daily/2024-03-03.md → ID: "Daily/2024-03-03"
Connect your notes using [[wikilinks]] - a simple way to reference other notes by title.
  1. Type [[ to trigger autocomplete - Shows all your notes
  2. Select a note - Inserts [[Note Title]]
  3. Click the wikilink - Navigates to the linked note
  • Case-insensitive matching: [[scratch]] matches “Scratch” note
  • Autocomplete: Type [[ and see suggestions as you type
  • Non-existent notes: Clicking a wikilink to a note that doesn’t exist shows a toast notification
Wikilinks are stored as [[Note Title]] in your Markdown. They work across folder boundaries - just use the note’s title.

Note Naming Conventions

Customize how new notes are named using templates in Settings → General → Default Note Name.

Available Tags

TagOutputExample
{timestamp}Unix timestamp1709481600
{date}ISO date2024-03-03
{year}Year2024
{month}Month03
{day}Day03
{time}Time (24h)14-30-00
{counter}Auto-incrementing number1, 2, 3

Template Examples

Daily notes:
{year}/{month}/{day}
Creates: 2024/03/03.md Numbered notes:
Note {counter}
Creates: Note 1.md, Note 2.md Meeting notes:
Meeting {date}
Creates: Meeting 2024-03-03.md
Templates with / automatically create nested folders. Perfect for organizing daily notes by date.

Pinning Notes

Pin frequently accessed notes to keep them at the top of your sidebar:
  1. Right-click a note in the sidebar
  2. Select Pin Note
  3. Pinned notes appear first, sorted by date
Pinned note IDs are stored in .scratch/settings.json in your notes folder. Pin status is per-folder, not global.

Search and Discovery

Scratch uses Tantivy (full-text search) to index your notes for fast searching:
  • Search notes: Cmd+Shift+F (or click search in sidebar)
  • Search current note: Cmd+F for in-page find
  • Command Palette: Cmd+P to quickly jump to any note

What’s Indexed

  • Note titles (higher ranking)
  • Full note content
  • Metadata (modified date)
The search index is automatically rebuilt when you set a notes folder and updated incrementally as you edit.

Best Practices

  1. Use descriptive titles - Filenames are derived from titles, so make them clear
  2. Create subfolders sparingly - Scratch’s search is fast; folders are for broad categorization
  3. Link liberally - Use [[wikilinks]] to create connections between ideas
  4. Pin your index - Create a “Home” or “Index” note and pin it for quick navigation
  5. Keep assets organized - Images are automatically stored in the assets/ folder
Avoid manually editing files while Scratch is open. File watcher conflicts can cause unexpected reloads. Use “Reload Note” (Cmd+R) to pull external changes.

Build docs developers (and LLMs) love