Fetch web content and store it as markdown. Built to feed local search and RAG pipelines.
Each URL is fetched, stripped of noise, and written to a .hoard/ directory as a markdown file with YAML frontmatter. Re-running only refetches content that has changed.
npm install -g @nickgarlis/hoardhoard add https://pkg.go.dev/github.com/spf13/viper
hoard add https://pkg.go.dev/github.com/spf13/viper --tags config,golangCreates hoard.json if it doesn't exist, fetches the URL immediately.
hoard fetchSkips unchanged content (via ETags and content hashing). URLs removed from hoard.json have their files deleted.
hoard listhoard remove https://pkg.go.dev/github.com/spf13/viperAll commands accept:
| Flag | Default | Description |
|---|---|---|
-c, --config <path> |
hoard.json |
Config file |
-o, --output-dir <path> |
.hoard |
Content store directory |
hoard fetch also accepts -f, --force to refetch everything regardless of cache.
{
"sources": [
{
"url": "https://pkg.go.dev/github.com/spf13/viper",
"tags": ["config", "golang"]
}
]
}qmd is a local hybrid search engine for markdown files. hoard and qmd compose naturally — hoard writes .hoard/, qmd indexes it.
1. Fetch your sources:
hoard fetch2. Register the store as a qmd collection (once):
qmd collection add .hoard --name hoard3. Index and embed:
qmd update && qmd embed4. Search:
qmd query "how do I configure viper"After the initial setup, refresh with hoard fetch && qmd update && qmd embed whenever your sources change.