{"slug": "raleigh-s-open-data-one-command-to-find-anything", "title": "Raleigh's Open Data: One Command to Find Anything", "summary": "The City of Raleigh publishes 178 public datasets on data.raleighnc.gov, but most citizens never use them due to a discovery barrier. An AI agent built an open-source command-line tool called 'raleigh' that wraps the city's API, allowing users to easily search and query datasets such as dog parks and restaurant inspections.", "body_md": "The City of Raleigh publishes 178 public datasets. Crime reports, restaurant inspections, building permits, bike lanes, speed humps, EV charging stations, dog parks: it is all there on data.raleighnc.gov, free for anyone to use.\n\nMost citizens never touch it.\n\nThe barrier isn’t access. The barrier is discovery. The data lives behind an ArcGIS Hub portal, a web interface designed for GIS analysts. You can browse categories, click through maps, and eventually download a CSV, but the process assumes you already know what you are looking for.\n\nI pointed my AI agent at the portal and see what was actually in there. I am using [Hermes Agent](https://hermes-agent.nousresearch.com) (an open-source AI agent framework), and one of the things that makes it different is a saying we have: “Just ask Hermes.” It means the agent can discover, build, and ship tools without being walked through every step.\n\nThis was one of those moments. I pointed the agent at the URL, asked what was there, and it came back with something better than a summary: a command-line tool called `raleigh`\n\nthat wraps the city’s API. It’s open source, published at [git.brandyapple.com/magnus/agent-skills](https://git.brandyapple.com/magnus/agent-skills), zero dependencies, one file, ready to run.\n\n## 178 Datasets, 10 Categories[#](#178-datasets-10-categories)\n\nThe first thing we did was dump the full catalog. Every dataset the city publishes, listed in one table:\n\n```\nraleigh catalog\n```\n\nThat one command prints 178 rows: the full inventory of what Raleigh makes public. Transportation, public safety, property records, zoning, parks, food safety, government budgets, census data, environmental surveys. If the city tracks it, it is probably in here.\n\nFilter by category:\n\n```\nraleigh catalog --category \"Public Safety\"\n```\n\nThat gives you 16 datasets: police incidents (both NIBRS and SRS standards), fire incidents, EMS stations, code enforcement cases, communication infrastructure sites. Or search by keyword:\n\n```\nraleigh catalog --search bicycle\n```\n\nOne result: Existing Bicycle Infrastructure (Public). More on that in a minute.\n\nThe `categories`\n\ncommand gives you the bird’s eye view:\n\n## Data You Did Not Know the City Had[#](#data-you-did-not-know-the-city-had)\n\nThe dog park dataset is the kind of thing that makes open data suddenly feel useful. Every Raleigh dog park has 18 fields of structured data. Not just location and name: shade, bathroom availability, agility equipment, wood chips, small dog area, lights, benches, water fountains. The city tracks whether each park has a climbing platform.\n\nWant to find what you need? Try this:\n\n```\nraleigh query \"Raleigh Dog Parks\" --where \"SHADE='Yes'\"\n```\n\nThat gives you six parks. Out of 12 total, exactly half have shade. Add small dog area and you narrow it further:\n\n```\nraleigh query \"Raleigh Dog Parks\" --where \"BATHROOM='Yes' AND WOOD_CHIPS='Yes'\"\n```\n\nSeven parks. Millbrook-Exchange even has agility equipment. If you own a dog in Raleigh, this data tells you which park to visit before you leave the house.\n\n## The Restaurant Scores No One Talks About[#](#the-restaurant-scores-no-one-talks-about)\n\nWake County publishes every restaurant inspection score. The data is public. Most people do not know how to find it, or that it even exists. The command is dead simple:\n\n```\nraleigh info \"Food Inspections\"\n```\n\nEight fields per record: score, date, inspector, description, type, permit ID. Everything is timestamped.\n\nThe worst recent score in the past 30 days? You can find it by joining the inspections table to the restaurants table by HSISID:\n\n```\nraleigh query \"Food Inspections\" --where \"SCORE<85\" --order-by \"SCORE ASC\" --limit 3\n```\n\nFlavor Hills got an 82 on their most recent inspection. The inspector’s notes tell the story: no sanitizer test kit available, dish machine not reaching 50ppm chlorine, and a menu item (salmon) marked with a consumer advisory asterisk that didn’t have the required Parasite Destruction Letter on file. The inspector offered to come back within 10 business days for a re-inspection.\n\nThe historic record is worse. When you go back further:\n\n```\nraleigh query \"Food Inspections\" --where \"SCORE<70\"\n```\n\nRestaurants with scores of zero include a Costco food court in Apex (2019, 2020), Dillard Drive Middle School’s cafeteria in Raleigh (2022), and Middle Creek Elementary’s cafeteria in Apex (2023). The notes range from “Serv Safe: 0” to “Keep refrigerators locked when not here. Rewash.”\n\nThis is the kind of data that the county collects, stores, and makes public but that most citizens never see. Through a CLI, finding the worst inspection in the past month is two commands and a join.\n\n## Your Neighbor Just Got a Building Permit[#](#your-neighbor-just-got-a-building-permit)\n\nThe building permits dataset has 83 fields per record. Permit type, work class, proposed work description, estimated project cost, applied date, issued date, contractor, county account number, land use code.\n\nWe sorted by newest first:\n\n```\nraleigh query \"Building Permits Issued Past 180 Days\" --limit 5 --order-by \"issueddate DESC\"\n```\n\nThe most recent permit in the database? Issued June 9, 2026. Less than three days ago. A restaurant converting its drink bar to a sushi bar downtown. $4.7 million in estimated project cost. The permit before that: a kitchen remodel and new ceiling light in a family home, issued the same day.\n\nData that fresh changes how you think about city government. You aren’t reading quarterly reports. You are reading individual decisions, days old, with cost estimates and contractor names.\n\n## Bike Lanes, Speed Humps, and EV Chargers[#](#bike-lanes-speed-humps-and-ev-chargers)\n\nThe transportation category covers more than you would expect from a city government portal. Bike infrastructure with installation years going back to 2017:\n\n```\nraleigh query \"Existing Bicycle Infrastructure (Public)\" --limit 3 --json\n```\n\nEach record includes the facility type (sharrow, bike lane, separated lane, sidepath), the start and end points, and the year it was installed. The 2025 Comprehensive Network Category is tracked per segment. This is how you measure whether the city is actually building what it promised.\n\nSpeed humps are mapped by street. EV charging stations show availability status: AVBL (available) or TMPU (temporarily unavailable). The city center deck downtown has both an available and a temporarily unavailable station, which is useful to know before you drive there.\n\n## Download It All[#](#download-it-all)\n\nEvery dataset can be exported to CSV, JSON, or GeoJSON. The GeoJSON includes lat/lng coordinates, so you can drop the data directly into QGIS, Observable, or any mapping tool:\n\n```\nraleigh download \"Raleigh Dog Parks\" -f geojson -o dog-parks.geojson\nraleigh download \"Food Inspections\" --where \"SCORE<70\" -f csv -o bad-inspections.csv\n```\n\nThe first command downloads all 12 dog parks with geometry. The second exports 19 bad inspection records to a CSV you can open in any spreadsheet.\n\n## How It Works[#](#how-it-works)\n\nThe `raleigh`\n\nCLI is a single Python file, standard library only. It talks to the same ArcGIS REST API that powers the city’s data portal: the public endpoint, no API key required. Query a FeatureServer dataset (dog parks, bike lanes, building permits), it uses GeoJSON with full geometry. Query a MapServer table (food inspections), it detects the server type and switches to JSON with attribute format transparently. You never need to know which one you are querying.\n\nThe dataset catalog of all 178 services is embedded in the script. The city publishes its data through two content groups in ArcGIS Online, and the tool searches both. If you ever wonder whether a piece of data exists, `raleigh search`\n\nwill tell you instantly.\n\n## Open Source[#](#open-source)\n\nYou can find the tool at [git.brandyapple.com/magnus/agent-skills](https://git.brandyapple.com/magnus/agent-skills) under the `raleigh`\n\nskill directory. Or just grab the local install, one file, Python 3.8 or later, zero dependencies. Clone the repo and symlink the script into your PATH, or run it directly from the skill directory.\n\nThe dataset catalog itself is open data, too. All 178 service URLs and layer IDs were extracted from the city’s own ArcGIS Hub search API, which returns everything the city has chosen to share publicly. If a dataset stops working, the API will tell us, and the fix is a one-line change to the embedded catalog.\n\nTry `raleigh catalog`\n\nand see what you find. The city already paid for the data.", "url": "https://wpnews.pro/news/raleigh-s-open-data-one-command-to-find-anything", "canonical_source": "https://magnus919.com/2026/06/raleighs-open-data-one-command-to-find-anything/", "published_at": "2026-06-12 04:59:50+00:00", "updated_at": "2026-07-10 14:46:37.663525+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools"], "entities": ["City of Raleigh", "Hermes Agent", "Nous Research", "ArcGIS Hub", "Wake County"], "alternates": {"html": "https://wpnews.pro/news/raleigh-s-open-data-one-command-to-find-anything", "markdown": "https://wpnews.pro/news/raleigh-s-open-data-one-command-to-find-anything.md", "text": "https://wpnews.pro/news/raleigh-s-open-data-one-command-to-find-anything.txt", "jsonld": "https://wpnews.pro/news/raleigh-s-open-data-one-command-to-find-anything.jsonld"}}