100% local

Memory,
on the terminal.

Save commands, notes, URLs, facts, and reminders right from 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 "api reference: https://docs.example.com/api" · 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 "api reference: https://docs.example.com/api" · 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.

reminders

Never miss a deadline.

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.

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 →

two modes

Memory on Terminal.
Terminal Memory, coming soon.

yaad will support both. Here's what sets them apart.

● now
Memory on Terminal

You decide what's worth saving. Write context right into the content — the AI embeds everything and surfaces it precisely when you ask.

intentional — zsh
yaad add "prod login: ssh -i ~/.ssh/id_rsa user@prod"
saved  [command]
yaad add "db migration session: claude --resume 3fa2c891"
saved  [fact]
yaad ask "how do I log into prod?"
ssh -i ~/.ssh/id_rsa user@prod
  • You control the signal
  • Context in content = precise recall
  • Available today
◌ coming soon
Terminal Memory

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.

transparent — zsh
ssh -i ~/.ssh/id_rsa user@prod
yaad noticed · saved [command]
git push origin main
Everything up-to-date
yaad ask "how do I log into prod?"
ssh -i ~/.ssh/id_rsa user@prod
  • Zero friction, no new commands
  • Learns from what you actually do
  • On the roadmap

Both modes will coexist — intentional saves stay precise, ambient capture fills the gaps.

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

curl -fsSL https://yaad.knl.co.in/install.sh | bash
or download from release
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. 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
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
open source

Start remembering
everything.

One command. All local. MIT licensed.

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