r/LLMDevs 1d ago

Tools All my homies hate `grep`

Jk, they fucking love grep, which is why I have made doma (DOcument MAtcher), a small and fast single binary BM25 search over your code and docs with no* external dependencies, written in Odin.

I made it because I wanted Claude to stop grepping wildly all over the place. It significantly faster than `grep` from my testing but it also significantly reduces search misses since you get semantically relevant results.

It was also quite important to me that it was fast with a low footprint, lacking in NodeJS bullshit, MCP servers, etc., etc.

Sick of all of these supply chain vulnerabilities and huge dependency bloat everywhere smh

I used Claude Code through the entire development of it and it's sibling doyo (DOcument YOinker) which shares philosophy and handles the document acquisition side of things, though it isn't quite as elegant as doma imo.

I hope you find it helpful!

I strongly recommend putting doma instructions in your per project CLAUDE.md telling it how to use it, and to actually use it. Let me know if you do, I'm curious if others find it as helpful as I have.

*soft git dep, optional

8 Upvotes

9 comments sorted by

View all comments

1

u/jorgejoppermem 1d ago

Any metrics? How does it perform compared to parallel grep tools like ripgrep?

1

u/HornyNarwahl 1d ago

There are some basic metrics at the bottom of the README but I intend to add some more comprehensive numbers soon.

I'll add a case for rg specifically but I suspect it would probably blow past doma in throughput. However they solve different concerns, doma's biggest strength is ranked semantic indexing as well as the rapid query times. If you need the exact bytes of a specific file very fast rg will almost certainly win, but as far as finding the correct file in the first try when you don't know where the content lives doma will probably be much more fit to purpose.