{"id":50694427,"url":"https://github.com/velocitatem/citypilot","last_synced_at":"2026-06-13T09:01:00.134Z","repository":{"id":362995133,"uuid":"1261532507","full_name":"velocitatem/citypilot","owner":"velocitatem","description":"We put the smarts in smart cities.","archived":false,"fork":false,"pushed_at":"2026-06-07T09:44:23.000Z","size":5895,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T05:35:54.755Z","etag":null,"topics":["ai","copilot","data-science","sandbox","smart-city"],"latest_commit_sha":null,"homepage":"https://citypilot.up.railway.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/velocitatem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-06T20:20:55.000Z","updated_at":"2026-06-07T09:44:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/velocitatem/citypilot","commit_stats":null,"previous_names":["velocitatem/citypilot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/velocitatem/citypilot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velocitatem%2Fcitypilot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velocitatem%2Fcitypilot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velocitatem%2Fcitypilot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velocitatem%2Fcitypilot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/velocitatem","download_url":"https://codeload.github.com/velocitatem/citypilot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velocitatem%2Fcitypilot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34139178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","copilot","data-science","sandbox","smart-city"],"created_at":"2026-06-09T05:32:34.790Z","updated_at":"2026-06-10T06:00:36.460Z","avatar_url":"https://github.com/velocitatem.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](./banner.png)\n\n![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=flat-square\u0026logo=fastapi\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-61DAFB?style=flat-square\u0026logo=react\u0026logoColor=black)\n![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white)\n![Vite](https://img.shields.io/badge/Vite-646CFF?style=flat-square\u0026logo=vite\u0026logoColor=white)\n![Celery](https://img.shields.io/badge/Celery-37814A?style=flat-square\u0026logo=celery\u0026logoColor=white)\n![Redis](https://img.shields.io/badge/Redis-FF4438?style=flat-square\u0026logo=redis\u0026logoColor=white)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-4169E1?style=flat-square\u0026logo=postgresql\u0026logoColor=white)\n![DuckDB](https://img.shields.io/badge/DuckDB-FFF000?style=flat-square\u0026logo=duckdb\u0026logoColor=black)\n![LangChain](https://img.shields.io/badge/LangChain-1C3C3C?style=flat-square\u0026logo=langchain\u0026logoColor=white)\n![OpenAI](https://img.shields.io/badge/OpenAI-412991?style=flat-square\u0026logo=openai\u0026logoColor=white)\n![Qdrant](https://img.shields.io/badge/Qdrant-FF5533?style=flat-square\u0026logo=qdrant\u0026logoColor=white)\n![MinIO](https://img.shields.io/badge/MinIO-C72E49?style=flat-square\u0026logo=minio\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white)\n![Python](https://img.shields.io/badge/Python-3776AB?style=flat-square\u0026logo=python\u0026logoColor=white)\n\nAgora is a conversational agent for anyone who works with urban data but does not want to live inside terminals, dashboards, or log systems. It turns city data into answers, briefings, maps, comparisons, and decisions — in plain language.\n\n## Who it is for\n\n**Policymakers** who need to justify decisions with evidence, compare options, and produce briefings for stakeholders — without touching a GIS tool or writing a SQL query.\n\n**City administrators** who need to understand what is happening across departments, track service delivery, and flag problems before they escalate.\n\n**Urban planners** who need to combine land use, transport, demographics, and environment data to model scenarios and assess impact.\n\n**Researchers and analysts** who need to explore city datasets, run cross-domain queries, and produce summaries quickly.\n\n**Journalists and civic advocates** who want to ask hard questions about public data and get answers they can verify and cite.\n\n**Citizens** who want to understand what their city is doing and why.\n\nThe common thread: they all have questions about the city. Agora answers them.\n\n## The problem it solves\n\nWorking with city data today is slow, manual, and fragmented — spreadsheets, GIS platforms, departmental reports, consultation documents, and budget tables that do not talk to each other. Getting a single coherent answer often takes days of coordination across teams.\n\nAgora collapses that into a single interface.\n\n## What policymakers can do with it\n\n### Policy briefing\n\nAsk a question like:\n\n\u003e \"Why are bus delays increasing in the eastern districts and what are our options?\"\n\nGet back: what changed, where, likely causes, affected groups, historical trend, policy options with cost/risk/impact tradeoffs, evidence sources, and gaps in the data.\n\n### Spatial analysis\n\nAsk:\n\n\u003e \"Which districts combine high elderly population, poor clinic access, high heat exposure, and low public transport coverage?\"\n\nAgora joins geospatial, demographic, health, transport, and climate layers to produce a ranked, mappable answer — without requiring the policymaker to touch a GIS tool.\n\n### Public consultation summarizer\n\nGiven a set of consultation submissions, Agora surfaces:\n\n- Main public concerns\n- Recurring objections\n- Stakeholder groups and their positions\n- Regional differences in sentiment\n- Issues flagged repeatedly by citizens\n\nThis compresses weeks of manual review into minutes.\n\n### Policy option comparison\n\nAsk:\n\n\u003e \"Compare congestion pricing, bus priority lanes, and dynamic parking pricing for reducing traffic in the central business district.\"\n\nGet a structured comparison of impact, cost, risk, timeframe, and political difficulty — with the assumptions made explicit so they can be challenged.\n\n### Budget prioritization\n\nAsk:\n\n\u003e \"If we have a fixed budget for district-level climate resilience, where should we invest first?\"\n\nAgora ranks candidate projects by vulnerability, exposure, cost, implementation time, equity impact, and maintenance burden.\n\n### Document and regulatory review\n\nAsk questions across long policy documents:\n\n\u003e \"What changed between the 2024 and 2025 version of this proposal?\"\n\u003e \"Which stakeholders objected to this clause?\"\n\u003e \"What are the implementation risks?\"\n\n## Architecture\n\nAgora is built on the **dstack** — a personal hackathon-grade tech stack designed for fast deployment of full-featured web applications.\n\n- **Backend**: FastAPI (Python)\n- **Frontend**: Vite SPA\n- **Task queue**: Celery + Redis\n- **Database**: PostgreSQL\n- **Object storage**: MinIO (S3-compatible)\n- **Agent sandbox**: Daytona (isolated code execution per session)\n- **Deployment**: Railway (fully Dockerized)\n\nThe agent runs as a background worker job with its own isolated execution environment. Each session gets a sandboxed copy of the relevant data, filtered by access rules before it reaches the agent. This means even an adversarial instruction to the agent cannot surface data it was not given — isolation is at the infrastructure layer, not the prompt layer.\n\n## Live deployment\n\nhttps://citypilot.up.railway.app\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelocitatem%2Fcitypilot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvelocitatem%2Fcitypilot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelocitatem%2Fcitypilot/lists"}