{"slug": "geosql-a-claude-codex-skill-for-geospatial-data", "title": "Geosql: A Claude/Codex skill for geospatial data", "summary": "Dekart released GeoSQL, an open-source skill for Claude, Codex, and GitHub Copilot that enables data scientists and analysts to work with geospatial data on PostGIS, BigQuery, Snowflake, and Wherobots. The tool runs 100% locally or self-hosted, uses a map-in-the-loop agent to achieve a 4x improvement on geospatial tasks, and includes cost guardrails for BigQuery. GeoSQL is available via pip and plugin installation.", "body_md": "Claude, Codex, and GitHub Copilot skill for data scientists and analysts working with geospatial data on PostGIS, BigQuery, Snowflake, and Wherobots.\n\nNote: No SaaS account needed. Works 100% locally or self-hosted.\n\n4x improvement on geospatial tasks with map in the loop.\n\nWith Python (interactive mode):\n\n```\npip install geosql && geosql\n```\n\nInstall directly into a supported agent:\n\n```\ngeosql install claude\ngeosql install codex\ngeosql install copilot\n```\n\nOr in Claude Code:\n\n```\n/plugin marketplace add dekart-xyz/geosql\n/plugin install geosql\n```\n\nAfter `geosql install copilot`\n\n, use GeoSQL from VS Code Copilot or Copilot CLI with prompts such as:\n\n```\n/geosql Show EV charger density along major roads and render a map\n```\n\nGeoSQL optionally uses [Dekart](https://github.com/dekart-xyz/dekart): an open-source Kepler.gl backend with connectors for PostGIS, BigQuery, and Snowflake. You can run Dekart locally with one docker command, [self-host](https://dekart.xyz/docs/self-hosting/docker/) it on your own infrastructure, or use Dekart Cloud.\n\nRun Dekart locally (skip this step to use [Dekart Cloud](https://cloud.dekart.xyz?ref=geosql-github)):\n\n```\ndocker run -p 8080:8080 dekartxyz/dekart\n```\n\nInstall the Dekart CLI:\n\n```\npip install dekart && dekart init\n```\n\nFollow CLI and dekart prompts to connect your PostGIS, BigQuery, Snowflake or Wherobots database.\n\nReal estate analysis:\n\n```\n/geosql Show buildings with low school accessibility in Ottawa, render as a map\n```\n\nSite selection:\n\n```\n/geosql Find the top 10 locations for Sporting Goods Store in Seattle based on POI co-location and distance to the nearest competitor. Create a map.\n```\n\nEV charging infrastructure:\n\n```\n/geosql create map EV charger density along major Romanian roads, highlighting how many charging stations are within 5 km of each motorway, trunk, or primary road segment.\n```\n\nGeoSQL runs an agent loop with a map in it.\n\n**Discovery.** The skill explores your warehouse metadata (tables, columns, types) instead of guessing schemas. Works with Overture Maps shares on BigQuery and Snowflake, and your private tables on PostGIS, BigQuery, Snowflake, or Wherobots.**SQL.** The agent writes spatial SQL using the right functions for your engine (`ST_INTERSECTS`\n\n,`ST_DISTANCE`\n\n, H3, bbox overlap for partition pruning, and so on).**Cost check.** On BigQuery, every query is dry-run first to estimate bytes scanned. A 10 GiB billing cap is enforced by default. Over-budget queries get rewritten cheaper (tighter bbox, lower H3 resolution, more filters) instead of executed.**Geometry validation.** The agent computes total area (polygons) or total length (lines) as a sanity check, and cross-checks against domain knowledge.**Map feedback.** When available, the agent renders the result through Dekart, looks at the rendered image, and corrects geometry mistakes the text-only loop would miss. This is the loop that gets the 4x improvement.\n\nThe skill uses your local CLI authentication (`bq`\n\n, `snow`\n\n, `dekart`\n\n), so warehouse credentials never go to the agent.\n\nGeoSQL ships with a reproducible eval suite under `evals/`\n\n. Each case asserts specific behaviors (cost guardrails, validation steps, correct result), not just \"did the agent answer.\"\n\nCurrent results on the included suite:\n\n| Case | Assertions | Pass rate |\n|---|---|---|\n`london-boroughs` |\n4 | 100% |\n`berlin-create-map` |\n3 | 100% |\n`paris-boundaries` |\n1 | 100% |\nTotal |\n8 |\n100% |\n\nAverage: 3,085 tokens per turn, 72 s duration per turn.\n\nThe **4x improvement** chart above compares the same task set with and without the map-in-loop step. Without maps, the agent's text-only validation misses geometry-class errors (mistaking a neighborhood polygon for a metro-area perimeter, double-counting overlapping features, picking the wrong join key on coordinate-reference systems). Adding the rendered map as a tool call lets the agent see those mistakes and self-correct.\n\nRun the suite yourself:\n\n```\npython evals/run.py\n```\n\nSee `evals/RUNBOOK.md`\n\nfor setup and how to add new cases. PRs with new evals welcome.", "url": "https://wpnews.pro/news/geosql-a-claude-codex-skill-for-geospatial-data", "canonical_source": "https://github.com/dekart-xyz/geosql", "published_at": "2026-07-08 08:37:26+00:00", "updated_at": "2026-07-08 09:00:15.269092+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "large-language-models", "generative-ai"], "entities": ["Dekart", "Claude", "Codex", "GitHub Copilot", "PostGIS", "BigQuery", "Snowflake", "Wherobots"], "alternates": {"html": "https://wpnews.pro/news/geosql-a-claude-codex-skill-for-geospatial-data", "markdown": "https://wpnews.pro/news/geosql-a-claude-codex-skill-for-geospatial-data.md", "text": "https://wpnews.pro/news/geosql-a-claude-codex-skill-for-geospatial-data.txt", "jsonld": "https://wpnews.pro/news/geosql-a-claude-codex-skill-for-geospatial-data.jsonld"}}