Coding agents¶
This site publishes a machine-readable index and a per-page Markdown mirror designed for AI coding tools. Pointing your editor at the index is the only setup step; after that "how do I push audio?" / "add Sensory to my CMake build" / "enroll a UDT in Java" land on the right page without further configuration.
Editor setup¶
Register https://doc.sensory.com/tnl/7.8/llms.txt once. Common editors:
Settings → Indexing & Docs → Add Doc, paste the URL, give it a name (e.g. Sensory TrulyNatural SDK). Reference the doc set with @Docs Sensory TrulyNatural SDK in chat.
Add the URL to a project-level CLAUDE.md so the agent reads the index on every session:
Reference individual pages with #fetch (e.g. #fetch https://doc.sensory.com/tnl/7.8/api/inference.md). Copilot does not ingest a documentation index globally; the per-page .md URLs in this site's manifest.json are the unit of context.
These tools accept Markdown URLs in their --read / /add / context commands. Point them at individual .md pages from manifest.json rather than the full bundle: each page is sized for a single chat turn, while llms-full.txt is a single ~1.3 MiB file better suited to bulk offline indexing.
Any tool that follows an AI-oriented documentation index typically accepts either an llms.txt-style entry point or a sitemap of Markdown URLs. The two relevant URLs are:
- Index:
https://doc.sensory.com/tnl/7.8/llms.txt - Per-page mirror: each entry in
manifest.jsoncarries apath(relative to the index) and acanonical_url(rendered HTML URL). Both.mdand HTML serve identical content.
What's in the bundle¶
Three files share the same content rendered three ways:
llms.txt— orientation index (~27 KiB). Curated Common tasks and Start here routes plus a section by path prefix. This is the file most tools want.manifest.json— a JSON index of every page withpath,bytes,title,canonical_url, an optionalheadingsoutline on reference pages, and an optionallast_modified(ISO 8601 UTC) for incremental re-ingest. Useful for budgeting context size or programmatically picking pages.llms-full.txt— every Markdown page concatenated into one file (~1.3 MiB), with a<!-- FILE: … -->header per page. Reserve this for bulk offline indexing; for day-to-day chat, fetch individual.mdURLs instead so the model isn't carrying the whole SDK in its context window.
Day-to-day usage tips¶
- Prefer per-page
.mdURLs over the full bundle. Each rendered page also exists as a.mdnext to its HTML (e.g.api/inference.mdbeside the rendered API reference). Pasting one of these into a chat is usually enough context. - Use
#fragmentURLs for narrow questions. All H2/H3/H4 headings have stable anchors. For a question like "what doessnsrLoadreturn?", pastehttps://doc.sensory.com/tnl/7.8/api/inference.md#loadrather than the whole page. The## Symbolssection ofllms.txtlists every C/Java entry point with its anchor for direct deep-linking. - Use Common tasks for typical work. The first section of
llms.txtis curated to match natural-language prompts: "first program", "build integration", "push audio", "wake word then LVCSR or STT", "enroll a UDT in Java", and a dozen more. Most agent prompts will resolve through one of these routes. - Re-pin the URL on each SDK upgrade. This site publishes a per-version doc tree (
/tnl/7.8/); when you move to a new SDK release, point your editor at the new version'sllms.txt. The/tnl/latest/alias always redirects to the most recent published version if you'd rather track HEAD.
Programmatic ingestion¶
If you're writing a tool, not registering URLs in an editor:
import json, urllib.request
base = "https://doc.sensory.com/tnl/7.8/llms.txt".rsplit("/", 1)[0]
with urllib.request.urlopen(f"{base}/manifest.json") as r:
manifest = json.load(r)
# manifest["version"] == 2; manifest["entries"] is a list of dicts.
for page in manifest["entries"]:
if page["bytes"] < 8192: # small reference page
with urllib.request.urlopen(f"{base}/{page['path']}") as r:
text = r.read().decode("utf-8")
# ingest `text` keyed on page["canonical_url"]
The canonical_url field is the most stable join key across the two representations: the same string identifies a page in the loose on-host mirror, in manifest.json, in llms-full.txt's <!-- FILE: … --> headers, and as a hyperlink target inside other pages.
See also¶
- The
llms.txtproposal this site implements. - The Coding agents callout on the home page.
- The changelog entry describing the bundle.