A popular open-source python library
Your docs, tested on every release. Catch breakage before customers do.
DocsAlive runs the code samples in your documentation in an isolated sandbox, separates likely docs bugs from noise, and can draft a fix for your team to review.
Free for public open-source docs · Built for API and developer-tool companies
Why docs examples break
Docs drift silently
Every release can rename a parameter, drop an export or change an output. Nobody re-runs the hundreds of snippets in your docs to check. How documentation drift happens
Customers find it first
A broken quickstart can cost a new user their first hour and turns into a support ticket or a quiet churn.
Naive checkers cry wolf
Most snippets aren't meant to run alone. Without triage, a docs test suite is a wall of red nobody reads. How to test docs code samples
Check, finding, fix and CLI, from one real run.
4 likely docs bugs in Project A
204 code blocks across 24 pages, run against the current release.
TypeError: <function>() got an unexpected keyword argument '<param>'Everything else that failed was triaged as not a docs bug (missing context, needs credentials, network) and left out of the check.
A documented keyword argument the current API rejects
advanced-1.md:156 · api-drift · likely docs bug
As documented
result = <lib>.<function>(<args>,
<param>=<value>)Sandbox output
$ python snippet.py # current release, python 3.12 Traceback (most recent call last): File "<docs-snippet>", line 13, in <module> TypeError: <function>() got an unexpected keyword argument '<param>'
Why this is classified as a docs bug
The call fails on a keyword the current API rejects (api-drift), not on missing context, credentials or network. A reader who copies this example gets an error. Pattern: TypeError: … unexpected keyword argument → api-drift, docs bug.
Verification (re-run in the sandbox)
TypeError: <function>() got an unexpected keyword argument '<param>'Fix PRs open as drafts. Nothing merges without a maintainer's approval. For this demo our team wrote the fix and the engine verified it.
Real output from DocsAlive v0.2.1 on a popular open-source Python library, run October 19, 2026. Project, package, API and file names are redacted until we have reported the findings to the maintainers. Apart from that redaction, the Check, Finding and CLI views are unedited engine output. The Fix PR view shows a fix our team wrote and the engine verified. It has not been submitted upstream.
We pointed DocsAlive at three well-known docs sites.
Three popular open-source projects with unmodified public repositories, run against their current releases on October 19, 2026. 1,742 code blocks across 309 pages, each one executed, syntax-checked or deliberately skipped with a reason.
An open-source ai sdk with a large docs site
A widely used open-source javascript developer tool
"Fail" includes snippets that depend on earlier context, credentials or network. Triage keeps those out of the docs-bug count. Full methodology and findings →
From repository to reviewed fix.
One pipeline, triggered on every release, pull request or schedule.
Detect
Finds your docs framework (MkDocs, Mintlify, Docusaurus, plain Markdown) and every page.
Extract & plan
Pulls each code block with its language, page context and expected output, then plans how to test it.
Run in a sandbox
Executes Python, JS/TS, shell and HTTP examples in a locked-down, throwaway container.
Triage
Sorts every failure into a category and flags only real docs bugs.
Fix & verify
Drafts the change, re-runs it, and opens a draft PR for a human to approve.
Real docs bugs in widely used open-source projects.
Each one below was flagged by the engine, then re-checked individually by our team: re-run in the sandbox and read against the source. The other flags, and which of them we haven't reviewed yet, are on the results page. Project names are withheld until we have reported the findings to the maintainers.
A documented keyword argument the current API rejects
The example passes a keyword argument that this function no longer accepts in the current release, so it raises TypeError. A corrected version passed when we re-ran it in the sandbox.
TypeError: <function>() got an unexpected keyword argument '<param>' advanced-1.md:156
The same drift in a second example
Another example on the same page passes the same keyword argument and fails the same way on the current release.
TypeError: <function>() got an unexpected keyword argument '<param>' advanced-1.md:174
Missing comma in a dict literal
An example is missing a comma between two dictionary entries, so readers who copy it get a SyntaxError.
SyntaxError: invalid syntax. Perhaps you forgot a comma? advanced-2.md:180
Documented output from an older language version
The example ran fine, but the output printed on the page is in a format that current interpreters no longer print.
guide-1.md:118
Import removed upstream: an MCP client class
A cookbook imports an MCP client class from a third-party agent framework. The framework's current release no longer exports it, so the script fails at the import.
ImportError: cannot import name '<RemovedClass>' from '<agent-lib>.mcp'. Did you mean: '<OtherClass>'? cookbook-1.mdx:73
Import removed upstream: an agent class
An agent example imports an agent class from another third-party framework. Its current release no longer exports that class, so the example fails before it starts.
ImportError: cannot import name '<RemovedClass>' from '<agent-lib>.agent' cookbook-2.mdx:78
A docs test that's always red gets ignored. So we check the engine's work.
Across these three runs the engine flagged 11 likely docs bugs. We've reviewed 8 of them one by one: 6 are real docs bugs and 2 are false alarms. The other 3 haven't been reviewed yet, so we don't count them either way. It's a small sample, not a guarantee for your docs.
| Engine flags (v0.2.1) | Confirmed | False alarm | Not yet reviewed |
|---|---|---|---|
| Project A: 4 | 4 | 0 | 0 |
| Project B: 7 | 2 | 2 | 3 |
| Project C: 0 | 0 | 0 | 0 |
| Total: 11 | 6 | 2 | 3 |
Every flag and its review status is listed on the results page. No AI model was involved in the engine's classifications.
Built to help docs teams trust their examples.
Executes, not just lints
Python, JavaScript, TypeScript, shell, curl and raw HTTP blocks run for real against the version you ship.
Triage that filters noise
Fragments, placeholders, credentials and flaky networks are recognized and kept out of the docs-bug count.
Fixes as draft PRs
Likely docs bugs can get a proposed change, re-run in the sandbox, waiting for your review.
OpenAPI checks
Validates $ref integrity across your spec. 68 operations and 87 examples checked in one pass on Project B.
Lives in your CI
Runs on pull requests, releases or nightly. Results appear as a check with line-level annotations.
Docs health badge
Show readers your examples are tested, with a badge that shows the result of the latest run.
Your code runs in a box we throw away.
Every run happens in a fresh, unprivileged container. Source checkouts are deleted when the run ends, and proposed changes reach your branches only when a person on your team merges them.
- Isolated execution: read-only root filesystem, all Linux capabilities dropped, no privilege escalation, CPU, memory and process limits.
- No code retention: repository checkouts are deleted after each run. Reports keep only file paths, line numbers and short error excerpts.
- Least privilege: the GitHub App asks only for the permissions it needs to read docs, post checks and open draft PRs.
- Human in the loop: fixes open as draft pull requests. DocsAlive is designed not to merge anything. You review and merge.
Free for open source. Simple for teams.
Pick a plan by how many docs pages you have and how often you ship.
Open source
Public open-source projects only.
- OSI-licensed public repo (1)
- Up to 100 docs pages
- Weekly runs
- Check annotations & report
- Docs health badge
- Community support
Team
One product's docs, kept honest every night.
- Private or public repo (1)
- Up to 150 docs pages
- Nightly runs + on pull requests
- Draft fix PRs, re-run in the sandbox
- Line-level PR check annotations
- Email support
Growth Recommended
Several products or SDKs that ship often.
- Up to 5 repos, 500 docs pages
- Runs on every release, PR and nightly
- OpenAPI reference checks
- Everything in Team
- Priority support
Scale
Large doc sets, custom runtimes, procurement.
- Custom page and repo limits
- Custom runner images & schedules
- DPA, security review, invoicing
- Everything in Growth
- Dedicated support channel
Prices in USD, billed monthly, and subject to change (see the Terms). Team and Growth are paid online through Stripe. After you subscribe, we contact you to set up DocsAlive on your docs with your team (onboarding review). Features may change, and no uptime or support-response SLA applies unless agreed in writing.
Find out which of your examples still work.
Send us a public repository. Our team runs DocsAlive on its docs and emails you the real report within 2 business days. Free, no signup.