Skip to main content

Automated, AI-powered CLI snippet manager — auto-captures shell commands, describes them, and finds them by meaning.

Project description

Recall

Automated, AI-powered CLI snippet manager. Stop re-googling that one ffmpeg incantation — Recall captures your long shell commands, describes them in plain English, and lets you find them again by meaning, not exact wording.

License: MIT Python


What it does

  1. Auto-captures long / complex terminal commands via a shell hook (after you run them — zero manual effort).
  2. Describes them automatically using a local LLM (Ollama, free & offline) or, optionally, the Claude API.
  3. Stores everything in a single portable SQLite file you can copy or sync.
  4. Finds commands semantically — search "clean up docker space" and get back docker rm $(docker ps -aq) even if you never used those words.

Everything runs locally and free by default. No account, no cloud, no telemetry. The single recall.db file is the whole product — copy it to a new machine and you are done.

Free by default

The AI description step is pluggable:

Provider Cost Needs Default
ollama Free, offline Ollama installed ✅ yes
heuristic Free, offline nothing fallback
claude Paid (API) ANTHROPIC_API_KEY opt-in

If no provider is reachable, Recall falls back to a heuristic description and keeps working — the tool never breaks because an LLM is unavailable.


Install

Requires uv and Python 3.11+.

One-step install (checks Python, installs uv if missing, installs the recall command globally, and wires the shell hook):

git clone https://github.com/Surge77/recall
cd recall
./scripts/install.sh

Manual / development install:

git clone https://github.com/Surge77/recall
cd recall
uv sync
uv run recall version

Optional extras (installed on demand):

uv sync --extra ai         # Ollama / Claude description providers
uv sync --extra semantic   # local semantic search (ChromaDB + embeddings)

Usage

recall install                 # install the shell hook (zsh / bash)
# ... run a long command normally; it is captured silently ...
recall search "docker cleanup" # semantic search, copies top hit to clipboard
recall list --tag docker       # browse saved snippets
recall add "<cmd>" --tags net  # manual add (auto-describes if no --desc)
recall delete 12               # remove a snippet
recall redescribe              # regenerate AI descriptions (all, or one id)
recall sync --path ~/Dropbox/recall.db   # symlink the DB for cross-machine sync

Platform note: the auto-capture hook supports zsh, bash and PowerShell (7+, via PSReadLine). On Windows you can run Recall natively in PowerShell, or use WSL / Git Bash. All other commands work on every platform.


Configuration

A config.toml is created on first run (location is per-OS via platformdirs, e.g. %LOCALAPPDATA%\recall\config.toml on Windows). Relevant capture knobs:

[capture]
min_command_length = 40                                  # skip anything shorter
trivial_commands = ["cd", "ls", "pwd", "exit", "clear", "history"]  # never captured

A command is auto-captured only if it is min_command_length characters, its first word is not in trivial_commands, it is not a comment or a recall … call, and it is not already stored. Add your own noise commands (git, npm, clear, …) to trivial_commands to skip them.


Uninstall

uv tool uninstall recall-snippets

Then remove the hook block (marked # recall auto-capture hook) from your ~/.zshrc or ~/.bashrc. Your snippets live in a single data file; delete it only if you want to discard them:

# Linux:   ~/.local/share/recall/recall.db
# macOS:   ~/Library/Application Support/recall/recall.db
# Windows: %LOCALAPPDATA%\recall\recall.db

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recall_snippets-0.2.0.tar.gz (266.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

recall_snippets-0.2.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file recall_snippets-0.2.0.tar.gz.

File metadata

  • Download URL: recall_snippets-0.2.0.tar.gz
  • Upload date:
  • Size: 266.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for recall_snippets-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c301d67ea1721ee0504664ad5b52087b7a1bc2497394d6c2a30eb10998a33cae
MD5 fb9be969a17e44d5e0068ba5b41fdf6b
BLAKE2b-256 9357095f98e7974f886800a398c75edebca8935cc3d6c4dd5ab6340c1dd59544

See more details on using hashes here.

Provenance

The following attestation bundles were made for recall_snippets-0.2.0.tar.gz:

Publisher: publish.yml on Surge77/recall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file recall_snippets-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for recall_snippets-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 223ffbeafff786fda7700bff63244ff423357054e13a1d8cd65d8d6bf573a8da
MD5 b6083a0a5f869b9c04f239d18d5aba1d
BLAKE2b-256 a16505ef1dbfbf333ae84219c72fa6357e6c202839481f44435877470aca9d89

See more details on using hashes here.

Provenance

The following attestation bundles were made for recall_snippets-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Surge77/recall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page