Open-Source SEO Audit CLI
At Acodez, before we close a client or even sit down for a first meeting, we look at their site. What's broken, how they stack up against competitors, anything worth flagging on the call. Tools like Ahrefs and Semrush can give you this, but pulling it all together takes time you don't always have before a meeting.
So I built do-audit, a free and open-source command-line tool that runs a complete SEO audit and produces a client-ready HTML report, all from the terminal.
What it is
do-audit is a command-line tool that runs a full SEO audit of any website and produces a polished, client-ready HTML report. You run one command in your terminal, and a few minutes later you get a report you can send straight to a client.
no dashboard, no login, no monthly bill either.no dashboard, no login, no monthly bill either.Install it with:
npm install -g do-audit
Or skip installing entirely:
npx do-audit example.com
You just need Node.js 18 or newer. Nothing else.
- npm: https://www.npmjs.com/package/do-audit
- GitHub: https://github.com/doable-team/do-audit
- License: MIT
Why I built it this way
do-audit isn't meant to replace a full audit. For that we still reach for Screaming Frog, Semrush, Ahrefs, and the rest. Its job is narrower: get enough signal on a site fast, technical health, on-page issues, keywords, competitors, and AI visibility, before you've committed real time to a prospect.
Once we saw how much time it saved us before every client conversation at Acodez, I decided to open source it. And since it was going out into the world, I built it the way I'd want a tool like this to work.
do-audit runs 100% locally. There's no backend, no account, no telemetry. Nothing gets proxied through my infrastructure or anyone else's. You bring your own API keys. During a one-time setup (do-audit init), you connect whichever AI providers you already have keys for. That means you pay providers directly, at cost, with no markup and no artificial usage limits from me.
the only network calls it makes are to the site you're auditing and to whatever APIs you connected yourself.the only network calls it makes are to the site you're auditing and to whatever APIs you connected yourself.The whole package has zero npm dependencies. It installs in seconds and there's no dependency tree to worry about from a supply-chain security angle.
What it covers
do-audit runs the standard set of SEO audit checks, plus a few extras.
Technical SEO: robots.txt, XML sitemap, redirect chains across http/https/www variants, security headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options), soft-404 detection, compression, response times.
On-page SEO: It crawls the homepage plus internal pages and checks titles, meta descriptions, canonicals, H1/H2 structure, word counts, image alt-text coverage, Open Graph and Twitter cards, and Schema.org structured data, including catching invalid JSON-LD.
Performance: Lighthouse mobile score and Core Web Vitals (LCP, CLS, TBT) via Google PageSpeed Insights. This works even if you don't have an API key.
Keywords Research: do-audit first works out what the business actually does, its products or services, and its target location, from what it finds on the site. Then, with a DataForSEO connection, it uses that understanding to research relevant keywords for the business, with search volume and difficulty.
it also runs live SERP position checks against competitors for those same keywords.it also runs live SERP position checks against competitors for those same keywords.Competitors and authority. Also through DataForSEO and Ahrefs free API: automatic competitor discovery, backlink counts, referring domains, estimated traffic, and a Domain Rating comparison table.
AI visibility. Tests whether AI assistants (ChatGPT, Claude, Gemini, Perplexity) mention or cite the brand when asked realistic buyer questions. The tool generates 5 buyer-style prompts through query fan-out (a recommendation ask, a comparison, a best-of list, a problem-solving question, a niche discovery question) without ever naming the brand, then checks every connected platform for mentions and citations. You get a visibility score, citation rate, a per-platform breakdown, and share of voice against competitors. It also checks whether the site shows up in Google's AI Overviews.
also checks basic GEO hygiene, whether robots.txt blocks crawlers like GPTBot or ClaudeBot, and whether an llms.txt file even exists.also checks basic GEO hygiene, whether robots.txt blocks crawlers like GPTBot or ClaudeBot, and whether an llms.txt file even exists.AI analysis. Whichever AI provider you picked writes the actual report. It gives a health score from 0 to 100, an executive summary, and a full list of issues, not just the top 5. Each issue comes with a severity level, details, evidence, and a concrete fix, plus quick wins and a prioritized action plan. I instructed the AI to never invent numbers. Every claim in the report has to tie back to real collected data.
How you actually use it
First, run the one-time setup:
do-audit init
This walks you through picking AI providers from a menu, with links to get each key. Key input is masked. You choose which AI should write the analysis, optionally add DataForSEO, Google, or Ahrefs, and set a brand name and default market. Nothing leaves your machine except the API calls you configured.
Then run the audit:
do-audit example.com --open
You'll see a live spinner with checkmarks as each step completes, and when it's done, the report opens straight in your browser.
The report itself is a single, self-contained HTML file, something like audit-example.com-2026-08-26.html. It has a dark hero section with an animated health-score donut, a stat strip showing critical and high issue counts, keywords analyzed, and AI visibility percentage, a sticky section nav, expandable issue cards backed by evidence, data tables, and animated visibility bars. You can white-label it with your own agency name through one config setting.
A few useful flags: --market GB to target a specific country, --json for raw data export if you want to pipe it into something else, plus --out and --pages.
It also degrades gracefully. If you only connect one AI key, you still get the crawl, performance data, AI visibility testing, and the written analysis. DataForSEO and Ahrefs just unlock the extra data sections on top. If a data source is missing, the report says so clearly. Nothing goes silently missing.
Two files, not one
Run do-audit example.com and you get two files, not one. There's the report, something like audit-example.com-2026-08-26.html, ready to send to the client. And sitting right next to it, audit-example.com-2026-08-26-notes.html, generated automatically, no extra step.
AI-written audits are fast, but nobody should send one out unreviewed. The notes file is the review checklist. It keeps a clean line between what the client sees and what you need to verify first.
Inside: every assumption the AI made while running the audit, listed out as an interactive tick-off checklist.
If the AI wasn't sure about something, it's declared here instead of quietly buried in the client-facing report.
Editing the report like a document
Once the report exists, you can edit it without touching code. Run do-audit edit report.html, or just do-audit edit on its own, which grabs the newest report in the folder. Your browser opens with the report in edit mode.
It's local-only by design. It spins up a tiny server bound to 127.0.0.1, nothing leaves your machine, same no-backend, no-telemetry promise as the rest of the tool.
Click any text and it's editable in place, headlines, summaries, issue descriptions, table cells, and you're seeing exactly what the client will see as you type. There's a full rich-text toolbar too: bold, italic, underline, strikethrough, font sizes, text color, heading and paragraph styles, bullet and numbered lists, alignment, links, a clear-formatting button, and undo and redo. The buttons light up to match whatever's under your cursor.
You can add whole new sections and they get auto-numbered and added to the report's navigation automatically. Drag and drop to reorder them, or delete the ones you don't need, section numbers and the nav stay in sync on their own. You can also insert tables styled to match the report, and drop in images by URL or upload, they get resized and embedded directly into the file, so the report stays a single self-contained HTML file.
Every save keeps history too. Each save automatically snapshots the previous version, nothing gets lost. A History panel lists every version with a timestamp.
keeps the last 20 versions, plus the untouched original AI-generated report before anyone touched it.keeps the last 20 versions, plus the untouched original AI-generated report before anyone touched it.You can preview any version in a new tab, or restore it as the live report with one click. Restoring keeps the current version in history too, so even restores can be undone. Versions live in a plain report.html.versions/ folder right next to the file, no database, nothing hidden.
Saving writes straight back to the HTML file on disk.
Who this is for
Agencies and freelancers. Get the basic picture of a prospect's site before your first call, technical health, competitors, AI visibility, without burning an hour pulling data together. If you want to hand something to the client too, the report is also white-labeled and sales-ready.
Being honest about the limits
I want to be upfront about what this tool is and isn't.
Keyword, backlink, Ai visibility and competitor data need a DataForSEO account, which is paid, pay-as-you-go. Without it, those sections just get skipped. do-audit itself is free, but that specific data isn't.
The crawl is lightweight too, homepage plus a handful of internal pages. This isn't built for a 10,000-page enterprise crawl.
How it compares
do-audit isn't trying to replace Screaming Frog, Semrush, or Ahrefs Site Audit. Those are still the right call when you need a full, deep audit. do-audit has a narrower job: give you the basic picture of a site fast, before you've invested real time, so you can decide whether it's worth going further.
Where it does differ from those tools: no subscription, no account, and white-labeled output.
Try it
npx do-audit example.com
That's it. No sign-up, no credit card, no waiting. Point it at your own site and see what it finds.
do-audit is version 0.1.0, launched August 2026. It's MIT licensed and open source, so if you want to see how any of this works under the hood, or send a pull request, the code is right there on GitHub.