A Chrome extension for automatically tracking and managing your Azure Data Explorer (Kusto) queries, with AI-powered summaries.
Kuery automatically captures and stores your Azure Data Explorer queries in a local SQLite database whenever you run them. It provides:
- Query History: Automatically saves all successful queries with metadata (database, cluster, run count, timestamps)
- AI-Powered Descriptions: Generates concise descriptions for your queries using OpenAI GPT-4.1, powered by GitHub Models
- Query Management: Star useful queries, edit descriptions, delete queries, and view detailed query information
- Data Export/Import: Export your query database or import from other devices
- Node.js 18+ and npm
- Clone the repository:
git clone https://github.com/timrogers/kuery.git
- Install dependencies:
npm install
- Build the extension:
npm run build
- Load the extension in Chrome:
- Open Chrome and go to
chrome://extensions/
- Enable "Developer mode" (toggle in top right)
- Click "Load unpacked" and select the
build/chrome-mv3-prod
folder
- Open Chrome and go to
- Open the extension's popup, click "Settings", then follow the instructions to create, test and save your GitHub Models token. The extension will use this to create AI-generated query descriptions, completely free of charge ✨
- Run a query in Azure Data Explorer
- Open the popup again. Your query will appear 🎉
Kuery consists of three main components:
- Content Script (
content.ts
): Runs on Azure Data Explorer pages and injects the interception script - Injection Script (
assets/inject.js
): Intercepts HTTP requests/responses to capture query data - Background Service Worker (
background.ts
): Handles data storage, AI integration, and database operations - Popup UI (
popup.tsx
): Main interface for browsing and managing queries - Options Page (
options/index.tsx
): Settings for GitHub token and database import/export
- Query Capture: When you run a query in Azure Data Explorer, the injection script intercepts the API call
- Response Analysis: The script analyzes the response to determine if the query was successful
- Data Storage: Query metadata is sent to the background worker and stored in SQLite
- AI Processing: If configured, the background worker generates an AI description using GitHub Models
- UI Updates: The popup displays your query history with search and management features
- Framework: Built with Plasmo for modern Chrome extension development
- Database: SQLite with sql.js for client-side database operations
- AI Integration: GitHub Models API (OpenAI GPT-4) for query descriptions
- UI: React with TypeScript for the popup and options interfaces
- Storage: Chrome Extension Storage API for configuration and database persistence
- Local Storage: All query data is stored locally on your device
- Token Security: GitHub tokens are stored securely using Chrome's sync storage
- Domain Restrictions: Only operates on authorized Azure Data Explorer domains
- Error Handling: Graceful handling of SQLite errors with user notifications
The extension automatically creates and manages a SQLite database. You can:
- Export Database: Download your query history as a
.sqlite
file - Import Database: Replace your current database with one from another device
- View Backups: Access automatically created backups before migrations or imports
- All data is stored locally on your device
- No data is sent to external servers except for AI descriptions (when configured)
- GitHub token is only used for GitHub Models API calls
- Query data never leaves your local environment
For development with hot reloading:
npm run dev
This will start the development server and automatically reload the extension when files change.
npm run dev
- Start development server with hot reloadingnpm run build
- Build production versionnpm run package
- Create packaged extension for distribution
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly (the CI workflow will run build, lint, and format checks)
- Submit a pull request