HarborHarbor
DocumentationGuidesPlugins
For Agents

/llms.txt — Page Index

llmstxt.org-style enumeration of every page on this docs site.

/llms.txt is an enumeration of every page on this docs site, in the llmstxt.org plain-text format.

curl https://docs.tryharbor.ai/llms.txt

Format

# Harbor Documentation

> Shared workspace to make AI agents faster, deterministic, and token-efficient.

## Agent skills (canonical, machine-readable)

- [Harbor meta skill](https://docs.tryharbor.ai/.well-known/agent-skills/harbor/SKILL.md)
- [Plugins](https://docs.tryharbor.ai/.well-known/agent-skills/harbor/harbor-plugins.md)
- ...

## Documentation

- [Welcome to Harbor](https://docs.tryharbor.ai/documentation/overview) — Shared workspace to make AI agents faster, deterministic, and token-efficient.
- [Why Harbor](https://docs.tryharbor.ai/documentation/why-harbor) — Models change. The context layer should not.
- ...

What's in it

  • Agent skills section — links to the canonical /.well-known/agent-skills/harbor/*.md surface.
  • Documentation section — every MDX page on the site, with its title and one-line description.

The list is generated from the page tree at build time, so it stays in sync as we add or remove pages.

How to use it

// In an agent host: enumerate before crawling
const resp = await fetch("https://docs.tryharbor.ai/llms.txt");
const lines = (await resp.text()).split("\n");
const pages = lines
  .filter((l) => l.startsWith("- ["))
  .map((l) => {
    const m = l.match(/^- \[(.+?)\]\((.+?)\)(?: — (.+))?$/);
    return m ? { title: m[1], url: m[2], description: m[3] ?? "" } : null;
  })
  .filter(Boolean);

Then fetch the specific page bodies you care about by URL.

A /llms-full.txt (every page body, concatenated) is on the roadmap. For now, fetch what you need by URL.

Cache headers

content-type: text/plain; charset=utf-8
cache-control: public, max-age=300, s-maxage=86400, stale-while-revalidate=2592000

You can cache aggressively. The page tree changes when we ship new docs.