A command-line tool for quick note capture and browsing, built with Go.
One of the problems with taking notes is thinking about what file you're creating, where you're going to put it, what to name it, folder structures, etc. All these things get in the way of taking quick notes.
Jotit eliminates this friction by providing a simple CLI for capturing and browsing notes stored in a sqlite3 database.
- Quick Note Capture: Add notes instantly from the command line
- Interactive TUI: Browse and manage notes in a terminal interface
- Date Filtering: Find notes by date range
- Keyword Search: Find notes containing specific text
- SQLite Storage: Reliable local storage with soft delete
- Markdown Import: Bulk import from markdown files
Download the latest binary from GitHub Releases and place it in your PATH.
macOS: Remove the quarantine flag after downloading:
xattr -d com.apple.quarantine jotitgo install github.com/mkaz/jotit/cmd/jotit@latestgit clone https://github.com/mkaz/jotit.git
cd jotit
go build -o jotit ./cmd/jotit# Launch the interactive browser
jotitKeybindings in TUI:
↑/k,↓/j- Navigate/- Searchs- Toggle sort (created date / recently updated)n- New note (opens $EDITOR)e- Edit note (opens $EDITOR)c- Copy note to clipboardd- Delete notetab- Switch panelsq- Quit
# Simple note
jotit add "Had a great idea about improving user onboarding"
# With a specific date
jotit add --date 2025-12-24 "Christmas day note"
# From stdin
git log --since=2025-10-31 | jotit add
# Interactive form (no arguments)
jotit add# Find notes by date
jotit find --date 2025-12-24
jotit find --after 2025-12-01
jotit find --before 2025-12-31
jotit find --after 2025-12-01 --before 2025-12-31
# Find notes by keyword (case-insensitive)
jotit find -k meeting
jotit find --keyword project
# Combine date and keyword
jotit find --after 2025-12-01 -k project
# Pipe to other commands (e.g., LLM summarizer)
jotit find --after 2025-12-01 | llm summarize# Import a single markdown file as a note
jotit import ~/notes/ideas.md
# Import all markdown files from a directory
jotit import ~/notes
# Split files by date headers (## Date format)
jotit import --split ~/notesWhen importing files, the note's created date is set to the current time, and the updated date is set to the file's modification time.
With --split, the importer looks for ## Date headers and treats the content below each header as a separate note. Supported date formats:
- January 15, 2024
- Jan 15, 2024
- 2024-01-15
- 01/15/2024
Jotit can be configured via environment variables or a TOML configuration file located at ~/.config/jotit/jotit.toml.
JOTIT_DB- Database file location (overrides config file)
Create ~/.config/jotit/jotit.toml:
[database]
path = "~/Documents/jotit.db"
[ui]
default_sort = "created" # "created" or "updated"
[find]
separator = "---" # separator between notes, empty string for none
with_date = true # prepend date to each note
with_id = false # prepend ID to each noteCREATE TABLE notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP,
is_deleted INTEGER DEFAULT 0
);MIT License - see LICENSE file for details.
Created by Marcus Kazmierczak
Jotit - jot it down, find it later