Releases: shadowresearch/auto-geo
Release list
v0.8.4
What's Changed
- fix: v0.8.4 — drop stale pnpm-workspace.yaml so the binaries job builds by @jessen-shadow in #61
Full Changelog: v0.8.3...v0.8.4
v0.8.3
What's Changed
- feat: v0.8.3 — standalone binaries on every release by @jessen-shadow in #60
Full Changelog: v0.8.2...v0.8.3
v0.8.2 — outcome-oriented tagline
New tagline across README, npm, the docs site, and the repo: The open-source GEO engine that gets your brand mentioned in ChatGPT, Claude, Gemini, Perplexity, and Grok.
v0.8.1 — install-first docs + new docs site
Docs-only release.
- README and every command guide now lead with
npm i -g auto-geo— no morenpxprefix on every command (npx auto-geo@latestremains the documented one-shot alternative). - Docs site rebuilt on just-the-docs: sidebar navigation, built-in search, clean landing page → https://shadowresearch.github.io/auto-geo/
v0.8.0 — prompts discover: let the engine propose your prompt set
New: auto-geo prompts discover — LLM-assisted prompt discovery.
The hard part of a GEO program is knowing which questions to compete for. discover proposes them: it fetches your homepage for grounding, looks at what you already track, and generates N new high-intent queries your domain should be the cited answer for.
auto-geo prompts discover --dry-run # preview the proposals
auto-geo prompts discover --count 15 # append 15- Append-only, dedupe-always — never overwrites existing prompts; duplicates (case-insensitive) are skipped and reported.
--count/--domain/--provider/--model/--dry-run/--json; defaults resolve from config + env likewrite.- Failed homepage fetch degrades gracefully to domain-only context.
Full details in the CHANGELOG.
v0.7.1 — env template key labels + hermetic tests
.env.localscaffold now labelsOPENAI_API_KEY/ANTHROPIC_API_KEYas serving write, fix, and check (they were labeled generation-only; Perplexity/Gemini/xAI keys are check-only).- Test suite is now hermetic — a developer's own
auto-geo.config.json/.auto-geo/above the clone can no longer leak into test assertions.
Full details in the CHANGELOG.
v0.7.0 — CLI-only GEO engine: tracked prompts + check history
auto-geo is now CLI-only — a complete, file-based GEO engine.
BREAKING — library surface removed
All package exports are gone (auto-geo, /schema, /react, /next, /hono, /cloudflare, /storage/*, MCP server, examples, openapi.yaml). The package ships exactly one thing: the auto-geo binary — 23 files, 516 kB. Library users: pin auto-geo@0.6.3.
The .auto-geo/ workspace
auto-geo prompts add/list/rm— tracked prompts in.auto-geo/prompts.txt(plain text, committable)auto-geo checkruns your tracked prompts by default and auto-saves every run to.auto-geo/checks/(--no-saveto opt out)auto-geo history— citation coverage over time: per-engine ↑/↓ trends + newly-cited / lost prompts since the last runauto-geo initsets up the full system — config +.env.local+ workspace — and seeds your tracked prompts interactively
The loop
npm i -g auto-geo
auto-geo init # set up once
auto-geo doctor # audit a page
auto-geo write # generate pages from queries
auto-geo fix # rewrite an existing page
auto-geo check # measure citations (saved to history)
auto-geo history # watch coverage move
Full details in the CHANGELOG.
v0.6.3 — auto-load .env.local / .env from cwd
Closes the loop on `auto-geo init` (v0.6.0). That command scaffolds a `.env.local` file with empty API-key slots — but until now the CLI only read keys from `process.env`. Users had to source the file themselves before `auto-geo write` would see their keys.
Now every command runs the env loader at startup:
```bash
auto-geo init # scaffold auto-geo.config.json + .env.local
vim .env.local # fill in OPENAI_API_KEY etc.
auto-geo write # just works
```
Behavior
- Walks up from cwd looking for `.env.local` and `.env` (same pattern as `loadConfig`). Monorepo subdirs inherit a workspace-root `.env`.
- `.env.local` takes precedence over `.env` on key conflicts.
- Process env always wins. Existing `process.env` keys are never overwritten — production / CI vars stay authoritative.
- Parser supports: `KEY=value`, `KEY="value"`, `KEY='value'`, `export KEY=value`, `#` comments (line and trailing-on-unquoted), values may contain `=`.
Notes
- No new dependencies (~30-line parser).
- No new flags. On by default; to opt out, run from a directory without `.env.local` / `.env`.
Install
```bash
rm -rf ~/.npm/_npx
npx auto-geo@0.6.3 init
```
Full Changelog: v0.6.2...v0.6.3
v0.6.2 — modernize default models (latest-3-per-provider policy)
v0.6.1's gpt-4o default still under-wrote `resourcePublishSchema`'s word windows in real use — same failure mode as gpt-4o-mini, just with smaller deltas. The 4o family is structurally weak at instruction-following on tight schemas.
New policy: defaults stay within the latest three model generations per provider. No `gpt-4o*` or `claude-3-5-*` references in defaults, cost tables, or help text.
Changed
- Default OpenAI model: `gpt-4o` → `gpt-5.4` (March 2026; current full tier with mini/nano siblings).
- Default Anthropic model: unchanged — `claude-sonnet-4-6`.
- Cost tables narrowed:
- OpenAI: `gpt-5.5`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.2`
- Anthropic: `claude-opus-4-8`, `claude-sonnet-4-6`, `claude-haiku-4-5` + family-prefix fallbacks
- Help text in `write --help` and `fix --help` updated to reflect new defaults.
Users pinning an older model via `--model` still work — the cost estimate falls through to the provider-default rate. Their actual bill is unaffected (the estimate is advisory).
Install
```bash
npm i -g auto-geo@0.6.2
or
rm -rf ~/.npm/_npx
npx auto-geo@0.6.2 write --query "best generative engine optimization tools"
```
Full Changelog: v0.6.1...v0.6.2
v0.6.1 — write defaults that actually work
The reliability follow-up to v0.6.0. After the schema layer was unblocked, the next layer of failure surfaced: default `write` invocations with `gpt-4o-mini` consistently failed validation because the model under-writes the soft-content windows (40-60 word TL;DR / capsules / FAQ answers, 10-35 word takeaways) and the retry loop couldn't recover.
Changed
- Default OpenAI model: `gpt-4o-mini` → `gpt-4o`. Mini cannot hold the schema's word windows. Cost goes
10× per page ($0.01 → ~$0.10); correctness goes from ~0% → ~100% on default invocations. Override with `--model gpt-4o-mini` or pin it in your config to opt back in. - Default `maxRetries`: 2 → 3 for `write` / `fix`. Cheap insurance — combined with the new coaching most retries now fix the issue rather than echoing it.
Added
-
Actionable retry coaching. `formatIssues` now appends a concrete rewrite instruction to each issue in the self-correction prompt:
```
[tldr.text] TL;DR must be 40-60 words; got 31.
→ expand by 9-29 words
```Live for word ranges (the failure mode users actually hit). Character-range and item-count patterns wired up for future schema messages that carry a `; got K` suffix.
Test coverage
523 → 530 tests (+7): coaching transformer for too-short / too-long word ranges, characters, items, fall-through to raw message, no-op when `got` is inside the range.
Migration
Users explicitly pinning `--model gpt-4o-mini` keep their behavior. Users on defaults get reliability at higher per-page cost (still <$0.10 per page).
Install
```bash
npm i -g auto-geo@0.6.1
or
npx auto-geo@0.6.1 write --query "best generative engine optimization tools"
```
Full Changelog: v0.6.0...v0.6.1