Show HN: Hover – IDE style hover documentation on any webpage
1 month ago (github.com)
I thought it would be interesting to have ID style hover docs outside the IDE.
Hover is a Chrome extension that gives you IDE style hover tooltips on any webpage: documentation sites, ChatGPT, Claude, etc.
How it works: - When a code block comes into view, the extension detects tokens and sends the code to an LLM (via OpenRouter or custom endpoint) - The LLM generates documentation for tokens worth documenting, which gets cached - On hover, the cached documentation is displayed instantly
A few things I wanted to get right: - Website permissions are granular and use Chrome's permission system, so the extension only runs where you allow it - Custom endpoints let you skip OpenRouter entirely – if you're at a company with its own infra, you can point it at AWS Bedrock, Google AI Studio, or whatever you have
Built with TypeScript, Vite, and the Chrome extension APIs. Coming to the Chrome Web Store soon.
Would love feedback on the onboarding experience and general UX – there were a lot of design decisions I wasn't sure about.
Happy to answer questions about the implementation.
> the extension detects tokens and sends the code to an LLM
> The LLM generates documentation
so, not documentation? Why not write your own engine and detect the official docs? e.g. docs.rs would do this wonderfully
The LLM approach is simpler and more flexible since it works with every library and language out of the box.
Looking up official documentation would require shipping sophisticated parsers for each language, plus a way to map tokens to their corresponding docs. I'd also need to maintain those mappings as libraries evolve and documentation moves. Some ecosystems make this easier (Rust with docs.rs), but others would be much harder (AWS documentation, for example).
I also want explanations visible directly in hover hints rather than linking out to external docs. So even with official documentation, I'd need to extract and present the relevant content anyway.
Beyond that, the LLM approach adapts to context in ways static docs can't. It generates explanations for code within the documentation you're reading, and it works on code that doesn't compile, like snippets with stubs or incomplete examples.
It could be interesting in the future to look into doing some type of hybrid approach where an LLM goes out and searches up the documentation, that way it's a little bit more flexible. But that would also be a bit slower and more costly.
> Looking up official documentation would require shipping sophisticated parsers for each language,
You could just token match (use tree-sitter or something similar) and fetch the official docs. Keep it dead-simple so there's no way you can provide false positives (unlike what's happening rn where hallucinations will creep in).
> It generates explanation
Again, I don't want that. It's not a feature, it's a limitation that right now gives you fake information.
> The LLM approach is simpler
For whom? The whole reason I want to consult docs is to get the official documentation on a given topic. How could I trust anything it says, and what’s to say any earned trust is durable over time?
9 replies →
Oh…I guess this isn’t the documentation-surfacing droids I’m looking for.
I could see getting actual docs being useful. Spitting out the delusions of an LLM is pretty well covered already, at least in my stack.
Very little “engine” required - use an existing language sever, map tokens to URLs, done.
Since these are called "tooltips" you might want to use the term more prominently.
Nice idea, but unless it's using up-to-date docs it's likely to introduce a lot of confusion, especially if you're reading docs to find out what changed between versions. You really need to be sending the code and the version of the software that the person reading the page is looking at.
Good point, thank you
interesting idea for a 1.0. Using https://context7.com/ might be the right next move here.
Also look into https://cht.sh/
Remember: incorrect (misleading) documentation is worse than no documentation.
What this might be better for is use-cases that don't require extreme precision. Imagine it for learning language or reading sophisticated academic literature. For example, https://archive.org/details/pdfy-TJ7HxrAly-MtUP4B/page/n111/...
Stuff like that is hard and every tool to make the complicated more legible I'd embrace.
Thank you! I will look into these! Yeah, it could be useful for providing explanations of key terms in papers or something similar.
Those are great links.
cht.sh is a fairly unknown community i think ... it's really great. Try
curl cht.sh
it's a wiki system.
Firefox has built-in link previews with AI. Hold mouse1 on a link.
Great idea with a terrible implementation.
Can you elaborate more. It's still early and I would love feedback
LLMs get interfaces wrong all the time, they make up methods that don't exist, invent parameters, etc. This needs to be 100% accurate or it is not useful.
It uses LLM under the hood. This is the bad part.