100% local
Save commands, notes, URLs, facts, and reminders right in the terminal. Recall anything later with natural language. Fully local with Ollama.
┌──────────────────────┐ │ yaad · reminder │ │ │ │ do some situps │ │ due: in a moment │ └──────────────────────┘
Query-first memory that stays local and fits how developers actually work.
Ask in plain English. Local embeddings + LLM reasoning find what you saved, even weeks later.
All AI runs via Ollama on your machine. No cloud, no accounts, no data leaving your laptop.
Parse "in 30 minutes", "tomorrow 9am", or "Friday 3pm" into real deadlines.
Every memory captures context, cwd, hostname, and timestamp. AI auto-detects type and tags.
Memories save even when Ollama is down. AI enrichment degrades gracefully, never blocking saves.
Swap storage, AI provider, or notifier by implementing a single interface.
Requires Ollama running locally.
Get Ollama from ollama.com, then pull the required models.
# embeddings model ollama pull mxbai-embed-large # chat / reasoning model (swap for any compatible one) ollama pull llama3.2:3b
go install github.com/kunalsin9h/yaad/cmd/yaad@latest
yaad config init
yaad add "staging db is postgres on port 5433"
Also set up reminders — it's yaad's most powerful feature and takes 30 seconds.
Five memory types, auto-detected by AI: command · note · url · fact · reminder
Save anything. --for adds a label, --remind sets a deadline, --tag for filtering later.
yaad add "staging db port is 5433" yaad add "submit PR" --remind "tomorrow 9am" yaad add "https://api.docs.com" --tag reference yaad add "ssh -i ~/.ssh/id_rsa user@prod" --for "prod login"
Query in plain English. LLM reasons over semantic search results to give a direct answer.
yaad ask "what is the staging db port?" yaad ask "do I have anything due today?" yaad ask "how do I log into prod?"
Browse recent memories. Filter by type, tag, or show only pending reminders.
yaad list yaad list --type reminder yaad list --tag staging yaad list --remind # only due reminders
Show full details — content, type, tags, working dir, hostname, created time. Accepts 10-char ULID prefix.
yaad get 01JTXK4A3B
Remove one memory by ID, or wipe everything at once. Both prompt for confirmation; skip with -y.
yaad delete 01JTXK4A3B yaad delete 01JTXK4A3B -y # skip prompt yaad clean # delete all
Manage ~/.yaadrc. Override Ollama URL, models, notifier, and reminder poll interval.
yaad config init yaad config set ollama.chat_model llama3.2:3b yaad config list
Two ways to surface reminders — pick what fits your workflow.
Learn more in the reminders documentation →
One command. All local. MIT licensed.