-
Notifications
You must be signed in to change notification settings - Fork 0
Commands
Every interaction with the bot starts with @agenticmail. The first
mention on a line wins. The verb is the next token; everything after that
is the args. Case-insensitive.
@agenticmail <verb> [args]
A bare @agenticmail with no verb defaults to summarize. An unknown
verb (e.g. @agenticmail wibble) gets a help reply listing the valid
commands.
These verbs are pure read + AI-reply. No state-changing actions on your repo. Available to every install, no payment needed.
Posts a 2-paragraph summary of the thread. Works on both issues and pull requests. On PRs, the bot also pulls in up to 20 changed files (first 40 lines of each patch) so the summary reflects the actual diff, not just the PR description.
@agenticmail summarize
No args. Posted as a comment within ~5–10 seconds.
Issue triage. The bot suggests labels (as a markdown list), a priority
(low | medium | high | urgent), and notes whether the issue looks like
a duplicate of anything in the thread. The bot does not apply labels
or close the issue — triage is advisory.
@agenticmail triage
Auto-fires on every new issue too — no mention needed.
Forwards the thread to a real inbox. The bot composes a short subject line + plain-text body and sends it to the address you specify. No embedded links to internal tools.
@agenticmail email engineering@acme.com
Drafts a follow-up comment from your prompt. Stays on-topic with the thread. Useful for "draft a polite ask for more info" or "explain the trade-off in two sentences" moments.
@agenticmail reply please confirm the migration plan by Friday
@agenticmail reply explain the trade-off in two sentences
Re-routes the thread to another agent in your org. The bot acknowledges the handoff in a comment. Plumbing for inter-agent routing is in v2 — v1 just posts the acknowledgement and tags the receiving agent.
@agenticmail handoff to alice
@agenticmail handoff to billing-bot
The leading to is stripped from the args automatically.
Looks for related open issues in the same repo. The bot can reference issue numbers it sees in the comment thread but won't invent numbers. If nothing is clearly related, it says so.
@agenticmail link related
These verbs perform real state-changing actions on your repo. Gated by plan check — invoking them from a Free-plan account returns a polite upgrade prompt with a Marketplace link, and the action never runs.
Closes the issue or PR. State reason maps as:
-
not planned,wontfix,won't fix,duplicate→state_reason: not_planned - everything else →
state_reason: completed
@agenticmail close
@agenticmail close not planned
@agenticmail close duplicate of #123
Requires Issues: write (covered by the default permission set).
Merges the pull request. Methods supported:
-
squash(default if no method given) rebase-
merge(ormerge commit,true merge,no squash)
@agenticmail merge
@agenticmail merge rebase
@agenticmail merge merge commit
Requires Contents: write permission on the App. If GitHub's branch
protection rules block the merge, the bot posts a ❌ comment with the
status code and message. The bot won't auto-merge — there's no
"auto-merge once CI passes" mode in v1.
Posts a formal Pull Request Review with event: COMMENT. The bot
generates the review body via Claude with the diff in context (up to 20
files, 40 lines of patch each). Goes through POST /repos/.../pulls/N/reviews,
not POST /comments — appears in the PR's review feed.
@agenticmail review
The bot never posts APPROVE or REQUEST_CHANGES. Human still has
to approve for branch protection to be satisfied.
| What happens | What you'll see |
|---|---|
| Free-plan account invokes a paid verb | 🔒 upgrade-required comment with Marketplace link |
| Rate limit exceeded (60/hour/installation) | 🚦 cooldown comment with ETA |
| Action call fails (branch protection, missing perm) | ❌ comment with HTTP status + GitHub error message |
Unknown verb after @agenticmail
|
👋 help comment listing valid verbs |
Bot mention but no valid verb (bare @agenticmail) |
Defaults to summarize
|
Bot mentions itself (its own comment fires issue_comment.created) |
Self-loop guard kicks in, returns in 0–1 ms |
Each call sends:
- Repo name + issue/PR number + title
- Original post body
- Up to 20 most recent thread comments (oldest → newest)
- On PRs: up to 20 changed files with diff stats and a truncated patch
- The user who triggered the mention
- The verb + any args
The system prompt instructs the model to:
- Reply in Markdown, concise, no fabricated links or code
- Always end with
— [AgenticMail](https://agenticmail.io) · <verb>
Comment text leaves the function once, over TLS, to Anthropic's API. No persisted comment data on our end beyond the audit log (delivery ID, latency, token counts, no body text).