This repository is a proof-of-concept AI Software Engineering Factory built on elastic/ai-github-actions. It demonstrates how a suite of AI-powered GitHub Actions workflows can autonomously triage issues, review pull requests, propose fixes, and iterate on a real codebase with minimal human intervention.
Elastic Peek is both a way to look into your cluster and your data, and a look at the future of AI-powered software factories.
This is a research project, not an official Elastic product.
AI workflows in .github/workflows/ handle the software engineering lifecycle:
- Issue triage & duplicate detection — new issues are classified, labeled, and checked for duplicates
- Automated PR review — pull requests receive AI-generated code reviews with actionable feedback
- Fix proposals — the factory can draft code changes in response to issues
- Docs & text auditing — scheduled patrols check documentation quality and prose clarity
- Stale issue management — aging issues are flagged and closed automatically
The workflows are powered by elastic/ai-github-actions and run in standard GitHub Actions CI — no custom infrastructure required.
These workflows require a repository secret named COPILOT_GITHUB_TOKEN.
- Create a GitHub Personal Access Token (PAT) for the account that will run the workflows.
- Grant the token access to the repository features your workflows use (for example: issues, pull requests, and contents).
- Add it as a repository secret named
COPILOT_GITHUB_TOKEN.
The same setup applies to private repositories; just make sure the PAT is authorized for the private repository (or org) where the workflows run.
Workflows that use Google Gemini (Deep Research, Ideas agents) require a repository secret named GEMINI_API_KEY.
- Obtain an API key from Google AI Studio.
- Add it as a repository secret named
GEMINI_API_KEY.
The codebase that the factory operates on is Elastic Peek, a lightweight, browser-only, backend-free UI for interacting with Elasticsearch. It's powered by Perses components and Elasticsearch ES|QL.
https://elastic.github.io/ai-github-actions-playground/
Elastic Peek is a browser-based dashboard builder that connects directly to your Elasticsearch cluster. The static site queries Elasticsearch using ES|QL via the _query REST API — or optionally via a local proxy to avoid CORS.
- Direct browser-to-Elasticsearch — or via a local proxy to avoid CORS
- ES|QL query editor — write queries with syntax highlighting
- No-code metrics explorer — browse, filter, and chart metrics from UI selections
- Recent query history — quickly re-use successful queries in Query Lab and Panel Editor
- Multiple visualization types — time series, bar charts, pie charts, tables, stats, gauges, markdown panels
- Drag-and-drop layout — resize and rearrange panels freely
- Persistent state — dashboards save to localStorage automatically
- Import/export — share dashboards as JSON files
- Dark and light themes
- Node.js
^20.19.0or>=22.12.0(required by Vite 7) - npm
>=10(bundled with Node.js 20/22) - GNU Make — pre-installed on macOS and most Linux distributions. On Windows, install via Chocolatey (
choco install make), Scoop (scoop install make), or use WSL.
Use a version manager such as nvm or fnm to switch Node versions quickly. A .nvmrc file is included in this repo — run nvm use or fnm use at the repo root to activate the correct version automatically.
See DEVELOPING.md for the full development guide.
make setup # install dependencies
make serve # start dev server at http://localhost:3000If make is unavailable, run the equivalent npm commands directly:
cd peek
npm ci # install dependencies
npm run dev # start dev server at http://localhost:3000To avoid CORS, use the built-in proxy or Electron mode — see DEVELOPING.md for details.
ES_URL=http://localhost:9200 make serve-proxy # proxy mode
make electron-dev # native desktop app (no CORS needed)Use the Docs tab in the app for embedded documentation and search covering getting started, connecting, CORS/proxy setup, Query Lab, Metrics, Traces, Profiling, dashboard workflows, Console, Data Streams, Chat, LLM settings, Cluster Overview, Users & Roles, and dashboard management.
MIT
