HNHacker News
TopNewBestAskShowJobs

Runonthespot

97 karma · joined July 6, 2021

submissionscomments
Runonthespot··on Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep
Done some work fixing some of these issues. Please do raise issues when you find them and I'll get them fixed! (author)
Runonthespot··on Show HN: Semantic grep with local embeddings
Sadly, not great support for Elixir from tree-sitter but it should handle them generically as text files
Runonthespot··on Show HN: Semantic grep with local embeddings
Ruby support has been added!
Runonthespot··on Show HN: Semantic grep with local embeddings
Nice catch- should be fixed in latest
Runonthespot··on Show HN: Semantic grep with local embeddings
Added Ruby, but Elixir not very well supported by tree sitter
Runonthespot··on Show HN: Semantic grep with local embeddings
coming up next.
Runonthespot··on Show HN: Semantic grep with local embeddings
interesting - can I ask you to try a ck --index . ?
Runonthespot··on Show HN: Semantic grep with local embeddings
BAAI/bge-small-en-v1.5 but considering switching this to google's latest gemmaembedding - it's fairly switchable.
Runonthespot··on Show HN: Semantic grep with local embeddings
we all know rust CLI tools are better right?
Runonthespot··on Show HN: Semantic grep with local embeddings
I'll add rust, ruby, elixir, Clojure next. It says rust as it's written in rust, sorry about that!
Runonthespot··on Show HN: Semantic grep with local embeddings
Mainly I wrote it because I noticed Claude's "by design" use of grep meant it couldn't search the code base for things it didn't already know the name of, or find "the auth section". But equally, it's well documented that e.g. Cursor's old RAG technique wasn't that great.

My idea was to make a tool that just does a quick and simple embedding on each file, and uses that to provide a semantic alternative that is much closer to grep in nature, but allows an AI tool like Claude Code to run it from the command line - with some parameters.

Arguably could be MCP, but in my experience setting up a server for a basic tool like this is a whole lot of hassle.

I'm fairly confident that this is a useful tool for CC as it started using it while I was coding it, and even when buggy, was more than willing to work around the issues for the benefit of having semantic search!

Runonthespot··on Show HN: Semantic grep with local embeddings
Fair comment- the initial thinking was to have both and in fact a hybrid mode too which fuses results so you can get chunks that match both semantically and on keyword search in one resultset. Later could add a reranker too.
Runonthespot··on Show HN: Semantic grep with local embeddings
Yes- files are hashed and checked whenever you search so index should always remain up to date. Only changed files are reindexed. You can also inspect the metadata (chunking semantics, embeddings). It’s all in the .ck sidecar
Runonthespot··on Show HN: Semantic grep with local embeddings
It supports most languages but needs a bit of tree-sitter setup to do semantic chunking. Let me know what languages you’d like added
Runonthespot··on Show HN: Semantic grep with local embeddings
To start with just tell it- but yes Claude.md works too.

“We have a new grep semantic hybrid tool installed called ck - check it out using ck --help and take it for a spin”

Runonthespot··on Show HN: Semantic grep with local embeddings
Note that it’s grep AND semantic - so Claude can start with a grep strategy and if it finds nothing can switch to semantic, and since it’s local and fast, it keeps in sync easily enough
Runonthespot··on Show HN: Semantic grep with local embeddings
bear in mind that Claude Code by default uses grep - if you watch you'll see if it's looking for something it doesn't know the name of, it flails around with different patterns. Try this tool, tell CC to take a look using ck --help and take it for a spin.

CC in my case likes it so much, it started using it to debug the repo rather than grep and suggesting its own additions

Runonthespot··on Show HN: Semantic grep with local embeddings
Agreed - Logan is a legend, this is similar but simpler - no dependency on external models (might add it)
Runonthespot··on Show HN: Semantic grep with local embeddings
help make it mature :D Add any issues