Skip to content

Docs your users’ AI agents can actually read.

Shiru is the open-source alternative to Mintlify. Every page ships twice: a fast site for people, and clean Markdown with an llms.txt index for their coding agents.

Pre-launch. One email when Shiru ships, nothing else.

View on GitHub
webhooks.ts – acme-app
  1. Verify Acme webhook signatures in this handler.
  2. Read acme.shiru.sh/llms.txt12 pages
  3. Read acme.shiru.sh/webhooks.mdMarkdown, 2.1 KB
  4. Acme signs every webhook with HMAC-SHA256 in the Acme-Signature header. The webhooks guide says to verify it with acme.webhooks.verify()before parsing the body:

    const event = acme.webhooks.verify(  req.rawBody,  req.header("Acme-Signature"),  process.env.ACME_WEBHOOK_SECRET,);
    Source: acme.shiru.sh/webhooks.md
    Applied to webhooks.ts
Illustrative example. Acme is a made-up company.

Every page, in the format each reader wants.

People get a fast, server-rendered docs site. Agents get the same page as plain Markdown, at the same URL plus .md. No scraping, no guessing where the content starts.

acme.shiru.sh/quickstart
Quickstart

Install the Acme SDK and send your first request.

$ npm install @acme/sdk

Keep your API key on the server. Never ship it to the browser.

acme.shiru.sh/quickstart.md
---title: Quickstartdescription: Install the SDK.--- # Quickstart Install the Acme SDK and send yourfirst request. ```shnpm install @acme/sdk``` > Keep your API key on the server.> Never ship it to the browser.
acme.shiru.sh/llms.txt
# Acme > Payments API for developers. - [Quickstart](/quickstart.md)- [Webhooks](/webhooks.md)- [Errors](/errors.md)
  1. Markdown at every URL

    Add .md to any page and get clean Markdown back.

  2. An llms.txt index

    One file lists every page, so an agent finds what it needs in a single request.

  3. Discoverable by default

    Every page links to its Markdown version in its HTML head.

Write in your repo. Publish on push.

  1. 01

    Write MDX

    Markdown you already know, plus React components when a page needs them.

    docs
    introduction.mdx
    quickstart.mdx
    webhooks.mdx
    package.json
  2. 02

    Push

    Every published version is a Git commit. Your docs history is your repo history.

    $ git push
    To github.com:acme/docs.git
    7d02b4e..a1f3c9e main -> main
    Published a1f3c9e
  3. 03

    Read anywhere

    Your docs go live at your-team.shiru.sh for people, and as Markdown for agents.

    Peopleyour-team.shiru.sh/quickstart
    Agents…/quickstart.md

Everything a docs site needs. Nothing you’ll fight.

  • MDX with your components

    Import your own React components into any page.

    import { Callout } from "../components"; # Webhooks <Callout type="warning">  Verify signatures before parsing the body.</Callout>
    Webhooks

    Verify signatures before parsing the body.

  • Your content stays in Git

    Docs are files in your repository. Leaving is a git clone.

    1. a1f3c9eDocument webhook signaturesLive
    2. 7d02b4eAdd the Python quickstart1d ago
    3. 3c9e1f0Fix a typo in errors.mdx3d ago
    4. e84b2d1Split the API reference1w ago
    5. 0b7f6a3Import docs from the old site2w ago
  • Server-rendered, with a Markdown twin

    Readers get HTML, not a JavaScript app. Each page takes its title and description from frontmatter and links to its Markdown version.

    <head>  <meta charset="utf-8">  <title>Webhooks - Acme Docs</title>  <meta name="description"    content="Verify and handle Acme events.">  <link rel="alternate"    type="text/markdown"    href="/webhooks.md"></head>
  • GitHub-flavored Markdown

    Tables, task lists, strikethrough and autolinks.

    EventSent when
    invoice.paidA payment succeeds
    customer.deletedA customer is removed
    • Verify the signature
    • Respond with 200 204
    • Read https://acme.shiru.sh/errors
  • Clean URLs and anchors

    Links to .mdx files become clean paths. Headings get stable anchors.

    See [Webhooks](./webhooks.mdx). ## Verify signatures
    See Webhooks.href="/webhooks"
    Verify signatures#verify-signatures

Open source, and priced per team.

Open source

The docs engine moves into the public repository before launch. Run it on your own infrastructure or use the hosted version at shiru.sh. Your content stays in your repo either way.

Follow along on GitHub

Per organization, not per seat

One price for your whole team, so everyone can fix a typo. Plans and prices are published at launch.

Questions, answered.

How is Shiru different from Mintlify?

Both turn MDX into a docs site. Shiru is open source, can be self-hosted, is priced per organization instead of per seat, and treats agents as first-class readers with Markdown at every URL and an llms.txt index.

What exactly do agents get?

The same content your readers see, as Markdown. Add .md to any page URL, or start from /llms.txt, which lists every page.

Do I have to rewrite my docs?

If they’re Markdown, mostly not. MDX is Markdown with optional components. Give each page a title in its frontmatter and you can publish.

Can I self-host?

Yes. The engine moves into the public repository before launch, and you can run it on your own infrastructure.

When does Shiru launch?

We’re building it now. Join the waitlist and we’ll send one email when it ships.

How much will it cost?

Pricing is per organization, not per seat. Plans and prices are published at launch.

Give both of your readers the good version.

Join the waitlist. One email when Shiru ships.