# Guidepost > Accessible product tours built on native browser primitives: the Popover API, CSS anchor positioning, `inert`, and an animated `clip-path` spotlight. 9.7 kB minified and gzipped with the stylesheet included, zero runtime dependencies, MIT licensed. - npm package: `@cmunns/guidepost` - Live demo (registers WebMCP tools an agent can call): https://guidepost.live - Source and issues: https://github.com/cmunns/guidepost - Every docs page in one file: https://docs.guidepost.live/llms-full.txt ## Docs - [Introduction](https://docs.guidepost.live/): Accessible product tours built on browser primitives. No positioning library, no portals, no z-index fights. - [Install](https://docs.guidepost.live/install/): Grab it from npm. ESM and CJS, TypeScript types included, and the CSS shows up on its own. - [Quick start](https://docs.guidepost.live/quick-start/): An array of steps, a call to start(), and you're done. - [Placement](https://docs.guidepost.live/guides/placement/): Four sides with optional alignment, plus center for a card with no target, and what happens when the card doesn't fit. - [Blocking modes](https://docs.guidepost.live/guides/blocking-modes/): Three combinations of blocking and interactive, and why this choice matters more than any styling decision. - [Async steps](https://docs.guidepost.live/guides/async-steps/): Waiting for a target, advancing on the real user action, and doing setup before a step runs. - [Buttons and labels](https://docs.guidepost.live/guides/buttons-and-labels/): Swap out the default button row per step, and override every string the card renders. - [Styling](https://docs.guidepost.live/guides/styling/): Everything's a custom property. Light and dark both work out of the box, so override whichever you want. - [Accessibility](https://docs.guidepost.live/guides/accessibility/): What the library guarantees around focus, inert, announcements and reduced motion, plus the parts that are still on you. - [Recipes](https://docs.guidepost.live/guides/recipes/): Show a tour once per user, deep-link a step, clean up on unmount, and skip steps conditionally. - [Agents and WebMCP](https://docs.guidepost.live/guides/agents/): Let an AI agent drive a tour through the browser's own tool API instead of clicking around the DOM, and what this site does to be readable by LLMs. - [Troubleshooting](https://docs.guidepost.live/guides/troubleshooting/): Things that go wrong when a tour misbehaves, and what's actually causing each one. - [Steps](https://docs.guidepost.live/reference/steps/): Every field on a TourStep. Only target and some content really matter on their own, everything else has a sane default. - [Options](https://docs.guidepost.live/reference/options/): Every option new Tour(options) takes, what it defaults to, and the lifecycle callbacks. - [Methods](https://docs.guidepost.live/reference/methods/): The Tour instance methods, the getters, and the two static helpers behind remember. - [Browser support](https://docs.guidepost.live/reference/browser-support/): What's required with no fallback, and the one piece (CSS anchor positioning) that has one.