113

Show HN: ChunkHound, a local-first tool for understanding large codebases

ChunkHound’s goal is simple: local-first codebase intelligence that helps you pull deep, core-dev-level insights on demand, generate always-up-to-date docs, and scale from small repos to enterprise monorepos — while staying free + open source and provider-agnostic (VoyageAI / OpenAI / Qwen3, Anthropic / OpenAI / Gemini / Grok, and more).

I’d love your feedback — and if you have, thank you for being part of the journey!

A few years ago I set out to refactor some of my team's code that I wasn't particularly familiar with, but we wanted to modularize and re-use in more places. The primary file alone was 18k+ lines of Typescript that was a terrible mess of spaghetti. Most of it had been written in JavaScript but later converted haphazardly. I ended up writing myself a little app that used the Typescript compiler APIs to help me just explore all the many branches of the code and annotate how I would refactor different parts. It helped a bit, but I never got time to add some of the more intelligent features I wanted like finding every execution path between two points.

3 days agogoda90

give depgraph a try - https://github.com/henryhale/depgraph - i'd like to learn about how i could improve it.

3 days agohenryhale

I gave it a try on my current codebase out of curiosity. Definitely useful. It worked well and fast, but it has a lot of duplicates that get rendered as exports in the NodeJS modules based codebase. I think it can sometimes be caused by me just being haphazard about re-exporting them, but other times I'm not sure.

Eg authenticatedMenu() appears 4 times in authenticatedMenu.js, only one of them is imported by 2 different files and 3 are just there alone. There's a single export in the file and a number of other files import it through an index.js that re-exports several files other files too.

In my case I think it'd help, if I could disable the duplicates as they don't really provide any useful information when exploring the codebase.

Also, if there was optionally a way to ignore the files that re-export functions/classes and collapse those paths, it'd make the graph a lot smaller and more easy to understand. Maybe it's already something that depgraph does, but the duplicates confuse things, so I'm not sure.

3 days agoflowerbreeze

> I think it can sometimes be caused by me just being haphazard about re-exporting them, but other times I'm not sure.

I think so too. I guess that's how your project is structured and duplicates maybe inevitable.

The graph shows exactly how the project is organized. Right - "duplicates confuse things" - this would suggest eliminating "files that re-export functions/classes" or passing an option (-i) for ignoring specific paths would help. Otherwise, this issue is noted for further analysis.

Thanks for trying depgraph.

3 days agohenryhale

you say "local-first" but have placed voyage API for embeddings as the default (had to go to the website and dig to find that you can infact use local embedding models). Please fix

3 days agodcreater

Thank you, yes the docs are overdue for a refresh. It's in the works

3 days agoofriw

Presumably it could update its own docs

2 days agowiml

Exactly. There's an autodoc feature coming up in the next version

2 days agoofriw

It would be convenient if it could load local SLMs itself, otherwise I'll have to manually start the LLM server before I can use it, and it's not something I leave running all the time.

3 days agoesafak

I have been working on depgraph (https://github.com/henryhale/depgraph) for a while now. It is truly local with several output options(json, mermaid, jsoncanvas). Mutliple languages are supported (js, go, c) - expanding the list slowly but sure.

3 days agohenryhale

I don't understand how/why all of this is local-first if all these providers are supported and used - could you elaborate what is sent to them?

3 days agoromperstomper

The DB is stored locally, and any embedding, reranker and LLM will work. It's up to you if you self host these or bring them externally from one SaaS or the other

3 days agoofriw

Might give this a try to experiment if it's really free to use (I'll have to read up on that I guess). The qemu codebase is huge and every contributer seems to solve problems in slightly different ways. Would be nice if this tool could help distill it.

3 days agoNeywiny

Completely free, MIT licensed. You can fully self host it if you have the hardware to run Qwen3-embedding and reranker models

3 days agoofriw

I followed the docs for ollama configuration, but it says unknown LLM provider when I try running the research command.

a day agopotamic

Is there a way to have the model inside of codex to make use of chunkhound instead of its “built in” search/explore functionality with rg? Whenever I spin up a new agent using xhigh thinking it spins its wheels for a while to get up to speed — wondering if chunkhound can make this process faster.

3 days agodogman123

That's what the MCP is for, if you can get the LLM to use it. Sometimes they just like to do it their own way :)

3 days agoesafak

I have chunckhound is a few projects and it’s noted in both the agent md file as well as mcp and claude never uses it. Ever. Never once.

Is there a prompt special sauce y’all use to get it to use it?

3 days agoconception

Perhaps I am missing something, but this seems to require a Lemon (LLM)? Is the idea that the Lemon is used to help build an index AOT that can be queried locally, after?

I want to figure out how to build advanced tools, potentially by leveraging Lemons to iterate quickly, that allow us all to rely _less_ on Lemons, but still get 10,20,30x efficiency gains when building software, without needing to battle the ethics of it all.

3 days agoapgwoz

ChunkHound does it a bit differently, since at true enterprise scale it's very slow and costly to pass all code chunks through an LLM during indexing time. Instead, ChunkHound implements a customized "deep research" algorithm that's been optimized for code exploration so it can answer, on demand, any deep technical question about the indexed codebase. This research agent can be powered by a lower tier LLM (think Haiku, Codex low, etc) that's already included in your subscription.

3 days agoofriw

Will try this out. Was always envious of how Augment was able to do this. Kudos.

3 days agodmos62

Can you please expose the functionality as a self-documenting CLI command with machine readable output? (Or did I misunderstand that MCP isn't the only way to use it?)

I am curious to try it but do not want to adopt MCP servers.

Telling Claude to call the CLI tool is more efficient.

3 days agobravura

Agree. And to make the CLI usage more effective/efficient, if you can publish a skill that would be excellent

3 days agodcreater

That's why we're asking for the CLI; so we can write the skills.

3 days agoesafak

`chunkhound search <query>`, `chunkhound search --regex <query>` and `chunkhound research <query>` are the main cli entry points that you can already use today

3 days agoofriw

Am I confused or is this not an open-source project on GitHub?

You have every ability to make these modifications yourself; is there a reason you feel the need to require the creator to do so?

3 days agoblackqueeriroh

I think the term is "Instrumentalism".

3 days agofrom_memory
[deleted]
3 days ago
[deleted]
3 days ago

Looks like the tutorial link is broken.

3 days agoCamperBob2

Fixed, thank you