@seoagent-official/seoagent 1.50.0 → 1.51.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.
package/README.md CHANGED
@@ -37,20 +37,40 @@
37
37
  ---
38
38
 
39
39
  > **This package is a one-shot scaffolder, not a runtime dependency.** Run `init` once to scaffold `.seoagent/` + the Claude Code skill in your repo. Nothing to keep in `package.json` afterwards. No `postinstall` script — installs are silent and play nicely with npm 11+.
40
+ >
41
+ > **Upgrading is hands-off.** When a newer CLI is published, the next time you open Claude Code, the session-start hook surfaces a notice and Claude can offer to run `seoagent update-cli` — which updates the binary **and** refreshes every project on your machine to it in one go. Prefer to do nothing? Each project also self-updates on its own the next time you open it (the `SessionStart` hook runs `seoagent sync` before the skill loads). Refreshes only rewrite the skill files; your `.seoagent/` knowledge is never touched. (No more `rm -rf .seoagent && seoagent init`.) Run `seoagent refresh --all` anytime to sweep every project yourself.
40
42
 
41
- ## Install
43
+ ## Install — pick one
44
+
45
+ You can run SEOAgent two ways. Pick whichever fits how you work; both end up scaffolding the same `.seoagent/` workspace and installing the same Claude Code skill.
46
+
47
+ ### Option A — Global install (recommended for daily use)
48
+
49
+ ```bash
50
+ npm install -g @seoagent-official/seoagent
51
+ seoagent init
52
+ ```
53
+
54
+ **Why this way:** `seoagent` is on your PATH so every command is `seoagent <cmd>` — short to type, instant to run (no npm fetch per call). Claude Code can also call `seoagent <cmd>` directly via its Bash tool, so the skill runs at full speed with no per-call latency.
55
+
56
+ ### Option B — One-shot via `npx` (no global install)
42
57
 
43
58
  ```bash
44
59
  npx -y @seoagent-official/seoagent init
45
60
  ```
46
61
 
47
- The scaffolder will:
62
+ **Why this way:** nothing global on your machine, every invocation pulls the latest published version. Great for CI / one-off use / trying SEOAgent before committing. Trade-off: every command pays a ~2s npm fetch on cold cache, and Claude Code's Bash calls do the same.
63
+
64
+ ---
65
+
66
+ Either way, `init` will:
67
+
48
68
  - Scan your repo for `package.json` `homepage` field + common `.env` files (`NEXT_PUBLIC_SITE_URL`, `SITE_URL`, etc.) to infer your domain
49
69
  - Create `.seoagent/` with `project.md`, `context.md`, and folders for audits, briefs, content
50
70
  - Install the skill at `.claude/skills/seoagent/SKILL.md` so Claude Code picks it up
51
71
  - Add a `PostToolUse` hook to `.claude/settings.json` so edits to `.seoagent/` auto-sync to the cloud (when you're logged in)
52
72
 
53
- The scaffolded sync hook uses `npx -y @seoagent-official/seoagent sync --silent` so the package is fetched on demand from then on no `package.json` entry needed.
73
+ The scaffolded sync hook uses `npx -y @seoagent-official/seoagent sync --silent` either way it's infrastructure that survives your environment changing (so it works even if you later uninstall the global package).
54
74
 
55
75
  Then open Claude Code in this repo and say *"audit my site."* The skill takes it from there.
56
76
 
@@ -61,15 +81,16 @@ Then open Claude Code in this repo and say *"audit my site."* The skill takes it
61
81
 
62
82
  ### Headless / non-interactive
63
83
 
84
+ Global install:
85
+
64
86
  ```bash
65
- npx -y @seoagent-official/seoagent init --yes --domain example.com
87
+ seoagent init --yes --domain example.com
66
88
  ```
67
89
 
68
- ### Optional: install globally for a bare `seoagent` command
90
+ Via npx:
69
91
 
70
92
  ```bash
71
- npm install -g @seoagent-official/seoagent
72
- seoagent init # in your project repo
93
+ npx -y @seoagent-official/seoagent init --yes --domain example.com
73
94
  ```
74
95
 
75
96
  ## Why SEOAgent?
@@ -105,9 +126,11 @@ SEOAgent runs as a CLI on top of the [Claude Agent SDK](https://github.com/anthr
105
126
 
106
127
  **SEO-Optimized Articles** — Articles written from briefs with full SEO frontmatter: meta_title, meta_description, canonical, OpenGraph, Twitter cards, JSON-LD (Article + FAQPage + HowTo as appropriate), image plans. Saved to `.seoagent/content/`.
107
128
 
108
- **Image Generation (Bring Your Own Key)** — Detect `OPENAI_API_KEY`, `FAL_KEY`, or `REPLICATE_API_TOKEN` from your env. Generate hero + inline images with `npx @seoagent-official/seoagent generate-image`. You pay the LLM provider directly.
129
+ **Image Generation (Bring Your Own Key)** — Detect `OPENAI_API_KEY`, `FAL_KEY`, or `REPLICATE_API_TOKEN` from your env. Generate hero + inline images with `seoagent generate-image`. You pay the LLM provider directly.
130
+
131
+ **Open Knowledge Format bundle (AEO/GEO)** — Generate a Google [Open Knowledge Format](https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf) bundle for your site — a curated, agent-readable knowledge layer so ChatGPT, Claude, Perplexity, and Google's AI understand and cite your business accurately. Claude maps your `.seoagent/` knowledge into OKF markdown; `seoagent okf scaffold` and `seoagent okf validate` handle the structure. Saved to `.seoagent/okf/`.
109
132
 
110
- **Open Knowledge Format bundle (AEO/GEO)** — Generate a Google [Open Knowledge Format](https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf) bundle for your site — a curated, agent-readable knowledge layer so ChatGPT, Claude, Perplexity, and Google's AI understand and cite your business accurately. Claude maps your `.seoagent/` knowledge into OKF markdown; `npx @seoagent-official/seoagent okf scaffold` and `okf validate` handle the structure. Saved to `.seoagent/okf/`.
133
+ **AI Citation Scorecard (the measurement half of AEO)** — Publishing an OKF bundle makes you *citable*; `seoagent citations` tells you whether it's *working*. It runs a set of buyer-intent questions through the Claude Agent SDK **with live web search** and reports which ones surface your business — a web-grounded proxy for how ChatGPT, Perplexity, and Google's AI Overviews answer. Saved to `.seoagent/citations/scorecard.md`. (Honest by design: it measures Claude + web search, not a per-engine guarantee re-run over time to watch the trend.)
111
134
 
112
135
  **Compounding Roadmap** — Prioritized action plan that updates after every action. Saved to `.seoagent/roadmap.md`. Persistent changelog at `.seoagent/changelog.md`.
113
136
 
@@ -133,6 +156,8 @@ SEOAgent runs as a CLI on top of the [Claude Agent SDK](https://github.com/anthr
133
156
  concepts/ # type: Concept|Topic — definitive explanations
134
157
  faqs/ # type: FAQ — answer-engine Q&A
135
158
  articles/ # type: Article — published pages (resource = live URL)
159
+ citations/ # AI citation scorecards (measure the OKF/AEO loop)
160
+ scorecard.md # Which buyer-intent queries surface you, web-grounded
136
161
  pages.md # Sitemap inventory (URL list)
137
162
  competitors.md # Competitor profiles + gaps
138
163
  keywords.md # Master keyword inventory (assigned + backlog)
@@ -203,15 +228,15 @@ Three things to notice:
203
228
  2. **Priority badges** (`p:high · ⇧ +12% CTR · ⏱ 2 min`) tell you *which* actions to run first. The picker pre-selects high-priority entries by default — one Enter ships the highest-leverage work.
204
229
  3. **Declines self-ack.** When the agent decides an action is off-strategy, ambiguous, or a false positive, it emits `__DECLINED__: <reason>` and `seoagent ack --failed --reason "…"` fires automatically. You never type the reason by hand.
205
230
 
206
- ## CLI Commands (all 19)
231
+ ## CLI Commands (all 22)
207
232
 
208
- Grouped by what they're for. Run via `npx -y @seoagent-official/seoagent <cmd>` or, after `npm install -g @seoagent-official/seoagent`, just `seoagent <cmd>`.
233
+ Grouped by what they're for. Run as bare `seoagent <cmd>` after the one-time `npm install -g @seoagent-official/seoagent`. (Or `npx -y @seoagent-official/seoagent <cmd>` for a one-shot CI invocation.)
209
234
 
210
235
  **Setup + lifecycle**
211
236
 
212
237
  | Command | What it does |
213
238
  |---|---|
214
- | `init` | Scaffold `.seoagent/` + install the SKILL bundle + write the sync hook. Run once per repo. Auto-detects domain + site type; supports `--yes --domain <d> --site-type <t>` for CI. |
239
+ | `init` | Scaffold `.seoagent/` + install the SKILL bundle + write the sync hook. Run once per repo. Auto-detects domain + site type; supports `--yes --domain <d> --site-type <t>` for CI. **Re-running later refreshes the skill in place** (non-destructive — never touches `.seoagent/`), handy to force the skill up to your current CLI version. |
215
240
  | `login` | Connect this CLI to seoagent.com (browser OAuth flow). Free dashboard access; required for `sync` / `process` / `ack` / paid features. |
216
241
  | `logout` | Clear stored credentials. |
217
242
  | `uninstall` | Remove `.seoagent/`, the skill, and the sync hook. `--global` also wipes the login session and cache. |
@@ -244,17 +269,25 @@ Grouped by what they're for. Run via `npx -y @seoagent-official/seoagent <cmd>`
244
269
  | `keywords` | Enrich your existing keyword inventory with real search volume + difficulty. `--discover` finds new targets; `--competitors` shows the gap (paid). |
245
270
  | `internal-links` | Generate internal-linking recommendations from your existing pages + topic clusters. |
246
271
  | `okf [scaffold\|validate]` | Generate an [Open Knowledge Format](https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf) bundle for AI agents (AEO/GEO) → `.seoagent/okf/`. `scaffold` starts it; `validate` checks `type` fields, ISO-8601 timestamps + cross-links. The skill fills the content. |
272
+ | `citations` | Measure whether answer engines cite you (AEO/GEO). Runs buyer-intent queries through the Claude Agent SDK **with live web search** → `.seoagent/citations/scorecard.md`. `--queries <1-12>` (default 6), `--model <name>`, `--json`. Uses your `claude login` session or `ANTHROPIC_API_KEY`, same as `process`. |
247
273
  | `generate-image` | Generate hero / inline images via the detected provider (BYO API key). |
248
274
 
249
- **Account**
275
+ **Account + maintenance**
250
276
 
251
277
  | Command | What it does |
252
278
  |---|---|
253
279
  | `upgrade` | Open the seoagent.com pricing page. |
280
+ | `update-cli` | Update the CLI to the latest npm version, **then refresh every project on this machine** to it (spawns `refresh --all`). `--no-projects` skips the sweep; `--dry-run` previews. |
281
+ | `refresh` | Force the installed skill up to your CLI version (non-destructive). `--all` sweeps every SEOAgent project on the machine — handy right after an upgrade so you don't have to open each one. |
254
282
 
255
283
  ## Auto-Sync Hook
256
284
 
257
- `init` writes a `PostToolUse` hook to `.claude/settings.json` so every Write/Edit to `.seoagent/` triggers `npx @seoagent-official/seoagent sync --silent` automatically. No-op when not logged in. The hook is race-safe: a cooperative lock keeps a manual `seoagent sync` from clobbering an in-flight hook run (and vice versa).
285
+ `init` writes two hooks to `.claude/settings.json`, both running `npx -y @seoagent-official/seoagent sync --silent`:
286
+
287
+ - a **`SessionStart`** hook — runs at the start of every Claude Code session, **before** Claude reads the skill, so the skill is always current (this is what makes a CLI upgrade take effect on your *next* session);
288
+ - a **`PostToolUse`** (`Write|Edit`) hook — keeps `.seoagent/` synced as the agent edits during a session.
289
+
290
+ The hooks deliberately use the `npx -y` form (not bare `seoagent`) so they survive `npm uninstall -g` and stay current with whatever's published. No-op when not logged in. Race-safe: a cooperative lock keeps a manual `seoagent sync` from clobbering an in-flight hook run. Both run the same `sync`, which **auto-refreshes the installed skill** when the CLI is newer than the project's `skill_version` — rewriting only the skill bundle, never `.seoagent/`.
258
291
 
259
292
  ## SEOAgent Cloud
260
293
 
@@ -268,7 +301,7 @@ The free skill handles audits, strategy, briefs, articles, and persistent state
268
301
  - **Team collaboration** — Invite members, share strategy, coordinate publishing
269
302
  - **Cloud dashboard** — See everything Claude Code did at seoagent.com (also free with any account)
270
303
 
271
- Run `npx @seoagent-official/seoagent login` for the free dashboard, or `npx @seoagent-official/seoagent upgrade` for paid features.
304
+ Run `seoagent login` (or `npx -y @seoagent-official/seoagent login`) for the free dashboard, or `seoagent upgrade` for paid features.
272
305
 
273
306
  ## Pattern Note
274
307