100% local

Your terminal,
finally has memory.

Save commands, notes, URLs, facts, and reminders right in the terminal. Recall anything later with natural language. Fully local with Ollama.

Get started → View on GitHub
memory — zsh
── save once ────────────────────────
yaad add "claude session for db migration: 3fa2c891-7b4e....."
saved  [fact]
yaad add "prod needs VPN + bastion-01.internal"
saved  [note]
── recall anytime ───────────────────
yaad ask "claude session for db migration?"
3fa2c891-7b4e-4d1a-9f3c-2e8b5a6d0c19
where you work — zsh
── you set a reminder earlier ────────
yaad add "do some situps" --remind "in 10 minutes"
saved  [reminder]  due in 10 minutes
── 10 minutes later, mid-work ────────
git push origin main
Everything up-to-date
  ┌──────────────────────┐
  │ yaad · reminder       │
  │                      │
  │ do some situps       │
  │ due: in a moment     │
  └──────────────────────┘
yaad add "deploy prod at 3pm" --remind "in 2h" · yaad ask "what's the staging db port?" · yaad add "https://docs.example.com/api" --tag reference · yaad list --remind · yaad ask "any pending reminders for today?" · yaad add "submit PR for review" --remind "tomorrow 9am" · yaad get 01JTXK4A3B · yaad add "deploy prod at 3pm" --remind "in 2h" · yaad ask "what's the staging db port?" · yaad add "https://docs.example.com/api" --tag reference · yaad list --remind · yaad ask "any pending reminders for today?" · yaad add "submit PR for review" --remind "tomorrow 9am" · yaad get 01JTXK4A3B ·
features

Everything you need,
nothing you don't.

Query-first memory that stays local and fits how developers actually work.

recall

Query-first memory

Ask in plain English. Local embeddings + LLM reasoning find what you saved, even weeks later.

privacy

Fully local & private

All AI runs via Ollama on your machine. No cloud, no accounts, no data leaving your laptop.

reminders

Smart reminders

Parse "in 30 minutes", "tomorrow 9am", or "Friday 3pm" into real deadlines.

context

Rich metadata

Every memory captures context, cwd, hostname, and timestamp. AI auto-detects type and tags.

resilience

Offline-safe

Memories save even when Ollama is down. AI enrichment degrades gracefully, never blocking saves.

architecture

Ports & Adapters

Swap storage, AI provider, or notifier by implementing a single interface.

installation

Up and running in minutes.

Requires Ollama running locally.

1

Install Ollama and pull models

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
2

Install yaad

go install github.com/kunalsin9h/yaad/cmd/yaad@latest
3

Initialise config

yaad config init
4

Save your first memory

yaad add "staging db is postgres on port 5433"

Also set up reminders — it's yaad's most powerful feature and takes 30 seconds.

usage

A command for every moment.

Five memory types, auto-detected by AI: command · note · url · fact · reminder

yaad add

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"
yaad ask

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?"
yaad list

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
yaad get <id>

Show full details — content, type, tags, working dir, hostname, created time. Accepts 10-char ULID prefix.

yaad get 01JTXK4A3B
yaad delete / clean

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
yaad config

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
reminders

Never miss a deadline.

Two ways to surface reminders — pick what fits your workflow.

recommended

Inline — PROMPT_COMMAND

Reminders surface in your terminal on every prompt. No background process needed.

# ~/.bashrc
export PROMPT_COMMAND="yaad check; $PROMPT_COMMAND"

# ~/.zshrc
precmd() { yaad check }
systemd

Background daemon

Install as a systemd user service. Desktop notifications via notify-send.

yaad daemon install
systemctl --user enable --now yaad

# check status
systemctl --user status yaad

Learn more in the reminders documentation →

open source

Start remembering
everything.

One command. All local. MIT licensed.

$ go install github.com/kunalsin9h/yaad/cmd/yaad@latest