Skip to content

v0.4.0

Available on npm as orino-cli and @bynaree/orino.

Terminal window
npx orino-cli@latest audit

This release adds orino fix, which creates missing robots, sitemap and llms.txt files for you, and an official GitHub Action with Code Scanning support. It also widens GEO coverage to the AI crawlers that now matter for citations, and checks that your llms.txt is actually usable rather than just present. The structured psi JSON output from v0.3.4, which was never published on its own, ships here too.

  • orino fix. Creates the missing files Orino can generate safely from your route map: robots, sitemap and llms.txt, in the right place for your framework (for example app/robots.ts and app/sitemap.ts on the Next.js App Router). It only creates files and never modifies or overwrites existing ones. Use --dry-run to preview. See the CLI reference.

    Terminal window
    npx orino-cli fix --url https://yoursite.com
  • GitHub Action. uses: tinotenda0/orino@v0.4.0 runs the audit, keeps one score comment up to date per pull request, and can upload findings to Code Scanning. It replaces copying the example workflow, which posted a new comment on every push. See GitHub Action.

  • --sarif [path]. Writes SARIF 2.1.0 for GitHub Code Scanning and any other SARIF consumer. Findings without a file are anchored to package.json with the real location in the message.

  • Four more AI crawlers. The robots.txt checks now cover:

    Check Crawler Severity
    claude-searchbot-blocked Claude-SearchBot (Claude web search) Warning
    google-extended-blocked Google-Extended (Gemini) Warning
    applebot-extended-blocked Applebot-Extended (Apple Intelligence training) Info
    ccbot-blocked CCBot (Common Crawl) Info

    Training-only crawlers are reported as Info. They show up as suggestions and never affect the score, because opting out of model training is a legitimate choice. On plain HTML sites audited with --no-url, each crawler also runs against the on-disk robots.txt as html-<id>.

  • llms-txt-format. When /llms.txt is served, Orino now checks that it opens with an H1 naming the site and contains Markdown links to your key pages, as the llms.txt format expects.

  • Structured psi object in the JSON output (from v0.3.4). --json and auditToJson include the raw lcp, cls, inp and ttfb values plus the Lighthouse score.

  • llms.txt served as HTML no longer passes. Single-page apps with a catch-all rewrite often return index.html with a 200 for /llms.txt. That used to count as present. It now fails llms-txt-missing with an explanation, because AI systems ignore it.