{"slug": "show-hn-aido-an-ai-companion-for-the-pull-requests-your-ai-writes", "title": "Show HN: Aido – an AI companion for the pull requests your AI writes", "summary": "Aido, an AI companion for pull requests authored by AI agents such as Copilot, Claude Code, and Cursor, automatically explains, summarizes, reviews, and documents changes, keeping humans in the loop. The tool runs inside GitHub Actions with a single workflow file, supports on-demand commands on any PR or issue, and works with Gemini, ChatGPT, or Claude via bring-your-own-key. Aido aims to help developers quickly understand code they did not write, addressing the growing volume of AI-generated pull requests.", "body_md": "**The AI companion for the pull requests your AI writes.**\n\nAI agents — Copilot, Claude Code, Cursor — are opening more and more pull requests, and a human still has to understand code they didn't write. Aido keeps that human in the loop: when an **AI-authored PR** lands, it can **automatically explain, summarize, review, and document** the change. And you can run those same commands on **any PR or issue on demand** — just comment `aido <command>`\n\n.\n\nOne companion, the whole review lifecycle: **review, summarize, explain, document, test, and triage** — with **Gemini, ChatGPT, or Claude**, right inside GitHub Actions. Install with a single workflow file.\n\n- 🤖\n**Auto-companion for AI-authored PRs**— when Copilot / Claude Code / Cursor open a PR, Aido runs automatically (explain + summarize by default; review/docs/test opt-in) - ⚡\n**On-demand on any PR or issue**—`aido review`\n\n,`summarize`\n\n,`explain`\n\n,`docs`\n\n,`suggest`\n\n,`test`\n\n,`triage`\n\n- 🧩 Consolidated, persona-guided reviewer with\n**applyable inline suggestions**(robust validation, zero false positives) - 🔌\n**Multi-provider, bring-your-own-key:** Gemini (default), ChatGPT, Claude — no third-party data processor - 📦\n**One-file install** from a pinned release tag; upgrading is a one-line bump - 🔧 Fully configurable prompts, personas, tones, and per-command models\n\n**Secrets**(add under*Settings → Secrets and variables → Actions*):`GEMINI_API_KEY`\n\n(required for default provider)`CHATGPT_API_KEY`\n\n(if using ChatGPT)`CLAUDE_API_KEY`\n\n(if using Claude)\n\n- Uses the built-in\nfor posting comments and reviews.`GITHUB_TOKEN`\n\n⚠️ **Forked PRs**: repository secrets may be unavailable due to GitHub policy.\n\nComment these on any PR:\n\n`aido review`\n\n→ Multi-persona code review + digest`aido summarize`\n\n|`aido sum`\n\n|`aido summary`\n\n→ High-level PR summary for stakeholders`aido explain`\n\n→ Developer-focused step-by-step explanation`aido docs`\n\n→ Draft/augment documentation`aido suggest`\n\n|`aido improve`\n\n→ Safe improvement ideas`aido test`\n\n→ Structured test plan, coverage gaps, and follow-up tasks`aido config-check`\n\n→ Validate configs\n\nComment these on any issue:\n\n`aido triage`\n\n→ Classify, suggest labels, find similar issues, recommend next steps\n\nWhen an AI agent (Copilot, Claude Code, Cursor, …) opens a pull request, Aido can\n**run automatically** — no comment needed — so a human can quickly understand and\ndigest code they didn't write.\n\n- Add\n`.github/workflows/aido-auto.yml`\n\n(copy-based) or`examples/remote/aido-auto.yml`\n\n(remote install). - Configure which authors trigger it and which commands run in\n`.github/scripts/auto/aido-auto-config.json`\n\n. **Companion-first defaults:**`explain`\n\n+`summarize`\n\n. Add`review`\n\n,`docs`\n\n, or`test`\n\nto the`commands`\n\nlist to run more.**Only AI-authored PRs trigger it**(per`aiAuthors`\n\n); human PRs are never auto-run. It fires on PR open/reopen/ready —**not on every commit**.** Per-PR opt-out:**add a`no-aido`\n\nlabel (configurable via`skipLabels`\n\n) or put`<!-- aido: skip -->`\n\nin the PR body to skip a single PR — no config change needed.- Fires on\n`pull_request`\n\n(not`pull_request_target`\n\n), so forked PRs stay safe (read-only token, no secrets).\n\n```\n// .github/scripts/auto/aido-auto-config.json\n{\n  \"enabled\": true,\n  \"aiAuthors\": [\"copilot\", \"claude-code[bot]\", \"cursor[bot]\"],\n  \"commands\": [\"explain\", \"summarize\"],\n  \"skipLabels\": [\"no-aido\"],\n}\n```\n\nNote:\n\n`github-actions[bot]`\n\nand`dependabot[bot]`\n\nare excluded by default — the former is too broad, and Dependabot PRs run with a read-only token and no repo secrets, so Aido can't act on them. Add them explicitly at your own risk.\n\nPrefer to control exactly when Aido runs? Add it as a **step** in your own\nworkflow — the Marketplace-published composite action:\n\n```\n- uses: aido-dev/aido@v1\n  with:\n    command: review # review | summarize | explain | docs | suggest | test | triage\n    pr_number: ${{ github.event.pull_request.number }}\n  env:\n    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n    GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n```\n\nFor `triage`\n\n, pass `issue_number`\n\ninstead of `pr_number`\n\n. See\n[ examples/action/](/aido-dev/aido/blob/main/examples/action) for full workflows.\n\nTwo ways to run Aido — pick per use case:\n\nReusable workflows / one-file install(below) → the comment-driven UX (`aido review`\n\non a PR) and auto-run on AI-authored PRs.This composite action→ run a specific command as a step, on your own triggers (e.g. review every PR on`pull_request`\n\n).\n\n- Add repository secrets:\n`GEMINI_API_KEY`\n\n(default provider)`CHATGPT_API_KEY`\n\n(if using ChatGPT)`CLAUDE_API_KEY`\n\n(if using Claude)\n\n- Copy\nto`examples/remote/aido.yml`\n\n`.github/workflows/aido.yml`\n\n— a single thin workflow that runs Aido from a pinned release tag. Upgrading is a one-line tag bump. - Comment\n`aido review`\n\non a PR. - (Optional) Customize any command by adding its config file (e.g.\n`.github/scripts/review/aido-review-config.json`\n\n) — overrides the shipped defaults, no scripts needed. Seefor details.`examples/remote/`\n\n- Add repository secrets (as above).\n- Commit workflows (\n`.github/workflows/*`\n\n) and scripts (`.github/scripts/*`\n\n).⚠️ Make sure to include`.github/scripts/lib/`\n\n— all command scripts depend on this shared library. - Comment\n`aido review`\n\non a PR. - (Optional) Customize configs in\n`aido-*-config.json`\n\n— or the prompts and scripts themselves.\n\n- Audience:\n- Summarize: stakeholders (product/engineering leadership)\n- Explain: developers/reviewers\n\n- Depth:\n- Summarize: high-level intent, scope, risks, impact; no implementation details\n- Explain: step-by-step mechanics, rationale, risks, verification\n\n- Content constraints:\n- Summarize: no code blocks, diffs, or inline suggestions; concise and skimmable\n- Explain: may include tiny illustrative snippets only if essential; avoid suggestions and large blocks\n\nAs more of your PRs are written by AI, Aido makes sure a human still understands them — automatically, and on demand. It's practical, configurable, and team-friendly: save time, catch issues early, and keep everyone in the loop — without leaving GitHub.\n\n**Dispatcher:**`.github/workflows/aido-dispatch.yml`\n\nParses the first line of the comment, normalizes it, and routes to the right reusable workflow.**Reusable workflows (invoked via**`workflow_call`\n\n):`.github/workflows/aido-review.yml`\n\n`.github/workflows/aido-summarize.yml`\n\n`.github/workflows/aido-explain.yml`\n\n`.github/workflows/aido-docs.yml`\n\n`.github/workflows/aido-suggest.yml`\n\n`.github/workflows/aido-test.yml`\n\n`.github/workflows/aido-triage.yml`\n\n*(issues)*\n\nEach workflow builds a prompt from PR context (title, body, changed files, **truncated diff ~15k chars**), calls the selected provider/model, and **posts a PR review with inline, applyable suggestions (when applicable), validated by a robust layer to ensure safety and accuracy**.\n\n**Shared library (required by all commands):**`.github/scripts/lib/`\n\n`providers.js`\n\n— AI provider wrappers (ChatGPT / Gemini / Claude), model resolution`github.js`\n\n— GitHub API client, event parsing, PR context fetchers, comment posting`config.js`\n\n— JSON config loading with defaults and deep merge`text.js`\n\n— truncation, files summary, prompt templates, comment footers\n\n**Review:**- Script:\n`.github/scripts/review/aido-review.js`\n\n- Config:\n`.github/scripts/review/aido-review-config.json`\n\n*(object with*`{ reviewer, personas }`\n\n; reviewer sets provider/model; personas guide facets)\n\n- Script:\n**Summarize (stakeholder-facing; aliases:**`summarize`\n\n|`sum`\n\n|`summary`\n\n):- Script:\n`.github/scripts/summarize/aido-summarize.js`\n\n- Config:\n`.github/scripts/summarize/aido-summarize-config.json`\n\n- Script:\n**Explain (developer-focused):**- Script:\n`.github/scripts/explain/aido-explain.js`\n\n- Config:\n`.github/scripts/explain/aido-explain-config.json`\n\n- Script:\n**Docs:**- Script:\n`.github/scripts/docs/aido-docs.js`\n\n- Config:\n`.github/scripts/docs/aido-docs-config.json`\n\n- Script:\n**Suggest:**- Script:\n`.github/scripts/suggest/aido-suggest.js`\n\n- Config:\n`.github/scripts/suggest/aido-suggest-config.json`\n\n- Script:\n**Test:**- Script:\n`.github/scripts/test/aido-test.js`\n\n- Config:\n`.github/scripts/test/aido-test-config.json`\n\n*(adds*`testFocus`\n\nfor unit / integration / e2e / regression / performance / security / accessibility)\n\n- Script:\n**Triage (issues):**- Script:\n`.github/scripts/triage/aido-triage.js`\n\n- Config:\n`.github/scripts/triage/aido-triage-config.json`\n\n*(adds*`candidateLabels`\n\n,`severityLabels`\n\n, and`applyLabels`\n\nto optionally auto-apply suggested labels; default`false`\n\n)\n\n- Script:\n\nEach config supports:\n\n`provider`\n\n(CHATGPT|GEMINI|CLAUDE),`model`\n\n,`language`\n\n,`tone`\n\n,`style`\n\n,`length`\n\n,`include`\n\n(title/body/filesSummary/diff),`additionalInstructions`\n\n, and an optional`promptTemplate`\n\nwith placeholders.\n\n- Use a single\n**consolidated reviewer** informed by your configured personas in`aido-review-config.json`\n\n.- Top-level\n`reviewer`\n\nchooses provider/model (and optional context checks). `personas`\n\ndefine roles with prompt/tone/style/language to guide faceted notes.\n\n- Top-level\n- The review body contains a clean summary, recommendation, faceted notes, and optional context checks.\n- All code changes are delivered as\n**inline PR review suggestions**(with “Apply suggestion” buttons), thoroughly validated for safety and actionability — not in the body. **Keep it reasonable:** start with**3–5 personas**(e.g., pedagogy, architecture, security, performance, QA).\n\n**Pre-curated packs:** see `/examples/.github/review/example personas/`\n\n`example-personas.json`\n\n(~50 personas)`great_defaults-personas.json`\n\n(balanced starter set)- Topic packs:\n`web_frontend-*.json`\n\n,`cloud_and_devops-*.json`\n\n,`security-*.json`\n\n, and more.\n\n- Prefer\n**short, focused** prompts and configs. - Use\n`aido config-check`\n\nif things look off. - For UI work, pair\n`aido explain`\n\nwith`aido suggest`\n\n. - For releases, run\n`aido summarize`\n\n→`aido docs`\n\n. - Before merging, run\n`aido test`\n\nto surface missing test cases and coverage gaps. - For new issues, run\n`aido triage`\n\nto get a quick classification, label suggestions, and similar-issue links.\n\n- Diff is truncated (~15k chars) to keep prompts efficient.\n- Provider/model availability and naming can change; set explicit models in configs.\n- Forked PRs may lack secrets → provider calls may be skipped.\n\n`github-actions`\n\n· `ai-code-review`\n\n· `ai-assistant`\n\n· `developer-productivity`\n\n· `persona-based-reviews`\n\n· `openai`\n\n· `gemini`\n\n· `claude`\n\n· `chatgpt`\n\n· `pr-bot`\n\n· `automated-code-review`\n\nHappy shipping! ✨\n\nNote\n\nData handling:\n\n- Prompts, code, and metadata may be sent to external AI services and could be logged or retained by those providers.\n- Do not include secrets, confidential, or regulated data unless you fully trust the operator and provider.\n\nReliability:\n\n- Providers can rate‑limit, change models/behavior, or go offline without notice.\n- Do not depend on AI outputs for production without human review and validation.\n\nAccuracy:\n\n- AI models can be incorrect, outdated, or hallucinate details.\n- Always verify explanations, reviews, and code suggestions before applying.", "url": "https://wpnews.pro/news/show-hn-aido-an-ai-companion-for-the-pull-requests-your-ai-writes", "canonical_source": "https://github.com/aido-dev/aido", "published_at": "2026-07-21 18:07:06+00:00", "updated_at": "2026-07-21 18:12:44.979498+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "large-language-models", "generative-ai"], "entities": ["Aido", "GitHub Actions", "Copilot", "Claude Code", "Cursor", "Gemini", "ChatGPT", "Claude"], "alternates": {"html": "https://wpnews.pro/news/show-hn-aido-an-ai-companion-for-the-pull-requests-your-ai-writes", "markdown": "https://wpnews.pro/news/show-hn-aido-an-ai-companion-for-the-pull-requests-your-ai-writes.md", "text": "https://wpnews.pro/news/show-hn-aido-an-ai-companion-for-the-pull-requests-your-ai-writes.txt", "jsonld": "https://wpnews.pro/news/show-hn-aido-an-ai-companion-for-the-pull-requests-your-ai-writes.jsonld"}}