Skip to main content
Each section below covers one subcommand, its flags, and what it prints.

geo init

Initialize project directories and database. Flags: None Creates db/, raw/, cache/, reports/ directories under the data root (default ./data). Initializes the SQLite schema at data/db/geo.sqlite3. Loads all brand YAML files, engines, and presets, printing a summary. Requires four environment variables: OPENROUTER_API_KEY, GOOGLE_WORKSPACE_CLI_CLIENT_ID, GOOGLE_WORKSPACE_CLI_CLIENT_SECRET, GOOGLE_ANALYTICS_REFRESH_TOKEN.

geo status

Show database and configuration status. Flags: None Prints the database path, file size, table row counts, last run per brand, and pending extraction count.

geo run

Run brand-visibility prompts. Prints the prompt/engine matrix, cost summary, and run ID on completion.

geo research run

Run evidence-grounded market and ICP research (five-stage frozen DAG). Prints the research run ID and artifact count.

geo extract

Extract mentions, citations, and sentiment from responses. Prints per-response mention/citation counts, total cost, and error count.

geo prompts

Manage generated prompt sets. Requires a subcommand.

geo prompts seed

Build GSC and brain seed corpus. Prints the number of seeds written.

geo prompts generate

Generate candidate prompts. When --operation-id is set, performs metered, token-authorized generation. When omitted (and --dry-run is set), uses the ambient brand config.

geo prompts curate

Fill the active prompt quotas. Prints the number of activated prompts and coverage matrix.

geo prompts discriminate

Run the adversarial critic loop. Prints approval rate, round count, and paraphrase count.

geo prompts relabel

Replace lexical topic labels with domain topics. Interactive: prompts for confirmation before applying.

geo prompts status

Show the prompt coverage matrix.

geo prompts add

Add a user-authored prompt. Prints the new prompt ID.

geo prompts edit

Edit a prompt’s fields. Prints the updated or archived-and-recreated prompt ID.

geo prompts archive

Deactivate a prompt.

geo prompts restore

Reactivate a prompt.

geo recs

List, inspect, and update recommendations. Requires a subcommand.

geo recs generate

Create a metered, idempotent recommendation batch. Prints the generated recommendations as JSON.

geo recs list

List recommendations for a brand. Prints a formatted table or JSON array.

geo recs show

Show a complete recommendation.

geo recs draft

Generate a draft comment for a Reddit recommendation. Prints the draft as JSON.

geo recs transition

Execute a CAS-guarded lifecycle transition.

geo recs mark

[DEPRECATED] Change recommendation status (maps to canonical transitions).

geo seo

Run deterministic SEO scoring, insights, and audits. Requires a subcommand.

geo seo score

Compute SEO score.

geo seo insights

Build SEO insights.

geo seo audit

Run a D4 SEO audit.

geo metrics

Compute daily visibility metrics. Prints row count, date slices, and calculation version.

geo report

Render Markdown and JSON reports. Prints the Markdown and JSON output file paths.

geo recommend

Generate evidence-grounded GEO recommendations.
geo recommend without --dry-run always fails by design. Recommendation creation has moved to the token-authorized geo recs generate command. Run geo recs generate --operation-id ... --idempotency-key ... instead.
When --dry-run is set, prints a gap analysis table with no side effects.

geo daily

Run the complete per-brand daily pipeline.

geo validate

Run GEO validation gates.

geo costs

Not implemented. This command is a stub that prints 'costs' not implemented and exits with code 2.