---
name: oliver-kriska/hexdocs-fetcher
source: https://app.decimal.ai/s/oliver-kriska-hexdocs-fetcher@1/SKILL.md
source_sha256: 8a14091e79c5
---

# HexDocs Fetcher

Efficiently fetch Elixir library documentation from hexdocs.pm using Claude Code's native `WebFetch` tool.

## Usage

When researching libraries, use `WebFetch`:

```
# Fetch library overview
WebFetch(
  url: "https://hexdocs.pm/oban",
  prompt: "Extract the main documentation, including module overview, installation instructions, and key functions. Format as clean markdown."
)

# Fetch specific module docs
WebFetch(
  url: "https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html",
  prompt: "Extract the module documentation including all public functions, their specs, and examples."
)

# Fetch getting started guide
WebFetch(
  url: "https://hexdocs.pm/ecto/getting-started.html",
  prompt: "Extract the complete getting started guide content."
)
```

## Token Efficiency

WebFetch automatically converts HTML to markdown and extracts relevant content:

| Source | Raw HTML | With WebFetch | Benefit |
|--------|----------|---------------|---------|
| HexDocs page | ~80k tokens | ~15k tokens | **80% reduction** |
| Phoenix docs | ~120k tokens | ~25k tokens | **79% reduction** |
| README | ~20k tokens | ~8k tokens | **60% reduction** |

## Integration with hex-library-researcher

When evaluating libraries, fetch docs efficiently:

```
# Get library overview with focused extraction
WebFetch(
  url: "https://hexdocs.pm/oban",
  prompt: "Extract: 1) Installation instructions 2) Main features 3) Basic usage example"
)
```

## Common HexDocs URLs

```
# Library overview
https://hexdocs.pm/{library}

# Module documentation
https://hexdocs.pm/{library}/{Module}.html
https://hexdocs.pm/{library}/{Module.Submodule}.html

# Guides
https://hexdocs.pm/{library}/guides.html
https://hexdocs.pm/{library}/{guide-name}.html

# API reference
https://hexdocs.pm/{library}/api-reference.html
```

## Prompt Strategies

Use focused prompts for better extraction:

```
# For API docs
prompt: "Extract all public function docs with @spec and examples"

# For guides
prompt: "Extract the complete guide content preserving code examples"

# For troubleshooting
prompt: "Extract any troubleshooting sections, common errors, and FAQs"

# For configuration
prompt: "Extract configuration options and their defaults"
```

## Caching

WebFetch includes automatic 15-minute caching. When fetching the same URL multiple times in a session, results are cached automatically.

For longer persistence, save to planning directory:

```
# After fetching, write the result to a file
Write(
  file_path: ".claude/plans/{slug}/research/docs/oban.md",
  content: "{extracted content}"
)
```

## Tidewave Alternative

If Tidewave MCP is available, prefer `mcp__tidewave__get_docs` for exact version-matched documentation:

```
mcp__tidewave__get_docs(module: "Oban.Worker")
```

This fetches docs for the exact version in your `mix.lock`.

## Iron Laws

1. **NEVER fetch entire HexDocs sites** — always target specific modules or guides
2. **Use focused prompts** — generic fetches waste tokens; specify what to extract
3. **Prefer Tidewave when available** — exact version match beats generic hexdocs.pm