dotpals
Rikinshah787 · Rikinshah787/dotpals
This plugin helps users see what their coding agent actually did, verifies test passes, and makes agents fix failing tests.
See what your coding agent actually did. A desktop pal and notch for Claude Code, Codex, Cursor, Gemini CLI and any agent: test results read from the output, faked passes caught, Claude Code sent back to fix what it broke, and an MCP server any AI tool can ask.
See it in action
From the author's README Rikinshah787 ·Source
What you can do with it
- Catch a Claude Code agent faking a test pass.
- Make an agent fix failing tests automatically.
- Get real-time feedback on which files an agent changed and commands it ran.
Safety check
No risky patterns found in the files we scanned.
Automated scan of the repo files. Always review code you run.
From the README
dotpals
See what your coding agent actually did.
A small floating pal that watches Claude Code, Codex or any agent and checks its work: which files changed, which commands ran, and whether the tests really passed, read from their output, not the agent's word. When Claude breaks the tests, dotpals sends it back to fix them. And any AI tool can ask dotpals what really happened.
npx dotpals@latest setup
One command on Windows, macOS or Linux. Free, open source, and everything stays on your computer. Or straight from GitHub: npx --allow-git=all github:rikinshah787/dotpals setup
🔊 Watch the launch video with sound (47 s, 1080p) · square cut
Install · Make your own pal · Plug in any agent · What's new
⭐ Star dotpals if your agent ever said "Done!" and you weren't sure · Tell us what's confusing
New in 0.10
dotpals used to show you what your agent did. Now it checks the work, and every AI tool can ask it.
- Make agents fix failing tests. When Claude Code's tests fail, it's told at once, with why ("expected 3, got -1 (test/math.test.js:5)"), and sent back if it tries to finish, commit or push anyway. On by default; one switch in Settings, or the gear in the notch, turns it off.
- Catches the faked pass. Green only because a test lost an assertion, got a skip or now expects the wrong thing? Claude is sent back to put the test back and fix the code, and you're told.
- Ask dotpals from any agent (MCP). Claude Code, Codex, Cursor and other assistants ask
check_my_work,ready_to_merge,todayand more, and get the evidence instead of the agent's word.
All of it in the changelog.
Why
Coding agents do a lot in a single request. They read dozens of files, edit a handful, run tests, retry and search. The chat scrolls by and the diff is spread across files. dotpals keeps a live, plain-language record next to your editor, so at any moment you can answer:
- What did it change? Every file edited, created or deleted, with the diff one click away.
- What did it run, and did it work? Every command, with its output, duration and ✓ or ✕. A step that failed and was retried says fixed on try 2 or still failing after 3 tries.
- Did it fix what it broke? When Claude Code's tests fail, it's sent back to fix them before it finishes or commits, and a test changed just to make it pass is caught.
- Was the code as it is now tested? "Changed 2 files after the tests passed: not tested since" is impossible to miss, so an old green result doesn't pass for a check of the latest edits.
- What is it doing right now? The pal thinks, works, asks for your OK and celebrates, live.
- What did I get done today? A running tally, and one click copies it as Markdown for a standup or PR.
Features
- Make agents fix failing tests (Claude Code, on by default): when a test run fails, Claude is told right away. When it tries to finish, commit or push while the tests fail or weren't run after its last change, it's sent back to fix them, at most twice per request; then it may stop and the pal tells you. A request that changed no code ("run the tests and tell me") just reports the failure, and a test that was already failing before Claude changed anything is reported, not forced on it. A result nobody can read (output cut by
| tail): Claude runs the tests again; if it still can't be read, the pal asks you to look. And if the tests only went green because Claude changed them (took out an assertion, added a skip, changed what one expects), dotpals catches it: Claude is sent back and you're told. Projects without tests are never held up. Turn it off in Settings, or from the gear in the notch. - Ask dotpals from any agent:
dotpals mcplets Claude Code, Codex, Cursor and other assistants ask what your agents really did, with the evidence:check_my_workbefore an agent says "done",ready_to_merge,today,recap,risky_stepsand more. See below. - The story, not the log: each request reads as a few chapters, such as Changed 5 files +42 −7 · Tests failed twice, then passed · Committed and pushed, instead of hundreds of tool calls. Anything worth a second look is flagged:
.envchanged, a force-push, the same command failing 3 times, two agents editing the same file, or code changed without testing it. - Two agents, one file: when an agent is about to change a file another agent changed in the last few minutes, Claude Code asks you first ("Codex (api) changed billing.ts 2 minutes ago. Edit anyway?"), or tells Claude to re-read it. Other agents can't be stopped beforehand: the notch and the pal tell you as it happens.
- Hand-off: Continue in ▾ hands a session to Codex, Claude Code or Gemini CLI, in a new terminal in the same project, with a note on what was asked, what was done, how the tests stand and what's left. Or copy the note and paste it anywhere.
- Chat with your agents (optional, off by default): type to an agent from the pal, and answer its permission requests and questions right there. OpenCode for now; Claude Code and others are coming. Turn it on in Dashboard → Settings.
- Retries: when a step fails and the agent tries the same thing again, the tries are linked: fixed on try 2, still failing after 3 tries. Click a try to jump to it. On the dashboard, paste a step's ID (
toolu_…) to open it. - Was it tested? One line per session says Tests passed · 48 passed · 7:08 PM, after the last change, Tests passed at 7:08 PM · 3 files changed since or No tests run by the agent, and whether the last commit was tested. Each result says where it came from: the test output's own summary (jest, vitest, mocha


