cd /news/ai-tools/paired-with-greptile-no-bugs · home topics ai-tools article
[ARTICLE · art-127677] src=abloh.dev ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Paired with Greptile = No Bugs

Abloh launched a pull request tool that runs mutation testing on AI-written code to catch bugs before production, positioning itself alongside the code review tool Greptile. The company says its CLI runs locally on a user's own model via `abloh run --base main`, executes code only on the customer's GitHub Actions runner, and requires just one Actions secret, `ABLOH_MODEL_TOKEN`, with `contents: read` and `id-token: write` access and no repository write access. Abloh stores only the source lines modified during mutation testing and confines mutations to the runner's working tree, so it cannot push commits, branches, or tags back to GitHub.

read2 min views1 publishedSep 12, 2026
Paired with Greptile = No Bugs
Image: source

Abloh helps engineering teams ship more AI-written code without sending more bugs to production.

More code. More places to break. #

Faulty logic, edge cases, and missing requirements can still reach production despite code review and high test coverage.

What abloh does on every pull request. #

settlement/capture.ts

30

const REASONS = { 31

`inactive: 'Capture is not refundable',`

32

`unsettled: 'Order is not settled',`

33

`invalidAmount: 'Capture amount is invalid',`

34

} as const; 35

36

function normalizeAmount(value: number): number { 37

`return roundMinorUnits(Math.max(0, value));`

37

+ return roundMinorUnits(Math.max(1, value)); mechanical: off-by-one 38

} 39

40

function capturedAmountIsValid(capture: Capture, order: Order) { 41

`const captured = normalizeAmount(capture.amount);`

42

`return captured > 0 && captured <= order.total;`

42

+ return captured >= 0 && captured <= order.total; mechanical: operator flip 43

} 44

45

function rejected(reason: string, capture: Capture) { 46

`return { approved: false, reason, refundedAmount: 0 };`

47

} 48

49

export function refundableAmount(capture: Capture, order: Order) { 50

`const refundable = capture.amount;`

50

+ const refundable = order.total; AI: semantic swap, same-typed values 51

`return normalizeAmount(refundable);`

52

} 53

54

export function canRefund(capture: Capture, order: Order) { 55

`if (!isRefundable(capture)) {`

56

  `return rejected(REASONS.inactive, capture);`

56

+ return rejected(REASONS.wrongOrder, capture); AI: error-path rot 57

`}`

58

`return approved(refundableAmount(capture, order));`

59

}

Run it locally, on your own model. Forever. #

export MODEL_API_KEY=<your provider's key>`` npm i -g @abloh/cli``abloh init`` abloh run --base main

Read the local run docs

Security first design. #

  • What source code does abloh store?
  • Only the source lines modified during mutation testing. No other customer source code is retained.
  • Where is my code executed?
  • Your code and test suite execute only on your GitHub Actions runner. Abloh never clones your repository onto its infrastructure.
  • What access does abloh get?
  • Only contents: read andid-token: write , with no repository write access.
  • What secret do I store?
  • One, an Actions secret called ABLOH_MODEL_TOKEN . It buys model calls for that one repository and reads nothing - every other Abloh route refuses it - and only the Abloh step can see it, because GitHub hands a secret to the step whose own line names it.
  • Can abloh modify my repository?
  • Mutations are confined to the runner's working tree. Abloh cannot push commits, branches, or tags back to GitHub.
  • How is generated code isolated?
  • Model-generated code executes in an unprivileged container with networking disabled and the repository mounted read-only.

What leaves your CI

── more in #ai-tools 4 stories · sorted by recency
── more on @abloh 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/paired-with-greptile…] indexed:0 read:2min 2026-09-12 ·