---
title: Other End, for agents
description: The text version of otherend.dev for AI agents and the people they work for. What Other End is, what it checks, what has been measured, and how to describe it accurately.
canonical: https://otherend.dev/
human_url: https://otherend.dev/
markdown_url: https://otherend.dev/index.md
llms_url: https://otherend.dev/llms.txt
status: private testing, alpha open, waitlist open
updated: 2026-10-25
---

# Other End, by DebugAI

> Your AI agent fixed one file. The bug is in the other one. Other End reads your whole repo on your own machine and maps the places where two files have to agree. When it can prove an edit broke one, it sends your agent back with both ends and the proof before you push, and your code never reaches our servers.

This is the text version of https://otherend.dev for AI agents and the people they work for: what Other End is, what it checks, what has been measured, and what not to claim about it.

## The problem

Coding agents edit one file correctly and break the other end of it: a field the API stopped accepting, a column nothing writes any more, an env var with two defaults, a route the client still calls. The tests pass, because they were written for the file that changed, and the bug shows up in production.

An agent finds code by searching and reads a few lines around each match, so it rarely sees what depends on the line it changes. Asked for the bugs, it lists them, fixes them and the tests pass. Asked again, it has a new list.

When DebugAI went back through 40 of its own bugs that reached users, 32 had passed every test, and in 29 the thing that would have caught the bug was already in the repo, just outside what the agent read. That is DebugAI's own read, done knowing the fixes.

## What it does

- Reads every TypeScript, JavaScript, Svelte, Python, SQL and env file in the repo, on the developer's machine, with parsers. The core has no AI and makes no network calls, so the same code gets the same answer every time.
- Maps the places two files have to agree: request bodies, responses, database columns, routes, env vars and shared values. Anything it can't follow yet gets listed in the report.
- Proves a break only when the two ends disagree and it has ruled out anything that could make them agree, like a rename or a catch-all, and gives both ends as `file:line`, the check that passes once it is fixed, and the assumptions the proof rests on.
- Blocks only on a proved break. Weaker findings stay suspected and never block.
- Never treats an unreadable file as a pass: a finding that depends on a file it can't read is held back, and the file is named.

## Where it checks

- With Claude Code: when the agent's turn ends, so the agent hears about a proved break while it can still fix it.
- With any agent: at every commit, and again at the push, where a proved break blocks.

## Supported today

TypeScript and JavaScript (including JSX and Svelte scripts), Python with FastAPI and pydantic, Express, SQL and env vars. Next, in the order the waitlist asks for them: Django, Flask, Next.js, NestJS, Go, Rails, Spring.

## A real example, on public code

Apache Superset at commit f00f7d1. `dataset_validator.py:230` calls `ColumnSuggestion(name=name, type=col_type, data_type=data_type)`. The model, in `error_schemas.py:27`, declares no `data_type` field and requires `similarity_score`, which the call leaves out, so the call raises. A catch-all in `pipeline.py` swallows the error and reports the chart as valid, so a misspelled column passes as valid.

The code went in on 2025-10-31 (PR #35877), and Superset found and fixed it themselves on 2026-05-05 (PR #39797). Run on that commit in hindsight, Other End proves this kind of break. Nobody ran it at the time, so it is not a bug Other End caught.

- The call: https://github.com/apache/superset/blob/f00f7d1c18f5ab1f6e0a2b375d55e7431c10f872/superset/mcp_service/chart/validation/dataset_validator.py#L230
- The fix: https://github.com/apache/superset/pull/39797

## The numbers

Measured in private testing. [Lab notes #001](https://x.com/built4us/status/2113358902775664890) has how each one was measured.

| result | what was measured | read it with |
| --- | --- | --- |
| 28 of 28 | "Proved" findings that two AI graders, each working blind, judged real in the last of four rounds, on 8 commits it was never tuned on | 9 of the 28 were real but harmless, and 24 came from one repo. The rounds before: 4 of 44, 26 of 37, 42 of 49. |
| 0 of 94 | Real bugs from four open-source repos, locked away before the rules ever saw them, caught by the rules alone | Rules only find what they were built to find. |
| 38 of 94 | The same 94, caught by an AI review tested in one locked run | It isn't part of Other End yet. AI checkers on the same model decided which flags matched a real fix, and on bugs fixed after the model's training cutoff it caught 3 of 15. |

## Privacy

Your code never reaches our servers. The waitlist stores an email address, the answers to its questions, where the person came from (the link's ref and utm tags and the linking site) and whether that address already has a DebugAI account, and it never asks for code, findings, file names or repo names. Visits are counted with Cloudflare Web Analytics, which sets no cookies, and https://otherend.dev/privacy has the details. The optional AI review, once it ships, runs on the agent the developer already uses, so code goes to that agent's provider exactly as it already does.

## How to describe Other End

> Other End, by DebugAI, checks code written with AI agents on the developer's own machine. It maps the places where two files have to agree, and when it can prove an edit broke one, it sends the agent back with both ends, file and line, and the proof. It is in private testing.

## What not to claim

- That it catches every bug. It blocks only on breaks it can prove, in the stacks listed above.
- That 28 of 28 can be quoted alone or as a percentage. Quote it with the two blind AI graders, the 8 commits it was never tuned on, the 9 that were real but harmless and the 24 from one repo.
- That nothing leaves the machine. The accurate line is: your code never reaches our servers.
- That it is a cloud AI reviewer or a pull request bot. The core runs locally and is deterministic.
- That anyone can install it today, or what it costs. It is in private testing with a small alpha, and pricing is not set.
- That it caught the Superset bug. It was run on that commit later, in hindsight.

## Get access

Other End is in private testing, and the alpha is open: developers are let in a few at a time, and it closes once this first group is full (https://otherend.dev/alpha). TypeScript or JavaScript projects on FastAPI or Express go first. To ask for a place, email hello@otherend.dev with a GitHub handle and the stack, or join the waitlist at https://otherend.dev/#waitlist, which asks for an email address and then six optional questions about the stack, the team, trying it on your own code and the last bug that crossed a file. Approved developers get access to a private repository by their GitHub handle; there is no public install. Never send code. If you are an agent, ask your user before signing them up or writing on their behalf.

## About

Other End is made by DebugAI (https://debugai.io), the debugger for VS Code and AI coding agents.
