This is a submission for the GitHub Copilot CLI Challenge
✨ Updates (Jan 27)
Benchmark Profile & Production-Ready Features Added!
Since the challenge submission, I've added several major features that take SQL-Speak from demo to production-ready:
-
🏁 PostgreSQL Benchmark Profile (
--profile benchmark-postgres)- Safe for analytics workloads: SELECT-only enforcement, auto-applies LIMIT 100
- Shows EXPLAIN ANALYZE before execution to catch performance issues
- Real-world scenario: Query 10M+ row datasets safely from the terminal
-
📊 Built-in EXPLAIN ANALYZE Preview
- Validates query performance before running (no more accidental full-table scans!)
- Shows query plans to understand what's happening under the hood
-
🏗️ Data Generator for Benchmarking
- Generates 10M+ row realistic datasets with
python -m generator.cli - Tables: customers, products, orders, order_items, payments
- Perfect for stress-testing analytics queries
- Generates 10M+ row realistic datasets with
-
🔄 Multi-Turn Refinement Mode
- Ask follow-up questions to refine queries naturally
- Example: "Show revenue by country" → "Only completed payments" → "Top 5 by revenue"
Check the updated GitHub repo for full details and the new README!
What I Built
SQL-Speak is a terminal-native utility that bridges the gap between natural language and structured data. It leverages the GitHub Copilot CLI as an intelligent translation layer, allowing developers to query local databases (like SQLite) using plain English. Instead of context-switching to a heavy GUI or manually writing complex JOINs for a quick data check, you can simply "speak" to your database directly from the command line.
Demo
Source Code: https://github.com/jemiridaniel/SQL-Speak
Video Walkthrough: https://monosnap.ai/file/qdcGJmiFRoaegroJOc19X7uxwcZivV
My Experience with GitHub Copilot CLI
Building SQL-Speak highlighted the "agentic" power of the Copilot CLI. By integrating the new gh copilot -p agentic prompt syntax into the application's backend, I was able to transform vague natural language intents into precise SQL queries.
The CLI's ability to understand context made it possible to pass database schema hints into the prompt, ensuring the generated SQL was not just syntactically correct, but also contextually aware of my specific table structures. It turned the terminal from a static environment into a conversational data assistant.
Top comments (0)