name: hex-docs-search description: Research Hex packages (Sobelow, Phoenix, Ecto, Credo, Ash, etc). Use when investigating packages, understanding integration patterns, or finding module/function docs and usage examples. Automatically fetches missing documentation and source code locally. allowed-tools: Read, Grep, Glob, Bash, WebSearch, AskUserQuestion model: haiku context: fork agent: Explore user-invocable: true
Hex Documentation Search
Search Elixir package documentation. Prioritize local sources, fetch if needed.
Search Locations (in order)
- Project deps:
deps/<package>/lib/(source with @moduledoc/@doc),deps/<package>/doc/(HTML if generated) - Fetched docs cache:
.hex-docs/docs/hexpm/<package>/<version>/ - Fetched source cache:
.hex-packages/<package>-<version>/ - HexDocs API: Programmatic search (see below)
- Web search: Last resort with
site:hexdocs.pm
Fetching Locally
Determine version from mix.lock, mix.exs, or prompt user if ambiguous.
# Fetch documentation (stores in .hex-docs/)
HEX_HOME=.hex-docs mix hex.docs fetch <package> <version>
# Fetch source code (if docs insufficient or unavailable)
mix hex.package fetch <package> <version> --unpack --output .hex-packages/<package>-<version>
Mention adding .hex-docs/ and .hex-packages/ to .gitignore once per session when fetching occurs.
HexDocs Search API
Powered by Typesense at search.hexdocs.pm.
# Search within a specific package
curl -s "https://search.hexdocs.pm/?q=<query>&filter_by=package:=[<package>-<version>]" \
| jq '.hits[].document | {title, doc, url}'
# Search across all packages
curl -s "https://search.hexdocs.pm/?q=<query>" \
| jq '.hits[].document | {package, title, doc}'
Response fields:
package: Package nametitle: Module/function namedoc: Documentation texturl: Path to append tohttps://hexdocs.pm
Version Resolution
# From mix.lock
grep '"<package>"' mix.lock | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
# Latest from hex.pm
curl -s "https://hex.pm/api/packages/<package>" | jq -r '.releases[0].version'
Key Behaviors
- Prefer local/cached results (version matches project)
- Show real usage examples from project codebase when relevant
- Include file:line references for source code
- Prompt user before fetching external packages
- Source code @moduledoc/@doc often has more detail than HTML docs
Related skills
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
Claude CodeCursoradvanced
890
234
2,619
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
claudeCursorWindsurfbeginner
259
72
589
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.
claudeCursorWindsurfintermediate
156
44
451