@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 +101 -15
- package/index.js +103 -63
- package/package.json +24 -3
- package/skills/references/open-knowledge-format.md +74 -0
- package/skills/seoagent.md +17 -1
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
|
-
##
|
|
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
|
-
|
|
172
|
+
What that looks like in your terminal:
|
|
152
173
|
|
|
153
174
|
```bash
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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
|
-
|
|
167
|
-
|
|
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.
|
|
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
|
|