Update to Greptile
Snapshot Oct 28, 2026 · 12:24 UTC · version 1.3.1
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Sep 30, 2026 · 23:20 UTC
02ab16e3545d694f2f4346261b3c58e31c4d630a1cc79483c44b60af3fc86921
Oct 28, 2026 · 12:24 UTC
95be80bc3d5b478bc43b3201359d0087168ebd37b9b4ac61635404b8d44f2c48
Package file
Sep 30, 2026 · 23:20 UTC
127
Oct 28, 2026 · 12:24 UTC
100
Package file
Sep 30, 2026 · 23:20 UTC
a28b3f48ee5821ad815c391e721ba009a8141ffdd04dc09976a7f47d3d5e25fc
Oct 28, 2026 · 12:24 UTC
a694251b24eaf86adc11c7a67d786439cf7203ea3db860fef352d68e981c6a6e
Package file
Sep 30, 2026 · 23:20 UTC
1262
Oct 28, 2026 · 12:24 UTC
1693
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
LICENSE →
skills/login/scripts/greptile.mjs →
skills/login/scripts/greptile.version →
README.md
− removed · + added
--- before +++ after @@ -0,0 +1,150 @@ +# Greptile + +[Greptile](https://greptile.com) is an AI code review agent for GitHub and GitLab that automatically reviews pull requests. This plugin gives Claude Code and Codex two ways to work with it: + +- the **Greptile MCP server**, for reading and resolving review results, and for searching your organization's knowledge base and coding patterns +- the **Greptile CLI**, for dispatching a review of your working branch before a pull request exists + +They are two ends of one pipeline. The CLI dispatches reviews; the MCP server reads them back — both the ones the CLI dispatched (`source: "headless"`) and the ones Greptile ran on your pull requests (`source: "pr"`). + +## Setup + +Nothing to install and no API key to create. + +**MCP server.** Open the `/mcp` menu and authenticate **greptile**. Your browser opens [auth.greptile.com](https://auth.greptile.com); sign in and approve access. Claude Code stores and refreshes the tokens. In Codex, connect it from the plugin settings. + +**CLI.** Run `/greptile:login` once and sign in through the same OAuth provider. The CLI ships with this plugin, so there is no npm or Homebrew install to do — but it is a Node program, so Node must be on your machine. In Codex, ask it to sign in with the plugin's `login` skill. + +The two sign-ins are separate: same Greptile account, same OAuth provider, but the CLI keeps its own credentials in `~/.greptile/auth.json` while Claude Code keeps the MCP tokens in its own store. Use whichever surface you need; you only have to sign in to that one. + +## Commands + +- `/greptile:review` - Review the current branch against its base. Accepts a base branch and free-text instructions ("focus on the auth changes"). +- `/greptile:login` - Sign the CLI in to your Greptile account. + +In Codex, these are the `review` and `login` skills. + +## Tools + +### Account and repositories +- `get_me` - Identify your account and available organizations +- `list_repositories` - Discover accessible repositories and identifiers for the other tools + +### Pull requests +- `list_merge_requests` / `list_pull_requests` - List PRs, filtered by repository, branch, author, or state +- `get_merge_request` - Detailed PR info, including stored addressed flags and commits since the latest review comment +- `list_merge_request_comments` - All comments on a PR, with Greptile comments identified by `isGreptileComment` + +### Code reviews +- `list_code_reviews` - List code reviews, filtered by repository or status +- `get_code_review` - Full review body, status, summary citations, and review metadata +- `trigger_code_review` - Start a Greptile review on a pull request (GitHub and GitLab) +- `search_greptile_comments` - Search Greptile's review comments across every review, on pull requests and on headless CLI runs alike + +### Knowledge base +- `list_knowledge_bases` - Repositories your organization has knowledge base data for +- `list_knowledge_base_documents` - Document paths in a repository's published knowledge base +- `get_knowledge_base_document` - Markdown body of a single knowledge base document +- `search_knowledge_base` - Substring search across one repository's knowledge base + +### Custom context +- `list_custom_context` - Your organization's coding patterns and rules +- `get_custom_context` - Details for one entry and linked comment references +- `search_custom_context` - Search entries by content +- `create_custom_context` - Create a new entry, either a custom instruction (the default) or a pattern + +### Analytics +- `get_analytics_overview` - Summary metrics and period changes, chart series, and repository, contributor, and pull request rankings +- `list_analytics_findings` - Findings with severity and security totals and trends, filterable by team, repository, author, severity, or status +- `list_analytics_filter_options` - The teams, repositories, and authors available to you as analytics filters + +## Example usage + +- "Review my current branch with Greptile and fix what it finds" +- "Show me Greptile's comments on my current PR and help me resolve them" +- "What issues did Greptile find on PR #123?" +- "Search our knowledge base for how authentication works in this repo" + +## Bundled CLI + +`scripts/greptile.mjs` is the Greptile CLI, vendored from the published npm package +`greptile` (its `dist/greptile.js`, renamed only so Node reads it as ESM without a +sibling `package.json`). `scripts/greptile.version` records which release it is, and +CI verifies the file byte-for-byte against that version's npm tarball, so the copy +running here is the same one npm serves. + +Because the CLI ships with the plugin, it updates with the plugin — not through +`greptile update`, `npm`, or `brew`. Any separate `greptile` you have installed is +untouched and unused by these commands, though both share your login at +`~/.greptile/auth.json`. + +## Network access + +This plugin registers no hooks. What it contacts: + +- `api.greptile.com` — the MCP server, the CLI's API, and CLI telemetry + (below). +- `auth.greptile.com` — OAuth sign-in, for both surfaces. +- `app.greptile.com` — link targets printed in review output. +- `127.0.0.1` — a loopback listener the CLI opens to receive the OAuth + callback during `/greptile:login`, closed as soon as the redirect arrives. + +### Telemetry + +The bundled CLI reports anonymous usage events to `/v1/telemetry` on the same +host as its API. The events are lifecycle signals — `cli_first_run`, +`cli_login_started`, `cli_login_failed`, `cli_onboarding_started`, +`cli_skill_installed`, `cli_skill_updated`, `cli_review_blocked`, +`cli_update_completed` — carrying your install method, OS, architecture, +whether the run was interactive, and which agent surface it ran under. Nothing +else: no code, no repository or branch names, no file paths, no review content. +Event-specific fields are fixed values: `method`, `exit_code`, `reason`, the +version strings on an update, and the name of the Greptile-authored skill on +the two skill events. + +Inside Claude Code and Codex the CLI is always non-interactive, so it cannot ask you to +decide and does not try. It falls back to **anonymous mode**: a random +`cli:<uuid>` stored in `telemetry.json`, no account token attached, and no +profile built on the other end. If you have separately opted in from a +standalone `greptile` on the same machine, that decision carries over here and +events are sent under your account instead. + +To turn it off, any one of these is enough: + +```sh +export GREPTILE_TELEMETRY_DISABLED=1 # or DO_NOT_TRACK=1 +greptile settings set telemetry false # standalone CLI +node "<plugin-root>/scripts/greptile.mjs" settings set telemetry false # bundled CLI +``` + +`CI=1` also disables it, and a CLI pointed at a self-hosted Greptile sends no +telemetry at all. + +### Downloads + +One thing here fetches software, and this is it. When a review summary +contains a Mermaid diagram, the CLI renders it with +`mmdr`, a small standalone binary fetched on first use from +[github.com/1jehuang/mermaid-rs-renderer](https://github.com/1jehuang/mermaid-rs-renderer) +into `~/.cache/greptile/bin/`. The archive is checked against a SHA-256 pinned +per platform inside the bundle and is deleted rather than run if the hash does +not match; the download announces itself on stderr, and failing to get it +degrades the diagram to a link instead of failing the review. Setting +`GREPTILE_NO_AUTO_INSTALL=1` skips it. **`/greptile:review` already sets that +variable**, so the plugin does not download it — the code path is reachable +only if you invoke the bundled CLI yourself without it. + +## Packaging for the OpenAI directory + +The OpenAI directory takes a ZIP of the plugin. From the repository root, package a committed revision, including the bundled CLI, without repository-only files: + +```sh +git archive --format=zip --output=/tmp/greptile-plugin.zip HEAD:plugins/greptile -- .codex-plugin/plugin.json .mcp.json assets scripts skills LICENSE README.md +``` + +`.codex-plugin/chatgpt-app-submission.json` holds the tool justifications and +test cases for the submission form. + +## Documentation + +See [greptile.com/docs/mcp-v2/overview](https://www.greptile.com/docs/mcp-v2/overview).
Full technical diff · 19 changed fields
changed /files/.app.json/sha256
"02ab16e3545d694f2f4346261b3c58e31c4d630a1cc79483c44b60af3fc86921"
"95be80bc3d5b478bc43b3201359d0087168ebd37b9b4ac61635404b8d44f2c48"
changed /files/.app.json/size
127
100
changed /files/.codex-plugin~1plugin.json/sha256
"a28b3f48ee5821ad815c391e721ba009a8141ffdd04dc09976a7f47d3d5e25fc"
"a694251b24eaf86adc11c7a67d786439cf7203ea3db860fef352d68e981c6a6e"
changed /files/.codex-plugin~1plugin.json/size
1262
1693
added /files/.mcp.json
Field was absent
{
"sha256": "bb8328540a1c3fd386eb37bc89f2617257c6cd94a752efccb7fecd46aa8d0683",
"size": 116
}added /files/LICENSE
Field was absent
{
"sha256": "b5005f09527f9533812a206cefe6ff5f71e5cdc0ae644750a3b1c71901c89ddd",
"size": 1068
}added /files/README.md
Field was absent
{
"sha256": "4d6970cdf4ed300c042fda09037dca10682e3d85dfebd855cdea16bc33ae5aa1",
"size": 8122
}added /files/assets~1icon.svg
Field was absent
{
"sha256": "f4d5a9da8d2645acad160ea4afe469acf6d851ed3cd471ea21b59342e96b80f0",
"size": 651
}added /files/assets~1logo.svg
Field was absent
{
"sha256": "f4d5a9da8d2645acad160ea4afe469acf6d851ed3cd471ea21b59342e96b80f0",
"size": 651
}added /files/scripts~1greptile.mjs
Field was absent
{
"sha256": "7cb36450be2a39ec0d53f463c80bc82ae170899582ff75c81f219b8535d173d9",
"size": 10713594
}added /files/scripts~1greptile.version
Field was absent
{
"sha256": "88206afd2d9b56ca71466c85d1ed1421b1db0e78fa00072697918fb8a9ac54ef",
"size": 6
}changed /files/skills~1login~1SKILL.md/sha256
"a53c662057b4b4eb120176d10180061dabbe192999012be70ef7618a8124c9c2"
"3363de3784750d5f82ead3f001b897f73f5ab25a0d25ea860ab380bd301e3d0a"
changed /files/skills~1login~1SKILL.md/size
1021
1278
removed /files/skills~1login~1scripts~1greptile.mjs
{
"sha256": "f5fac84b4c5d8a68d6419f543008d076f7e3b5066a424cb0c1aa77c458080275",
"size": 10697706
}Field is absent
removed /files/skills~1login~1scripts~1greptile.version
{
"sha256": "36e68867ce939b2464649670eb1b3f9759d1a99e7326dac3c79d0942e01f5d65",
"size": 6
}Field is absent
changed /files/skills~1review~1SKILL.md/sha256
"241ba94b3d946d1e80ac0741c47552e12d91cd625ddd56143e05cc01c27f91b4"
"37667d1b5cdbf1660b817601e0f6576fb5c43e090df6a51f93676b3e58072b17"
changed /files/skills~1review~1SKILL.md/size
1818
3335
removed /files/skills~1review~1scripts~1greptile.mjs
{
"sha256": "f5fac84b4c5d8a68d6419f543008d076f7e3b5066a424cb0c1aa77c458080275",
"size": 10697706
}Field is absent
removed /files/skills~1review~1scripts~1greptile.version
{
"sha256": "36e68867ce939b2464649670eb1b3f9759d1a99e7326dac3c79d0942e01f5d65",
"size": 6
}Field is absent
Full snapshot data
{
"files": {
".app.json": {
"sha256": "95be80bc3d5b478bc43b3201359d0087168ebd37b9b4ac61635404b8d44f2c48",
"size": 100
},
".codex-plugin/plugin.json": {
"sha256": "a694251b24eaf86adc11c7a67d786439cf7203ea3db860fef352d68e981c6a6e",
"size": 1693
},
".mcp.json": {
"sha256": "bb8328540a1c3fd386eb37bc89f2617257c6cd94a752efccb7fecd46aa8d0683",
"size": 116
},
"LICENSE": {
"sha256": "b5005f09527f9533812a206cefe6ff5f71e5cdc0ae644750a3b1c71901c89ddd",
"size": 1068
},
"README.md": {
"sha256": "4d6970cdf4ed300c042fda09037dca10682e3d85dfebd855cdea16bc33ae5aa1",
"size": 8122
},
"assets/icon.svg": {
"sha256": "f4d5a9da8d2645acad160ea4afe469acf6d851ed3cd471ea21b59342e96b80f0",
"size": 651
},
"assets/logo.svg": {
"sha256": "f4d5a9da8d2645acad160ea4afe469acf6d851ed3cd471ea21b59342e96b80f0",
"size": 651
},
"scripts/greptile.mjs": {
"sha256": "7cb36450be2a39ec0d53f463c80bc82ae170899582ff75c81f219b8535d173d9",
"size": 10713594
},
"scripts/greptile.version": {
"sha256": "88206afd2d9b56ca71466c85d1ed1421b1db0e78fa00072697918fb8a9ac54ef",
"size": 6
},
"skills/login/SKILL.md": {
"sha256": "3363de3784750d5f82ead3f001b897f73f5ab25a0d25ea860ab380bd301e3d0a",
"size": 1278
},
"skills/review/SKILL.md": {
"sha256": "37667d1b5cdbf1660b817601e0f6576fb5c43e090df6a51f93676b3e58072b17",
"size": 3335
}
}
}SHA-256 of public snapshot: e5705e40e124753d6dd770cc508c4cc2914e9b7e1ee2bb9acf848e5f947c8a01