100% local
Save commands, notes, URLs, facts, and reminders right from 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.
Set a reminder while saving — yaad surfaces it right in your terminal when it's due.
# set a reminder while saving yaad add "book conference ticket" --remind "in 30 minutes" yaad add "deploy to prod" --remind "tomorrow 3pm" yaad add "submit PR for review" --remind "Friday 9am"
Two ways to surface reminders — pick what fits your workflow.
Learn more in the reminders documentation →
yaad will support both. Here's what sets them apart.
You decide what's worth saving. Write context right into the content — the AI embeds everything and surfaces it precisely when you ask.
yaad watches your workflow silently. No new commands to learn. It captures what matters, builds memory in the background, and surfaces it when you need it.
Both modes will coexist — intentional saves stay precise, ambient capture fills the gaps.
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
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. Include context right in the content — AI finds it later. --remind sets a deadline, --tag for filtering.
yaad add "backend infra: staging db port is 5433" yaad add "submit PR for review" --remind "tomorrow 9am" yaad add "prod login: ssh -i ~/.ssh/id_rsa user@prod" yaad add "https://api.docs.com" --tag reference
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
One command. All local. MIT licensed.