Skip to content

Local-first · On-device embeddings

Semantic Search for Git Commands. Ask in plain language — get a pasteable Git example. Fully local. Sub-second on low-end hardware.

Soft undo and hard undo look alike until you get them wrong. Ask what you mean — get the right example.

remembering flags

git-grasp

Loading playground…

Install

Bun package (npm registry) or standalone binaries from GitHub Releases. Runtime for the package path requires Bun ≥ 1.1.

bun add -g git-grasp
git-grasp "undo last commit but keep my files"

Use

Common commands from the CLI reference. Full docs in the repo under apps/cli/README.md.

FAQ

Straight answers for a local-first Git search tool — and for the people evaluating the work behind it.

What is git-grasp?

A local-first search tool for validated Git recipes: you ask in plain language and get a title, description, and command snippet — matched with on-device embeddings and full-text search. The catalog is built with a language model, but the tool never runs Git for you.

What is it not?

Not a Git GUI or command wrapper, not a hosted search service, and not search-time LLM reranking — retrieval is hybrid vec+BM25 only. The marketing site is a playground plus docs; the CLI package path requires Bun.

Why git-grasp?

I keep forgetting Git syntax, and “just Google it” usually means a context switch I find quite taxing. Ironically, after working on this project, the need to look commands up plummeted. You might say the whole thing is a learning experience.

Why don’t we use an LLM?

An LLM is great at approximating unstructured answers; when I’m searching for commands I want the most precise answer possible. The git-grasp catalog is still built entirely with a language model (some might even call it distillation), but results are validated against execution and tied to their descriptions via a local embedding model — making retrieval faster, energy-cheaper, and, hopefully, better.

What does “local-first” mean here?

You can install the CLI and run it fully offline on your machine — including in an enterprise context — since it’s MIT-licensed end to end. You can optionally turn telemetry on; on the web playground it is on by default after Start. When telemetry is on, I collect your queries and use them to improve the catalog further.

What if something is wrong?

Tracking queries enables cyclical improvement, so while you should still report specific issues, many will hopefully be resolved automatically in the next cycle. I don’t have a fixed timeline yet — cycles will depend on volume. You can also open an issue on the GitHub project. Open an issue (opens in a new tab) .

How can I contribute?

Honestly, the fastest way is to use the tool with telemetry on. I’d also love feedback on the project and approach — especially whether it can scale to broader topics.