seo 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/PRIVACY.md +2 -2
  2. package/README.md +138 -42
  3. package/TERMS.md +2 -2
  4. package/TRADEMARKS.md +9 -5
  5. package/dist/cli.js +69 -52
  6. package/dist/cli.js.map +1 -1
  7. package/dist/{dist-CSY2_p-j.js → dist-CTBhWxn6.js} +49 -49
  8. package/dist/dist-CTBhWxn6.js.map +1 -0
  9. package/dist/{dist-FeAUNn9A.js → dist-eiewVfiS.js} +1 -1
  10. package/dist/index.d.ts +186 -94
  11. package/dist/index.js +843 -415
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp.d.ts +18 -1
  14. package/dist/mcp.js +6532 -4665
  15. package/dist/mcp.js.map +1 -1
  16. package/dist/{package-uzXzqDW6.js → package-BTOI9tde.js} +2 -2
  17. package/dist/{package-uzXzqDW6.js.map → package-BTOI9tde.js.map} +1 -1
  18. package/evals/README.md +117 -0
  19. package/evals/affected-urls.json +57 -0
  20. package/evals/ai-readiness.json +84 -0
  21. package/evals/ai-referrals.json +71 -0
  22. package/evals/ai-search-scorecard.json +70 -0
  23. package/evals/audit-page.json +57 -0
  24. package/evals/audit-urls.json +58 -0
  25. package/evals/cannibalisation.json +57 -0
  26. package/evals/community-intent.json +57 -0
  27. package/evals/compare-crawls.json +56 -0
  28. package/evals/content-optimization.json +57 -0
  29. package/evals/crawl-diff.json +58 -0
  30. package/evals/crawl-history.json +44 -0
  31. package/evals/crawl-report.json +44 -0
  32. package/evals/crawler-rules.json +44 -0
  33. package/evals/ctr-underperformers.json +57 -0
  34. package/evals/decaying-pages.json +57 -0
  35. package/evals/entity-readiness.json +57 -0
  36. package/evals/explain-crawl-issue.json +44 -0
  37. package/evals/generate-llms-txt.json +44 -0
  38. package/evals/geo-gaps.json +57 -0
  39. package/evals/index-coverage-plan.json +58 -0
  40. package/evals/index-coverage.json +70 -0
  41. package/evals/index-monitor.json +58 -0
  42. package/evals/index-watch.json +68 -0
  43. package/evals/internal-links.json +57 -0
  44. package/evals/link-recovery.json +58 -0
  45. package/evals/llms-txt-audit.json +44 -0
  46. package/evals/measure-change.json +58 -0
  47. package/evals/monthly-action-plan.json +56 -0
  48. package/evals/monthly-report.json +58 -0
  49. package/evals/narrative-report.json +58 -0
  50. package/evals/okf-build.json +44 -0
  51. package/evals/okf-validate.json +44 -0
  52. package/evals/page-opportunities.json +57 -0
  53. package/evals/performance-audit.json +57 -0
  54. package/evals/pseo-audit.json +84 -0
  55. package/evals/query-clusters.json +57 -0
  56. package/evals/quick-wins.json +86 -0
  57. package/evals/redirect-trace.json +57 -0
  58. package/evals/refresh-priorities.json +57 -0
  59. package/evals/search-performance-overview.json +86 -0
  60. package/evals/second-page.json +58 -0
  61. package/evals/segment-impact.json +57 -0
  62. package/evals/seo-fix-queue.json +85 -0
  63. package/evals/seo-geo-readiness.json +84 -0
  64. package/evals/seo-site-audit.json +85 -0
  65. package/evals/seo-to-ai-query.json +57 -0
  66. package/evals/seo.json +87 -0
  67. package/evals/setup-check.json +56 -0
  68. package/evals/site-crawl.json +44 -0
  69. package/evals/striking-distance.json +85 -0
  70. package/evals/technical-watch.json +57 -0
  71. package/evals/top-fixes.json +44 -0
  72. package/evals/traffic-anomaly.json +57 -0
  73. package/evals/update-correlation.json +57 -0
  74. package/evals/update-postmortem.json +57 -0
  75. package/package.json +5 -3
  76. package/skills/README.md +50 -61
  77. package/skills/seo/SKILL.md +88 -63
  78. package/skills/seo/agents/openai.yaml +2 -2
  79. package/dist/dist-CSY2_p-j.js.map +0 -1
  80. package/skills/affected-urls/SKILL.md +0 -39
  81. package/skills/affected-urls/agents/openai.yaml +0 -4
  82. package/skills/ai-readiness/SKILL.md +0 -34
  83. package/skills/ai-readiness/agents/openai.yaml +0 -4
  84. package/skills/ai-referrals/SKILL.md +0 -31
  85. package/skills/ai-referrals/agents/openai.yaml +0 -4
  86. package/skills/audit-page/SKILL.md +0 -50
  87. package/skills/audit-page/agents/openai.yaml +0 -4
  88. package/skills/audit-urls/SKILL.md +0 -39
  89. package/skills/audit-urls/agents/openai.yaml +0 -4
  90. package/skills/cannibalisation/SKILL.md +0 -31
  91. package/skills/cannibalisation/agents/openai.yaml +0 -4
  92. package/skills/community-intent/SKILL.md +0 -39
  93. package/skills/community-intent/agents/openai.yaml +0 -4
  94. package/skills/compare-crawls/SKILL.md +0 -40
  95. package/skills/compare-crawls/agents/openai.yaml +0 -4
  96. package/skills/content-optimization/SKILL.md +0 -31
  97. package/skills/content-optimization/agents/openai.yaml +0 -4
  98. package/skills/crawl-diff/SKILL.md +0 -51
  99. package/skills/crawl-diff/agents/openai.yaml +0 -4
  100. package/skills/crawl-history/SKILL.md +0 -37
  101. package/skills/crawl-history/agents/openai.yaml +0 -4
  102. package/skills/crawl-report/SKILL.md +0 -37
  103. package/skills/crawl-report/agents/openai.yaml +0 -4
  104. package/skills/crawler-rules/SKILL.md +0 -34
  105. package/skills/crawler-rules/agents/openai.yaml +0 -4
  106. package/skills/ctr-underperformers/SKILL.md +0 -31
  107. package/skills/ctr-underperformers/agents/openai.yaml +0 -4
  108. package/skills/decaying-pages/SKILL.md +0 -31
  109. package/skills/decaying-pages/agents/openai.yaml +0 -4
  110. package/skills/entity-readiness/SKILL.md +0 -34
  111. package/skills/entity-readiness/agents/openai.yaml +0 -4
  112. package/skills/explain-crawl-issue/SKILL.md +0 -32
  113. package/skills/explain-crawl-issue/agents/openai.yaml +0 -4
  114. package/skills/generate-llms-txt/SKILL.md +0 -37
  115. package/skills/generate-llms-txt/agents/openai.yaml +0 -4
  116. package/skills/geo-gaps/SKILL.md +0 -37
  117. package/skills/geo-gaps/agents/openai.yaml +0 -4
  118. package/skills/index-coverage/SKILL.md +0 -84
  119. package/skills/index-coverage/agents/openai.yaml +0 -4
  120. package/skills/index-coverage-plan/SKILL.md +0 -50
  121. package/skills/index-coverage-plan/agents/openai.yaml +0 -4
  122. package/skills/index-monitor/SKILL.md +0 -49
  123. package/skills/index-monitor/agents/openai.yaml +0 -4
  124. package/skills/index-watch/SKILL.md +0 -77
  125. package/skills/index-watch/agents/openai.yaml +0 -4
  126. package/skills/internal-links/SKILL.md +0 -31
  127. package/skills/internal-links/agents/openai.yaml +0 -4
  128. package/skills/link-recovery/SKILL.md +0 -51
  129. package/skills/link-recovery/agents/openai.yaml +0 -4
  130. package/skills/llms-txt-audit/SKILL.md +0 -34
  131. package/skills/llms-txt-audit/agents/openai.yaml +0 -4
  132. package/skills/measure-change/SKILL.md +0 -52
  133. package/skills/measure-change/agents/openai.yaml +0 -4
  134. package/skills/monthly-action-plan/SKILL.md +0 -50
  135. package/skills/monthly-action-plan/agents/openai.yaml +0 -4
  136. package/skills/monthly-report/SKILL.md +0 -50
  137. package/skills/monthly-report/agents/openai.yaml +0 -4
  138. package/skills/narrative-report/SKILL.md +0 -51
  139. package/skills/narrative-report/agents/openai.yaml +0 -4
  140. package/skills/okf-build/SKILL.md +0 -39
  141. package/skills/okf-build/agents/openai.yaml +0 -4
  142. package/skills/okf-validate/SKILL.md +0 -43
  143. package/skills/okf-validate/agents/openai.yaml +0 -4
  144. package/skills/page-opportunities/SKILL.md +0 -31
  145. package/skills/page-opportunities/agents/openai.yaml +0 -4
  146. package/skills/performance/SKILL.md +0 -50
  147. package/skills/performance/agents/openai.yaml +0 -4
  148. package/skills/performance-audit/SKILL.md +0 -31
  149. package/skills/performance-audit/agents/openai.yaml +0 -4
  150. package/skills/pseo-audit/SKILL.md +0 -103
  151. package/skills/pseo-audit/agents/openai.yaml +0 -4
  152. package/skills/query-clusters/SKILL.md +0 -31
  153. package/skills/query-clusters/agents/openai.yaml +0 -4
  154. package/skills/quick-wins/SKILL.md +0 -31
  155. package/skills/quick-wins/agents/openai.yaml +0 -4
  156. package/skills/redirect-trace/SKILL.md +0 -51
  157. package/skills/redirect-trace/agents/openai.yaml +0 -4
  158. package/skills/refresh-priorities/SKILL.md +0 -48
  159. package/skills/refresh-priorities/agents/openai.yaml +0 -4
  160. package/skills/search-performance-overview/SKILL.md +0 -48
  161. package/skills/search-performance-overview/agents/openai.yaml +0 -4
  162. package/skills/second-page/SKILL.md +0 -50
  163. package/skills/second-page/agents/openai.yaml +0 -4
  164. package/skills/segment-impact/SKILL.md +0 -50
  165. package/skills/segment-impact/agents/openai.yaml +0 -4
  166. package/skills/seo-fix-queue/SKILL.md +0 -50
  167. package/skills/seo-fix-queue/agents/openai.yaml +0 -4
  168. package/skills/seo-geo-readiness/SKILL.md +0 -60
  169. package/skills/seo-geo-readiness/agents/openai.yaml +0 -4
  170. package/skills/seo-site-audit/SKILL.md +0 -59
  171. package/skills/seo-site-audit/agents/openai.yaml +0 -4
  172. package/skills/seo-to-ai-query/SKILL.md +0 -31
  173. package/skills/seo-to-ai-query/agents/openai.yaml +0 -4
  174. package/skills/setup-check/SKILL.md +0 -49
  175. package/skills/setup-check/agents/openai.yaml +0 -4
  176. package/skills/site-crawl/SKILL.md +0 -39
  177. package/skills/site-crawl/agents/openai.yaml +0 -4
  178. package/skills/striking-distance/SKILL.md +0 -52
  179. package/skills/striking-distance/agents/openai.yaml +0 -4
  180. package/skills/technical-watch/SKILL.md +0 -49
  181. package/skills/technical-watch/agents/openai.yaml +0 -4
  182. package/skills/top-fixes/SKILL.md +0 -38
  183. package/skills/top-fixes/agents/openai.yaml +0 -4
  184. package/skills/traffic-anomaly/SKILL.md +0 -52
  185. package/skills/traffic-anomaly/agents/openai.yaml +0 -4
  186. package/skills/update-correlation/SKILL.md +0 -51
  187. package/skills/update-correlation/agents/openai.yaml +0 -4
  188. package/skills/update-postmortem/SKILL.md +0 -49
  189. package/skills/update-postmortem/agents/openai.yaml +0 -4
package/PRIVACY.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Last updated: 10 July 2026
4
4
 
5
5
  This policy covers the official `seo` command-line tool, library, MCP server,
6
- and the seoskills.dev website.
6
+ and the seoskill.dev website.
7
7
 
8
8
  The current software runs on your machine. It does not create an SEO account,
9
9
  upload reports to an SEO service, or send your Google data to the project
@@ -57,7 +57,7 @@ The CLI does not include project-controlled usage telemetry. Installing the
57
57
  package through npm or using GitHub is covered by the policies of those
58
58
  services.
59
59
 
60
- The seoskills.dev host and security provider may process normal web request
60
+ The seoskill.dev host and security provider may process normal web request
61
61
  data such as an IP address, user agent, requested path, and timestamp. Website
62
62
  logs do not include the reports, tokens, or Google API responses stored by the
63
63
  local software.
package/README.md CHANGED
@@ -1,23 +1,26 @@
1
1
  <p align="center">
2
- <img src="apps/web/public/favicon.svg" alt="SEO Skills CLI" width="72" height="72">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="assets/brand/s-dark.svg">
4
+ <img src="assets/brand/s.svg" alt="SEO Skill" width="144">
5
+ </picture>
3
6
  </p>
4
7
 
5
- <h1 align="center">SEO Skills CLI</h1>
8
+ <h1 align="center">SEO Skill</h1>
6
9
 
7
10
  <p align="center">
8
- Find what is costing you traffic, which pages are closest to more clicks, and what to fix first. Local SEO tools and skills for people, AI agents, and CI.
11
+ The only SEO skill your agent needs. 50+ SEO audit tools through a local CLI and MCP server, using your own crawl, Search Console, and GA4 data.
9
12
  </p>
10
13
 
11
14
  <p align="center">
12
15
  <a href="#quick-start">Get started</a>
13
16
  ·
14
- <a href="https://seoskills.dev/docs">Documentation</a>
17
+ <a href="https://seoskill.dev/docs">Documentation</a>
15
18
  ·
16
19
  <a href="https://www.npmjs.com/package/seo">npm</a>
17
20
  ·
18
21
  <a href="https://github.com/iannuttall/seo/issues">Questions</a>
19
22
  ·
20
- <a href="https://seoskills.dev/privacy">Privacy</a>
23
+ <a href="https://seoskill.dev/privacy">Privacy</a>
21
24
  ·
22
25
  <a href="SECURITY.md">Security</a>
23
26
  ·
@@ -35,19 +38,26 @@
35
38
  <a href="LICENSE"><img alt="Apache 2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-lightgrey?style=flat-square"></a>
36
39
  </p>
37
40
 
38
- `seo` turns a local crawl and your own search data into work you can inspect
39
- and ship. Find technical blockers, recover search demand, improve pages already
40
- close to more clicks, and catch regressions after a release.
41
+ The `seo` command runs a full SEO audit from your terminal, turning a local
42
+ crawl and your own search data into work you can inspect and ship. Find
43
+ technical blockers, recover search demand, improve pages already close to more
44
+ clicks, and catch regressions after a release.
45
+
46
+ ## Who this is for
47
+
48
+ - People running their own sites who want a clear audit and a ranked list of
49
+ fixes, without learning a heavy dashboard.
50
+ - AI agents that need real crawl, Search Console, and GA4 evidence through MCP
51
+ and one packaged SEO skill instead of screenshots or guesses.
52
+ - Developers who want to embed the same report engine in a script, a CI job, or
53
+ a TypeScript app.
41
54
 
42
55
  ## Quick start
43
56
 
44
57
  Requires Node 22 or newer.
45
58
 
46
- Install the command once, then add the skills when an agent will use it:
47
-
48
59
  ```sh
49
60
  npm i -g seo
50
- npx skills add iannuttall/seo --all
51
61
  seo start
52
62
  seo report
53
63
  ```
@@ -57,13 +67,49 @@ optional GA4 property, and a local project profile. Public releases can include
57
67
  the shared Google app. If it is unavailable in your build, setup guides you
58
68
  through adding your own desktop OAuth client.
59
69
 
60
- That is the normal path. `seo` is then available in every terminal, script,
61
- CI job, and local MCP client on the machine.
70
+ That is the normal path. The `seo` command is then available in every terminal,
71
+ script, CI job, and local MCP client on the machine.
62
72
 
63
73
  The main report uses the evidence you have, explains what it could not check,
64
74
  and recommends a short list of follow-up commands. You can start with a local
65
75
  technical report before connecting Google.
66
76
 
77
+ Running `seo help` shows the shape of the tool:
78
+
79
+ ```txt
80
+ seo v0.2.1
81
+
82
+ Human-friendly SEO reports first, power tools when you need them.
83
+
84
+ Start here
85
+ seo start Connect Google and save a project profile
86
+ seo report Run the main SEO report for the default project
87
+ seo report --site sc-domain:example.com Run without a profile
88
+ seo report --url https://example.com Start with a local technical report
89
+
90
+ Projects
91
+ seo projects list List saved project profiles
92
+ seo projects add Create or update a project profile
93
+ seo sites List Search Console properties
94
+ seo doctor Check local auth and config
95
+
96
+ Act on a report
97
+ seo refresh-priorities Rank the next best SEO actions
98
+ seo quick-wins Find ranking 4-10 low-CTR wins
99
+ seo second-page Investigate URLs averaging positions 10-20
100
+ seo technical-watch Crawl and index-monitor a site
101
+
102
+ Agent and power tools
103
+ seo report --json Run the main report as structured JSON
104
+ seo export diagnose Export report data to CSV
105
+ seo mcp install Install SEO tools into MCP clients
106
+ seo skill list Show the packaged SEO skill
107
+ seo reports list Discover every structured report
108
+
109
+ Use `seo help <command>` or `seo <command> --help` for command help.
110
+ Use `seo help all` for the longer command list.
111
+ ```
112
+
67
113
  ## What you get
68
114
 
69
115
  - Find technical blockers across metadata, links, indexability, canonicals,
@@ -78,6 +124,19 @@ technical report before connecting Google.
78
124
  - Give scripts and agents deterministic JSON, Markdown, stable rule IDs, and a
79
125
  compact local MCP surface.
80
126
 
127
+ ## How the reports stay honest
128
+
129
+ The point of a report is to be defensible, so the design keeps a few rules:
130
+
131
+ - Observed evidence stays separate from derived findings and recommended
132
+ actions. You can always see the crawl row or provider row behind a claim.
133
+ - Partial data is never reported as a zero. A capped, filtered, or sampled
134
+ source says so, and it cannot support a definitive all-clear.
135
+ - Heuristics are labeled as heuristics. A convention or threshold is not
136
+ presented as a search-engine rule.
137
+ - Each recommendation comes with a way to check that the fix worked, rather than
138
+ a promise about rankings or traffic.
139
+
81
140
  ## Everyday use
82
141
 
83
142
  `seo start` can save a project profile, which is a local shortcut for a site,
@@ -116,7 +175,7 @@ Run `seo help` for the short path or `seo help all` for the full command list.
116
175
 
117
176
  ## Crawl a site
118
177
 
119
- Run a readable technical crawl:
178
+ Run a readable technical crawl, the base of any technical SEO audit:
120
179
 
121
180
  ```sh
122
181
  seo crawl https://example.com --format pretty
@@ -167,7 +226,7 @@ browser or a copied local token:
167
226
  SEO_GOOGLE_SERVICE_ACCOUNT_JSON: ${{ secrets.SEO_GOOGLE_SERVICE_ACCOUNT_JSON }}
168
227
  ```
169
228
 
170
- The [Google data guide](https://seoskills.dev/docs/google) covers Search
229
+ The [Google data guide](https://seoskill.dev/docs/google) covers Search
171
230
  Console and GA4 permissions, mounted secret files, and how to check the active
172
231
  identity safely.
173
232
 
@@ -186,16 +245,21 @@ drift.
186
245
 
187
246
  ## Use it with AI agents
188
247
 
189
- Agents work best with both parts of the project. The `seo` package runs the
190
- reports. The skills teach an agent which report to choose, how to read it, and
191
- what to verify before changing a site.
248
+ Your agent carries one short SEO skill, and the CLI and MCP server do the
249
+ heavy lifting. The skill teaches an agent how to discover the 50+ audit and
250
+ report tools at runtime, and the agent asks the CLI for the detail on each
251
+ tool only when it is about to run it. You get the whole toolkit without fifty
252
+ skill files sitting in the context window on every session.
253
+
254
+ `seo start` offers to install the SEO skill during setup. If you skipped that
255
+ step or need to reinstall it later, run the packaged installer:
192
256
 
193
257
  ```sh
194
- npm i -g seo
195
- npx skills add iannuttall/seo --all
258
+ seo skill install
196
259
  ```
197
260
 
198
- Then install the local stdio MCP server into a supported client:
261
+ If you also skipped the MCP step, install the local server into a supported
262
+ client:
199
263
 
200
264
  ```sh
201
265
  seo mcp install
@@ -217,22 +281,24 @@ configuration or testing:
217
281
  seo mcp serve
218
282
  ```
219
283
 
220
- The repository ships the focused instructions under `skills/`. They teach
221
- agents when to discover reports, inspect evidence, and request a smaller
222
- follow-up instead of loading a giant result into context.
284
+ The repository ships one skill under `skills/seo`. It is a router: it teaches an
285
+ agent to discover reports, describe one to load its depth at runtime, inspect
286
+ the evidence, and request a smaller follow-up instead of loading a giant result
287
+ into context. Per-report guidance lives in the registry and is fetched with
288
+ `seo reports describe <id> --json`, so it never drifts from the skill.
223
289
 
224
- The npm package includes the same files for local inspection:
290
+ The npm package includes the same file for local inspection:
225
291
 
226
292
  ```sh
227
- seo skills list
228
- seo skills path quick-wins
293
+ seo skill list
294
+ seo skill path seo
229
295
  ```
230
296
 
231
- Agents can also discover the complete skill catalog from
232
- `https://seoskills.dev/.well-known/agent-skills/index.json`. Each entry links to
297
+ Agents can also discover the canonical skill from
298
+ `https://seoskill.dev/.well-known/agent-skills/index.json`. The entry links to
233
299
  the canonical skill instructions and includes a content digest for verification.
234
300
 
235
- See [MCP and agents](https://seoskills.dev/docs/agents) for setup and tool
301
+ See [MCP and agents](https://seoskill.dev/docs/agents) for setup and tool
236
302
  details.
237
303
 
238
304
  ## Use it as a library
@@ -282,13 +348,13 @@ console.log(crawl.summary, crawl.issueGroups)
282
348
  The main `seo` export contains the report, provider, crawler, storage, and
283
349
  rendering APIs. `seo/mcp` exposes report discovery, report execution, and the
284
350
  embeddable MCP server. See the [TypeScript library
285
- guide](https://seoskills.dev/docs/library) for structured error handling,
351
+ guide](https://seoskill.dev/docs/typescript) for structured error handling,
286
352
  local Google access, and more examples.
287
353
 
288
354
  ## Local data and Google access
289
355
 
290
356
  Google OAuth tokens use your system keychain when it is available. On a
291
- headless machine or a locked keychain, SEO Skills CLI falls back to a private
357
+ headless machine or a locked keychain, the CLI falls back to a private
292
358
  `0600` file in your user config directory. Project profiles, crawl reports, and
293
359
  provider caches are also local. Use these commands to inspect or remove them:
294
360
 
@@ -303,24 +369,54 @@ seo reset
303
369
  `seo auth storage --keychain` or `seo auth storage --file`.
304
370
 
305
371
  Power users can bring their own Google OAuth client. See
306
- [getting started](https://seoskills.dev/docs/getting-started) for the available
372
+ [getting started](https://seoskill.dev/docs/getting-started) for the available
307
373
  auth paths.
308
374
 
375
+ ## Common questions
376
+
377
+ ### Does my site data stay on my machine?
378
+
379
+ Yes. Reports, project profiles, Google tokens, crawls, and caches stay in your
380
+ local config directory. The CLI only makes the network requests needed to fetch
381
+ your site and call the Google APIs you connect. There is no hosted backend,
382
+ account, or telemetry service.
383
+
384
+ ### Do I need a Google API key?
385
+
386
+ No. `seo start` uses a normal Google sign-in for read-only Search Console and
387
+ GA4 access. Public releases can include a shared desktop OAuth client, and if
388
+ your build does not have one, setup helps you add your own. You can also run a
389
+ local technical crawl with no Google connection at all.
390
+
391
+ ### What does it cost?
392
+
393
+ The `seo` package is free and open source under Apache-2.0. It calls Google APIs
394
+ you already have access to, so there is no separate subscription. Your own API
395
+ quotas still apply.
396
+
397
+ ### How is this different from a paid SEO tool?
398
+
399
+ A hosted SEO tool keeps your data on its servers and shows you a dashboard. This
400
+ runs on your machine, works from your own crawl and Google data, and returns
401
+ structured evidence your agent can read and act on. Every finding shows the
402
+ evidence behind it and a way to verify a fix, so you are not trusting a score
403
+ you cannot inspect.
404
+
309
405
  ## Documentation
310
406
 
311
407
  Questions, bug reports, and feature requests go through
312
408
  [GitHub Issues](https://github.com/iannuttall/seo/issues). Report suspected
313
409
  vulnerabilities privately through the process in [SECURITY.md](SECURITY.md).
314
410
 
315
- - [Getting started](https://seoskills.dev/docs/getting-started)
316
- - [CLI commands](https://seoskills.dev/docs/cli)
317
- - [Crawler](https://seoskills.dev/docs/crawler)
318
- - [Reports and data](https://seoskills.dev/docs/reports)
319
- - [MCP and agents](https://seoskills.dev/docs/agents)
320
- - [AI-search evidence](https://seoskills.dev/docs/ai-search)
321
- - [Privacy policy](https://seoskills.dev/privacy)
322
- - [Terms of use](https://seoskills.dev/terms)
323
- - [Security policy](https://seoskills.dev/security)
411
+ - [Getting started](https://seoskill.dev/docs/getting-started)
412
+ - [CLI commands](https://seoskill.dev/docs/cli)
413
+ - [Crawler](https://seoskill.dev/docs/crawler)
414
+ - [Reports and data](https://seoskill.dev/docs/reports)
415
+ - [MCP and agents](https://seoskill.dev/docs/agents)
416
+ - [AI-search evidence](https://seoskill.dev/docs/ai-search)
417
+ - [Privacy policy](https://seoskill.dev/privacy)
418
+ - [Terms of use](https://seoskill.dev/terms)
419
+ - [Security policy](https://seoskill.dev/security)
324
420
  - [Contributing](CONTRIBUTING.md)
325
421
  - [Trademark and brand policy](TRADEMARKS.md)
326
422
 
package/TERMS.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Last updated: 10 July 2026
4
4
 
5
5
  These terms cover the official `seo` command-line tool, library, MCP server,
6
- documentation, and seoskills.dev website.
6
+ documentation, and seoskill.dev website.
7
7
 
8
8
  ## Open source licence
9
9
 
@@ -58,7 +58,7 @@ You are responsible for protecting local tokens, configuration, caches,
58
58
  reports, exports, backups, and environment variables. Keep secrets out of
59
59
  public issues, logs, screenshots, repositories, and shared report files.
60
60
 
61
- The [privacy policy](https://seoskills.dev/privacy) explains what the software
61
+ The [privacy policy](https://seoskill.dev/privacy) explains what the software
62
62
  stores and how to remove it.
63
63
 
64
64
  ## Availability and changes
package/TRADEMARKS.md CHANGED
@@ -3,14 +3,18 @@
3
3
  The source code is available under Apache-2.0. That license does not grant a
4
4
  right to present another product or service as the official `seo` project.
5
5
 
6
- This policy covers the SEO Skills name, seoskills.dev, project artwork, and the
7
- `seo` name when it refers specifically to this package and project. It does not
8
- claim ownership of the generic term "SEO."
6
+ This policy covers this project's identity: the name `seo` when it refers to
7
+ this specific package and project, the tagline "The SEO command for AI agents",
8
+ the logo and project artwork, and seoskill.dev.
9
+
10
+ "seo" is a generic term for search engine optimization. This policy claims no
11
+ rights over that generic use. It covers only the project's name in context, its
12
+ logo, its branding, and its tagline.
9
13
 
10
14
  ## Uses that are fine
11
15
 
12
16
  - Truthfully saying that software uses, supports, or is based on `seo`.
13
- - Linking to the official repository or seoskills.dev.
17
+ - Linking to the official repository or seoskill.dev.
14
18
  - Keeping required attribution and notices in copies or forks.
15
19
  - Describing a fork as an unofficial fork, provided the distinction is clear.
16
20
 
@@ -22,6 +26,6 @@ service, domain, package, event, or merchandise.
22
26
 
23
27
  Do not imply endorsement, partnership, or official status. Forks and hosted
24
28
  versions must use a distinct name and visual identity, and must not create
25
- confusion with the npm package, repository, or seoskills.dev.
29
+ confusion with the npm package, repository, or seoskill.dev.
26
30
 
27
31
  Nominative and other uses allowed by applicable law remain allowed.