@seoagent-official/seoagent 1.48.0 → 1.50.0

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
@@ -107,6 +107,8 @@ SEOAgent runs as a CLI on top of the [Claude Agent SDK](https://github.com/anthr
107
107
 
108
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.
109
109
 
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/`.
111
+
110
112
  **Compounding Roadmap** — Prioritized action plan that updates after every action. Saved to `.seoagent/roadmap.md`. Persistent changelog at `.seoagent/changelog.md`.
111
113
 
112
114
  ## Project Structure
@@ -126,6 +128,11 @@ SEOAgent runs as a CLI on top of the [Claude Agent SDK](https://github.com/anthr
126
128
  content/
127
129
  {article-slug}.md # Article with full SEO frontmatter + JSON-LD
128
130
  images/ # Generated hero + inline images
131
+ okf/ # Open Knowledge Format bundle for AI agents (AEO/GEO)
132
+ index.md # type: Organization — business overview
133
+ concepts/ # type: Concept|Topic — definitive explanations
134
+ faqs/ # type: FAQ — answer-engine Q&A
135
+ articles/ # type: Article — published pages (resource = live URL)
129
136
  pages.md # Sitemap inventory (URL list)
130
137
  competitors.md # Competitor profiles + gaps
131
138
  keywords.md # Master keyword inventory (assigned + backlog)
@@ -141,34 +148,113 @@ SEOAgent runs as a CLI on top of the [Claude Agent SDK](https://github.com/anthr
141
148
  long-tail-articles.md # Long-tail protocol
142
149
  programmatic.md # 12 programmatic SEO playbooks
143
150
  schema-markup.md # JSON-LD library by entity type
151
+ open-knowledge-format.md # OKF bundle protocol (AEO/GEO)
144
152
  keyword-research.md # WebSearch query patterns
145
153
  rewrite-protocol.md # Phase 4b refresh procedure
146
154
  audit-checks.md # Full audit check list with severity tiers
147
155
  ```
148
156
 
149
- ## CLI Commands
157
+ ## The Autopilot Loop
158
+
159
+ `seoagent process` is the executive function over the rest of the CLI. It's how SEOAgent runs work end-to-end without you driving every step manually:
160
+
161
+ ```
162
+ ┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
163
+ │ Cloud autopilot │ │ CLI inbox │ │ Claude Agent SDK │ │ Cloud dashboard │
164
+ │ (seoagent.com) │ → │ .seoagent/inbox/ │ → │ seoagent process │ → │ Action closed │
165
+ │ detects + queues │ │ (sync pulls down) │ │ edits files, │ │ with applied OR │
166
+ │ technical fixes, │ │ Read with │ │ decides apply │ │ declined + reason │
167
+ │ content gaps, │ │ seoagent inbox │ │ vs decline, │ │ (seoagent ack │
168
+ │ off-strategy KWs… │ │ │ │ emits verdict │ │ fires automatically)│
169
+ └──────────────────────┘ └──────────────────────┘ └──────────────────────┘ └──────────────────────┘
170
+ ```
150
171
 
151
- Run via `npx` (works after a local install or as a one-shot fetch):
172
+ What that looks like in your terminal:
152
173
 
153
174
  ```bash
154
- npx @seoagent-official/seoagent init # Create .seoagent/ project + install skill
155
- npx @seoagent-official/seoagent keywords --peek "<kw>" # Free single-keyword DataForSEO peek (no login, daily quota)
156
- npx @seoagent-official/seoagent uninstall # Remove .seoagent/, the skill, and the sync hook (--global also wipes login)
157
- npx @seoagent-official/seoagent status # Show project state summary
158
- npx @seoagent-official/seoagent login # Connect this CLI to seoagent.com (browser flow)
159
- npx @seoagent-official/seoagent logout # Remove stored credentials
160
- npx @seoagent-official/seoagent sync # Push artifacts to dashboard (no-op when not logged in)
161
- npx @seoagent-official/seoagent env-check # Detect image generation provider (OPENAI/FAL/REPLICATE)
162
- npx @seoagent-official/seoagent generate-image # Generate an image via your provider
163
- npx @seoagent-official/seoagent upgrade # Open SEOAgent Cloud pricing page
175
+ $ seoagent sync # Pull pending actions from your dashboard
176
+ Pulled 3 pending actions .seoagent/inbox/
177
+
178
+ $ seoagent inbox # See what's queued
179
+ SEOAgent inbox · 3 pending actions
180
+ id 2017 · canonical · high · p:high · ⇧ +12% CTR · ⏱ 2 min — Auth pages in sitemap.xml
181
+ id 2018 · meta · medium · p:medium · +4 positions · ⏱ 5 min — Generic meta description on /pricing
182
+ id 2176 · new-landing-page · medium New page for keyword "3/0"
183
+
184
+ $ seoagent process # Pick what to run; agent does the rest
185
+ [1/2] · id 2017 · canonical · high
186
+ ⏺ Read(apps/web/src/app/sitemap.ts)
187
+ ⎿ Read 47 lines
188
+ ⏺ Edit(apps/web/src/app/sitemap.ts)
189
+ ⎿ Updated apps/web/src/app/sitemap.ts
190
+ ✓ id 2017 — applied in 47s
191
+ Removed 3 auth routes from sitemap.xml
192
+
193
+ [2/2] · id 2018 · meta · medium
194
+
195
+ ⊘ id 2176 — declined: keyword "3/0" is off-strategy for our domain
196
+
197
+ Done · ✓ 2/3 applied · 1 declined (elapsed: 2m 14s)
164
198
  ```
165
199
 
166
- > Prefer the shorter `seoagent <cmd>` form? Install globally once:
167
- > `npm install -g @seoagent-official/seoagent`. After that, bare `seoagent <cmd>` works in any directory.
200
+ Three things to notice:
201
+
202
+ 1. **No copy-paste step.** Other "agentic SEO" tools (Hado SEO's *SEO Trace*, etc.) emit paste-ready prompts you shuttle into Lovable/Cursor/Bolt yourself. `seoagent process` runs the action end-to-end via the [Claude Agent SDK](https://github.com/anthropics/claude-agent-sdk-typescript) — agent reads the action, edits the files, verifies, closes the action server-side. No copy-paste.
203
+ 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
+ 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
+
206
+ ## CLI Commands (all 19)
207
+
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>`.
209
+
210
+ **Setup + lifecycle**
211
+
212
+ | Command | What it does |
213
+ |---|---|
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. |
215
+ | `login` | Connect this CLI to seoagent.com (browser OAuth flow). Free dashboard access; required for `sync` / `process` / `ack` / paid features. |
216
+ | `logout` | Clear stored credentials. |
217
+ | `uninstall` | Remove `.seoagent/`, the skill, and the sync hook. `--global` also wipes the login session and cache. |
218
+
219
+ **The autopilot loop**
220
+
221
+ | Command | What it does |
222
+ |---|---|
223
+ | `sync` | Two-way sync with the dashboard: pushes local `.seoagent/` artifacts up + pulls new pending actions down to `.seoagent/inbox/`. Push-only via `--push-only`. Pull-only via `seoagent pull`. Also flushes any offline-queued acks. |
224
+ | `pull` | Pull-only sync (no push). Useful when you want fresh inbox state without uploading edits. Also supports `--print <path>` to dump a single cloud artifact to stdout. |
225
+ | `inbox` | List pending actions with id, category, severity, and (when the server emits them) priority + impact + effort badges. `--json` for scripting. |
226
+ | `process` | The executive function: pick pending actions + run them end-to-end via the Claude Agent SDK. Streams Claude-Code-style narration (tool bullets, result previews, markdown). `--yes` for CI; `--model <name>` to override. |
227
+ | `ack [<id>]` | Mark an action settled server-side. With no id, opens an interactive picker. `--failed --reason "<text>"` to decline. Survives network blips via the offline ack queue. |
228
+ | `autopilot <on\|off\|status>` | Toggle the cloud-side autopilot mode (whether the dashboard actively queues actions). |
229
+
230
+ **Inspection + diagnostics**
231
+
232
+ | Command | What it does |
233
+ |---|---|
234
+ | `status` | Boxed summary of project state: account, audit, strategy, briefs, content, roadmap. Zero-network. |
235
+ | `whoami` | Show the currently logged-in account. |
236
+ | `env-check` | Detect image generation provider (`OPENAI_API_KEY` / `FAL_KEY` / `REPLICATE_API_TOKEN`). |
237
+ | `menu` | Interactive launcher — pick a command from a list when you don't remember the name. |
238
+
239
+ **Research + content**
240
+
241
+ | Command | What it does |
242
+ |---|---|
243
+ | `keywords --peek "<kw>"` | Free single-keyword DataForSEO peek (no login, daily quota per install). |
244
+ | `keywords` | Enrich your existing keyword inventory with real search volume + difficulty. `--discover` finds new targets; `--competitors` shows the gap (paid). |
245
+ | `internal-links` | Generate internal-linking recommendations from your existing pages + topic clusters. |
246
+ | `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. |
247
+ | `generate-image` | Generate hero / inline images via the detected provider (BYO API key). |
248
+
249
+ **Account**
250
+
251
+ | Command | What it does |
252
+ |---|---|
253
+ | `upgrade` | Open the seoagent.com pricing page. |
168
254
 
169
255
  ## Auto-Sync Hook
170
256
 
171
- `init` writes a `PostToolUse` hook to `.claude/settings.json` so every Write/Edit to `.seoagent/` triggers `npx @seoagent-official/seoagent sync` automatically. No-op when not logged in. Merges into existing settings without clobbering them.
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).
172
258
 
173
259
  ## SEOAgent Cloud
174
260