selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GeoLook logo

Self-host GeoLook

v0.2.0

Open-source GEO platform for AI search visibility

BetaOpen SourceMIT
Updated2 months ago
LanguagePython
Setup difficultyModerate
Stars
789
Port
8765 (Local dashboard HTTP server)
Install with macOS
Product demo showing the GeoLook dashboard in actionEngines overview page showing mention rates across 17 AI enginesSample library with browsable AI answer metadata and citation breakdownFour-layer site audit (Access → Orientation → Understanding → Quotability)Channel map of 19 channels weighted by real citation-corpus dataAction plan with structured tickets, risk grades, and progress barsContent workbench with topic pool, citability pre-check, and distribution checklistPublishing channels page with GitHub, WordPress, WeChat, webhook, X, and Reddit integrations

What is GeoLook?

GeoLook is an open-source, self-hosted platform for end-to-end Generative Engine Optimization. It helps brands understand and improve how AI engines mention and cite them when answering user questions. The platform runs locally on macOS or Linux with Python 3.9+ and three dependencies, storing all data as plain files. It covers 17 engines across Chinese and global markets, sampling real answers to measure mention rate, rank, and citation share. A four-layer site audit diagnoses why engines may not cite a brand, including robots.txt parsing, WAF/CDN probing with real AI-crawler user agents, and passage-level quotability checks. The Action stage creates implementation tickets with acceptance criteria and risk grades, a content workbench with citability pre-checks, and deployable assets like llms.txt and JSON-LD. Publishing integrations cover several channels for content distribution. Results are auto-verified by re-crawling and next sampling rounds. A Chrome sampling assistant helps with engines lacking APIs. The project is MIT-licensed with no external database or service dependencies, using a local HTTP server on port 8765.

Should you self-host GeoLook?

GeoLook scores 51/100 on selfhost.directory (how scoring works) and ranks #26 of 41 in Search Engines. It has 789 GitHub stars.

It shipped 1 stable release in the past year. The latest, v0.2.0, came out on 8 August 2026.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is SearXNG (86/100, 38 940 stars). It scores higher overall, so compare the two before you pick. See GeoLook vs SearXNG side by side.

Features

  • Auto-verification
  • Brand mention distribution analysis
  • Channel map with 19 channels
  • Chrome sampling assistant
  • Client delivery package
  • Content workbench with citability pre-check
  • Deployable assets generation
  • Four-layer site audit
  • Implementation tickets with acceptance criteria
  • Keyword mining from search demand
  • Multi-channel publishing
  • Multi-engine AI mention tracking
  • Passage-level quotability analysis
  • Sample library with human correction
  • Scheduled re-runs and multi-brand support

GeoLook README

How to install GeoLook

Install GeoLook with macOS

macOS

./scripts/service.sh install

Registers dashboard as a standing service that starts at login, restarts on crash, survives closing every terminal

How to configure GeoLook

  • ANTHROPIC_API_KEYAnthropic Claude API key for global engine sampling

    Anthropic Claude API key for global engine sampling

  • ARK_API_KEYVolcengine Ark (Doubao) API key for Chinese engine sampling

    Volcengine Ark (Doubao) API key for Chinese engine sampling

  • DEEPSEEK_API_KEYDeepSeek API key for Chinese engine sampling

    DeepSeek API key for Chinese engine sampling

  • GEMINI_API_KEYGoogle Gemini API key for global engine sampling

    Google Gemini API key for global engine sampling

  • GEOLOOK_HOST127.0.0.1Bind address for dashboard server (default 127.0.0.1, set to 0.0.0.0 for public access)

    Bind address for dashboard server (default 127.0.0.1, set to 0.0.0.0 for public access)

  • GEOLOOK_TOKENAccess token for public dashboard deployment (required when GEOLOOK_HOST=0.0.0.0)

    Access token for public dashboard deployment (required when GEOLOOK_HOST=0.0.0.0)

  • GITHUB_TOKENGitHub token for publishing to GitHub

    GitHub token for publishing to GitHub

  • MINIMAX_API_KEYMiniMax API key for Chinese engine sampling

    MiniMax API key for Chinese engine sampling

  • MOONSHOT_API_KEYMoonshot (Kimi) API key for Chinese engine sampling

    Moonshot (Kimi) API key for Chinese engine sampling

  • OPENAI_API_KEYOpenAI API key for global engine sampling

    OpenAI API key for global engine sampling

  • PERPLEXITY_API_KEYPerplexity API key for global engine sampling

    Perplexity API key for global engine sampling

  • PUBLISH_WEBHOOK_URLWebhook URL for custom publishing channel

    Webhook URL for custom publishing channel

  • WECHAT_APPIDWeChat Official Account AppID for publishing drafts

    WeChat Official Account AppID for publishing drafts

  • WECHAT_APPSECRETWeChat Official Account AppSecret for publishing drafts

    WeChat Official Account AppSecret for publishing drafts

  • WP_APP_PASSWORDWordPress application password for publishing drafts

    WordPress application password for publishing drafts

  • WP_USERWordPress username for publishing drafts

    WordPress username for publishing drafts

  • XAI_API_KEYxAI Grok API key for global engine sampling

    xAI Grok API key for global engine sampling

  • ZHIPUAI_API_KEYZhipu AI (GLM) API key for Chinese engine sampling

    Zhipu AI (GLM) API key for Chinese engine sampling

GeoLook releases & version history

FAQ

AI answers differ every time — how can sampling results be stable?

GeoLook never reads a single answer as a metric. Stability comes from aggregation over dozens of questions × multiple engines, fixed variables (pinned sampling models, fixed question bank), repeat rounds (sampling each question multiple times), and attribution discipline (only two consecutive rounds moving the same way count as a trend; ticket verification relies on deterministic re-crawling rather than sampling alone).

More in Search Engines

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…