FixThis

io.github.beyondwinPublished by GitHub account beyondwinv1.5.0Updated Nov 3, 2026

Local-first MCP handoff for Jetpack Compose UI feedback and source candidates.

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

Local-first MCP handoff that turns annotated Jetpack Compose UI feedback into source candidates and context for a coding agent.

What you can do
  • Mirror a Compose debug app's screen into a local browser console over ADB and localhost
  • Select UI components by click or drag and attach written change requests as numbered annotations
  • Produce a compact handoff with screenshot bounds, semantics, top source candidates with line numbers, edit-surface hints and confidence warnings
  • Save the handoff to MCP for Claude Code or Codex, optionally with a bounded, redacted Android diagnostics baseline, or copy a Markdown prompt for any chat agent
  • Install and verify the Gradle plugin and MCP configuration in a project through the desktop CLI
When to use it
Useful when you want a coding agent to change a Jetpack Compose screen and a plain screenshot is not enough: dense, list-rendered or composable-named UIs where the agent needs source candidates and edit hints. It is aimed at debug builds of Android Compose apps during development.
Requirements
Runs as a local stdio process on a desktop machine, installed via Homebrew, npm or a GitHub release. Needs an Android Jetpack Compose project with the debug-only Gradle plugin, a connected device or emulator reachable over ADB, and localhost access for the console. No accounts, API keys or environment variables are declared.
Before you install
Screenshots and diagnostics can contain sensitive pixels or runtime data; review them before sharing and keep the .fixthis/ directory out of version control. Save to MCP can attach a diagnostics baseline unless the session is set to Manual or Off. The installer writes Gradle plugin and MCP configuration into your project, and it should not be configured for release builds.

Installation

In SourceWeft

  1. Open FixThis in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

FixThis for Android Compose

[CI] [License: MIT] [JDK 21] [Node 20+] [Compose]

[FixThis Studio — point at any Jetpack Compose UI element, annotate, hand off AI-ready context to your coding agent]

Point at a Jetpack Compose UI, write the change, and hand Claude, Codex, Cursor, or another coding agent the source context it needs.

FixThis is debug-only. It attaches a sidekick to a Compose debug app, mirrors the screen into a local browser console, and turns annotations into a compact handoff: screenshot bounds, semantics, source candidates, and confidence warnings.

Click a component to select it. Drag when the target is spacing, empty room, or something that is not a clean Compose node.

Works Today

  • Try the sample app in about five minutes.
  • Install the desktop CLI/MCP with Homebrew, npm, or GitHub Releases.
  • Add it to an external app with the Gradle plugin io.github.beyondwin.fixthis.compose.
  • Let Claude Code or Codex configure the sample with ./scripts/bootstrap-mcp.sh --sample.
  • Let an agent configure your app with fixthis install-agent.
  • Use Copy Prompt with Cursor, ChatGPT, or any chat agent.
  • Use Save to MCP with Claude Code or Codex.
  • Save to MCP can attach a bounded, redacted Android diagnostics baseline. Switch the session to Manual or Off if you do not want that. Copy Prompt never starts collection.
  • Runs locally over ADB and 127.0.0.1. No external API calls.

Quick Start: Agent Installs FixThis in Your App

Claude Code / Codex Bootstrap Prompt

Paste this into Claude Code or Codex from the root of a Jetpack Compose Android app:

text
Install FixThis in this project and configure it for this agent.
Use this order:1. Run `fixthis install-agent --project-dir . --target all --verify --json`.2. Use the JSON `readiness.state` and `actions[]` as the source of truth.3. If `requiresUserAction` is true, tell me the exact blocking action.4. Do not call `fixthis_open_feedback_console` until `readyForMcpTooling` is true, or until the report's `agent_after_restart` action is reached after restart.
Restart Claude Code or Codex if the report asks for it.Do not configure release builds. Do not commit `.fixthis/`.

The agent should run:

bash
# macOSbrew install beyondwin/tools/fixthis
# Nodenpm install -g @beyondwin/fixthis
# macOS/Linux fallbackcurl -fsSL https://raw.githubusercontent.com/beyondwin/FixThis/main/scripts/install-fixthis.sh \  | bash -s -- --version v1.5.0
fixthis install-agent --project-dir . --target all --verify --json

If Homebrew already has it, run brew update && brew upgrade beyondwin/tools/fixthis and check fixthis --version.

fixthis install-agent applies the Gradle plugin, writes MCP config, and writes .fixthis/project.json plus .fixthis/agent-setup.*. If doctor reports NEEDS_INSTALL or metadata is missing, run ./gradlew fixthisSetup and rerun fixthis install-agent --project-dir . --target all --verify --json. Restart Claude Code or Codex when the report asks, then call fixthis_open_feedback_console. For a manual check, use fixthis doctor --project-dir . --json.

Published plugin:

kotlin
plugins {    id("io.github.beyondwin.fixthis.compose") version "1.5.0"}

The plugin adds the debug-only sidekick and keeps release builds out.

Quick Start: Sample App to Agent Handoff

bash
git clone <this-repo> && cd FixThis./gradlew :fixthis-cli:installDist :fixthis-mcp:installDistfixthis-cli/build/install/fixthis/bin/fixthis doctor --package io.github.beyondwin.fixthis.samplefixthis-cli/build/install/fixthis/bin/fixthis run --package io.github.beyondwin.fixthis.sample

fixthis run installs the sample debug APK, launches it, and opens FixThis Studio at http://127.0.0.1:<port>.

In the console:

  1. Click Annotate.
  2. Click a UI element, or drag an area.
  3. Type the change you want.
  4. Repeat for other spots on this screen.
  5. Copy Prompt for a chat agent, or Save to MCP for Claude Code / Codex.

You are done when a numbered annotation is visible and you have copied Markdown or saved a local MCP handoff.

Maintainers can prove that Copy Prompt path on a connected device:

bash
npm run real-copy-prompt:smoke -- --strict

Pick Your Path

GoalStart here
Try it without touching your appSample quick start
Add it to your debug buildAdd to your app
Connect an agentConnect your agent
Bootstrap MCP from this repoMCP.md
Use the consoleConsole tour
Understand the productProduct
Diagnose a failureTroubleshooting
Inspect contractsDocs index
ContributeCONTRIBUTING.md
ReaderStart here
First-time userSample quick start
External app developerAdd to your app
Agent in this repoAGENTS.md and project map
MaintainerDocs index and project map
Contract or CLI changeReference contracts

Why not just a screenshot?

A screenshot is enough when the target is obvious. FixThis helps when the UI is dense, list-rendered, or named mostly by composable:

  • Top-3 source candidates with line numbers and match reasons
  • editSurface hints for call site vs component vs copy vs layout vs interop
  • Instance grouping so identical cards stay distinct
  • Screen fingerprint so a rotated or changed screen cannot sneak into a save
  • Honest confidence: visual-only, stale, or possible AndroidView/WebView
  • Bounded runtime diagnostics on Save to MCP
  • Retry-safe batches that do not duplicate work

Modules

ModuleRole
:app (sample/)Validation sample
:fixthis-compose-corePure Kotlin domain
:fixthis-compose-sidekickDebug Android runtime
:fixthis-gradle-pluginSource index and debug wiring
:fixthis-cliDesktop CLI
:fixthis-mcpMCP server and local console

More: Product, decisions, architecture.

Status

Public install paths:

  • Gradle plugin io.github.beyondwin.fixthis.compose
  • Maven io.github.beyondwin:fixthis-compose-sidekick and fixthis-compose-core
  • Homebrew brew install beyondwin/tools/fixthis
  • GitHub Release fixthis-cli-mcp-vX.Y.Z.tar.gz
  • npm @beyondwin/fixthis
  • MCP Registry io.github.beyondwin/fixthis

Live dashboard: Release readiness.

main may be ahead of the latest tag. See CHANGELOG and release notes.

Agents in this repo should read AGENTS.md.

Trust

FixThis stays on your machine. The sidekick talks over ADB, the console binds to localhost, and Save to MCP writes under .fixthis/. Screenshots can still contain sensitive pixels. Review them before sharing. Do not commit .fixthis/.

Details: Privacy, Security, Threat model.

V1 stays narrow: Compose debug builds, local ADB, MCP-first handoff, best-effort source candidates, no cloud upload. See Roadmap.

License

MIT. Third-party notices in NOTICE.

Source: README.md at commit d96c4f8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.5.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts