seo 0.2.4 → 0.2.6
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.
- package/PRIVACY.md +42 -5
- package/README.md +29 -13
- package/dist/cli.js +94 -92
- package/dist/cli.js.map +1 -1
- package/dist/dist-PRmi6cXV.js +560 -0
- package/dist/dist-PRmi6cXV.js.map +1 -0
- package/dist/{dist-BhdgeyGe.js → dist-Xkhuyn70.js} +1 -1
- package/dist/index.d.ts +125 -34
- package/dist/index.js +560 -285
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +3 -1
- package/dist/mcp.js +444 -102
- package/dist/mcp.js.map +1 -1
- package/dist/{package-D6bCOqrD.js → package-B9-D646K.js} +2 -2
- package/dist/{package-D6bCOqrD.js.map → package-B9-D646K.js.map} +1 -1
- package/evals/ai-referrals.json +7 -7
- package/evals/compare-crawls.json +2 -2
- package/evals/monthly-action-plan.json +1 -1
- package/evals/refresh-priorities.json +7 -7
- package/evals/seo-fix-queue.json +2 -2
- package/evals/seo-geo-readiness.json +1 -1
- package/evals/seo-to-ai-query.json +2 -2
- package/package.json +3 -3
- package/skills/seo/SKILL.md +7 -6
- package/skills/seo/agents/openai.yaml +1 -1
- package/dist/dist-DMSBrZYd.js +0 -713
- package/dist/dist-DMSBrZYd.js.map +0 -1
package/PRIVACY.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Privacy policy
|
|
2
2
|
|
|
3
|
-
Last updated:
|
|
3
|
+
Last updated: 16 July 2026
|
|
4
4
|
|
|
5
5
|
This policy covers the official `seo` command-line tool, library, MCP server,
|
|
6
6
|
and the seoskill.dev website.
|
|
@@ -18,7 +18,7 @@ read-only access to:
|
|
|
18
18
|
you connected;
|
|
19
19
|
- Search Console properties, performance data, and URL Inspection data you can
|
|
20
20
|
already access; and
|
|
21
|
-
- Google Analytics
|
|
21
|
+
- Google Analytics accounts, properties, and report data you can already
|
|
22
22
|
access.
|
|
23
23
|
|
|
24
24
|
The software uses this data to list properties, run the report you requested,
|
|
@@ -53,9 +53,46 @@ work you request. These can include Google APIs, public pages and sitemaps you
|
|
|
53
53
|
choose to crawl, and the npm registry for package update checks. Those services
|
|
54
54
|
receive ordinary request data under their own privacy policies.
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
## Anonymous tool usage
|
|
57
|
+
|
|
58
|
+
Anonymous usage telemetry is enabled by default with a one-time first-run
|
|
59
|
+
notice. It describes use of the tool, not the site or Google data being
|
|
60
|
+
analysed. Events can contain only a fixed event name, public report identifier,
|
|
61
|
+
package version, detected agent category, operating system, architecture, Node
|
|
62
|
+
major version, first-run ISO week, wire schema version, and a fixed error
|
|
63
|
+
category for failed reports.
|
|
64
|
+
|
|
65
|
+
Telemetry never contains a user ID, machine ID, UUID, fingerprint, audited
|
|
66
|
+
domain, URL, hostname, page content, report content, Search Console or Google
|
|
67
|
+
Analytics response, Google property ID, token, secret, file path, username,
|
|
68
|
+
local hostname, raw error message, IP address, or location. The complete event
|
|
69
|
+
and field catalogue is published at
|
|
70
|
+
[seoskill.dev/telemetry](https://seoskill.dev/telemetry).
|
|
71
|
+
|
|
72
|
+
Once-only event state stays in a private local file in the existing SEO config
|
|
73
|
+
directory. The telemetry endpoint accepts only the published fixed schema and
|
|
74
|
+
writes those fields to a dedicated Cloudflare D1 table. The server adds only
|
|
75
|
+
the UTC receipt month, such as `2026-07`, so it can publish monthly totals
|
|
76
|
+
without storing an exact request time. The table has no account or identity
|
|
77
|
+
column. It does not use KV, R2, or Analytics Engine. Worker request logging is
|
|
78
|
+
disabled. The ingest code does not read request IP or Cloudflare location
|
|
79
|
+
fields, and neither is written to D1. Cloudflare still handles the ordinary
|
|
80
|
+
network request at its edge.
|
|
81
|
+
|
|
82
|
+
Disable all telemetry network calls with `seo telemetry disable`,
|
|
83
|
+
`DO_NOT_TRACK=1`, `SEOSKILL_TELEMETRY_DISABLED=1`, or
|
|
84
|
+
`SEO_TELEMETRY_DISABLED=1`. It is automatically disabled in common CI
|
|
85
|
+
environments. Use `seo telemetry status` to inspect the effective setting and
|
|
86
|
+
`seo telemetry enable` to turn the local setting back on. Environment and CI
|
|
87
|
+
overrides always win.
|
|
88
|
+
|
|
89
|
+
Aggregate event counts are public at
|
|
90
|
+
[seoskill.dev/stats](https://seoskill.dev/stats). They are described as
|
|
91
|
+
installs, active machines, and audits, never users. One person can have several
|
|
92
|
+
installs, and clearing local state creates a new install.
|
|
93
|
+
|
|
94
|
+
Installing the package through npm or using GitHub is covered by the policies
|
|
95
|
+
of those services.
|
|
59
96
|
|
|
60
97
|
The seoskill.dev website uses [Clicky](https://clicky.com/terms/privacy) to
|
|
61
98
|
count visits and see which pages people use. Tracking cookies are disabled in
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<h1 align="center">SEO Skill</h1>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
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
|
|
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 Google Analytics data.
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
@@ -47,7 +47,7 @@ clicks, and catch regressions after a release.
|
|
|
47
47
|
|
|
48
48
|
- People running their own sites who want a clear audit and a ranked list of
|
|
49
49
|
fixes, without learning a heavy dashboard.
|
|
50
|
-
- AI agents that need real crawl, Search Console, and
|
|
50
|
+
- AI agents that need real crawl, Search Console, and Google Analytics evidence through MCP
|
|
51
51
|
and one packaged SEO skill instead of screenshots or guesses.
|
|
52
52
|
- Developers who want to embed the same report engine in a script, a CI job, or
|
|
53
53
|
a TypeScript app.
|
|
@@ -63,7 +63,7 @@ seo report
|
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
The setup walks you through Google sign-in, your Search Console property, an
|
|
66
|
-
optional
|
|
66
|
+
optional Google Analytics property, and a local project profile. Public releases can include
|
|
67
67
|
the shared Google app. If it is unavailable in your build, setup guides you
|
|
68
68
|
through adding your own desktop OAuth client.
|
|
69
69
|
|
|
@@ -77,7 +77,7 @@ technical report before connecting Google.
|
|
|
77
77
|
Running `seo help` shows the shape of the tool:
|
|
78
78
|
|
|
79
79
|
```txt
|
|
80
|
-
seo v0.2.
|
|
80
|
+
seo v0.2.6
|
|
81
81
|
|
|
82
82
|
Run SEO audits, find what needs fixing, and ship the changes with your agent.
|
|
83
83
|
|
|
@@ -140,7 +140,7 @@ The point of a report is to be defensible, so the design keeps a few rules:
|
|
|
140
140
|
## Everyday use
|
|
141
141
|
|
|
142
142
|
`seo start` can save a project profile, which is a local shortcut for a site,
|
|
143
|
-
Search Console property,
|
|
143
|
+
Search Console property, Google Analytics property, and brand terms. If you have one default
|
|
144
144
|
project, most commands need no flags.
|
|
145
145
|
|
|
146
146
|
```sh
|
|
@@ -173,6 +173,14 @@ property with `seo start`.
|
|
|
173
173
|
|
|
174
174
|
Run `seo help` for the short path or `seo help all` for the full command list.
|
|
175
175
|
|
|
176
|
+
Google Analytics commands sit under their provider namespace. List the properties available
|
|
177
|
+
to the connected account, then run a report with the property you need:
|
|
178
|
+
|
|
179
|
+
```sh
|
|
180
|
+
seo analytics google properties
|
|
181
|
+
seo analytics google report --property 123456789 --dimensions landingPage --metrics sessions,totalUsers
|
|
182
|
+
```
|
|
183
|
+
|
|
176
184
|
## Crawl a site
|
|
177
185
|
|
|
178
186
|
Run a readable technical crawl, the base of any technical SEO audit:
|
|
@@ -212,7 +220,7 @@ terminal prose.
|
|
|
212
220
|
evidence so an agent can choose its next call without loading every raw report.
|
|
213
221
|
Use `--full` only when a script needs the complete report object.
|
|
214
222
|
|
|
215
|
-
When a CI job needs Search Console or
|
|
223
|
+
When a CI job needs Search Console or Google Analytics data, give it a Google service
|
|
216
224
|
account JSON key through its secret store. The service account needs access to
|
|
217
225
|
the exact properties it will query. This GitHub Actions step runs without a
|
|
218
226
|
browser or a copied local token:
|
|
@@ -227,7 +235,7 @@ browser or a copied local token:
|
|
|
227
235
|
```
|
|
228
236
|
|
|
229
237
|
The [Google data guide](https://seoskill.dev/docs/google) covers Search
|
|
230
|
-
Console and
|
|
238
|
+
Console and Google Analytics permissions, mounted secret files, and how to check the active
|
|
231
239
|
identity safely.
|
|
232
240
|
|
|
233
241
|
Agents can discover and run the same report catalog as MCP without starting a
|
|
@@ -368,9 +376,9 @@ seo reset
|
|
|
368
376
|
`seo auth status` shows the active storage mode. Power users can choose it with
|
|
369
377
|
`seo auth storage --keychain` or `seo auth storage --file`.
|
|
370
378
|
|
|
371
|
-
Power users can bring their own Google OAuth client
|
|
372
|
-
[
|
|
373
|
-
|
|
379
|
+
Power users can bring their own Google OAuth client or use a service account in
|
|
380
|
+
CI. The [Google data guide](https://seoskill.dev/docs/google) covers both auth
|
|
381
|
+
paths, including OAuth testing-mode limits.
|
|
374
382
|
|
|
375
383
|
## Common questions
|
|
376
384
|
|
|
@@ -378,13 +386,19 @@ auth paths.
|
|
|
378
386
|
|
|
379
387
|
Yes. Reports, project profiles, Google tokens, crawls, and caches stay in your
|
|
380
388
|
local config directory. The CLI only makes the network requests needed to fetch
|
|
381
|
-
your site and call the Google APIs you connect.
|
|
382
|
-
|
|
389
|
+
your site and call the Google APIs you connect.
|
|
390
|
+
|
|
391
|
+
SEO data never leaves your machine. The CLI sends anonymous usage events such
|
|
392
|
+
as the event name, report id, tool version, agent, OS, architecture, Node major,
|
|
393
|
+
and install week. It never sends URLs, identifiers, report data, or Google data.
|
|
394
|
+
Disable telemetry with `DO_NOT_TRACK=1` or `seo telemetry disable`. Read the
|
|
395
|
+
[full telemetry details](https://seoskill.dev/telemetry) and the
|
|
396
|
+
[public aggregate stats](https://seoskill.dev/stats).
|
|
383
397
|
|
|
384
398
|
### Do I need a Google API key?
|
|
385
399
|
|
|
386
400
|
No. `seo start` uses a normal Google sign-in for read-only Search Console and
|
|
387
|
-
|
|
401
|
+
Google Analytics access. Public releases can include a shared desktop OAuth client, and if
|
|
388
402
|
your build does not have one, setup helps you add your own. You can also run a
|
|
389
403
|
local technical crawl with no Google connection at all.
|
|
390
404
|
|
|
@@ -415,6 +429,8 @@ vulnerabilities privately through the process in [SECURITY.md](SECURITY.md).
|
|
|
415
429
|
- [MCP and agents](https://seoskill.dev/docs/agents)
|
|
416
430
|
- [AI-search evidence](https://seoskill.dev/docs/ai-search)
|
|
417
431
|
- [Privacy policy](https://seoskill.dev/privacy)
|
|
432
|
+
- [Anonymous telemetry](https://seoskill.dev/telemetry)
|
|
433
|
+
- [Public usage stats](https://seoskill.dev/stats)
|
|
418
434
|
- [Terms of use](https://seoskill.dev/terms)
|
|
419
435
|
- [Security policy](https://seoskill.dev/security)
|
|
420
436
|
- [Contributing](CONTRIBUTING.md)
|