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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Privacy policy
2
2
 
3
- Last updated: 14 July 2026
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 4 accounts, properties, and report data you can already
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
- The CLI does not include project-controlled usage telemetry. Installing the
57
- package through npm or using GitHub is covered by the policies of those
58
- services.
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 GA4 data.
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 GA4 evidence through MCP
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 GA4 property, and a local project profile. Public releases can include
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.4
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, GA4 property, and brand terms. If you have one default
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 GA4 data, give it a Google service
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 GA4 permissions, mounted secret files, and how to check the active
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. See
372
- [getting started](https://seoskill.dev/docs/getting-started) for the available
373
- auth paths.
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. There is no hosted backend,
382
- account, or telemetry service.
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
- GA4 access. Public releases can include a shared desktop OAuth client, and if
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)