Authorization notice. Limoni is dual-use. Only use it on software, sites and systems you own or have explicit permission to test.
Who it is forA Go developer maintaining a terminal app whose tests break every time a layout shifts by a column.
The problemTests that parse the character grid fail when the layout moves, so each small change breaks the suite.
The outcomeA test suite that finds buttons, inputs and lists by their semantic role and label, waits for conditions instead of sleeping, and prints the widget tree of the last frame when it fails.
What you need first
- Go toolchain installed (for go install, go get, go run and go test)
- A terminal that supports the app's output (images and some features depend on the terminal)
- For the MCP use case: an MCP client such as Claude Code or Cursor, and limoni-mcp available on PATH (the README does not show how to install it)
- For the backdrop use case: curl, sh, and a terminal emulator
Steps
- Run
go run github.com/thebanri/limoni/cmd/limoni@latest new myapp -template counter(inferred, check the README) - Run
cd myapp && go mod tidy - Run
go test ./...and confirm the uitest test passes - Open the generated test file and replace the checks with page.GetByRole("button", "<label>").Click() and page.Expect(...) calls for your own widgets
- Run
go test ./...again after each change to the UI
Prompt for your agent
In the Go project at <path>, using the github.com/thebanri/limoni module, add a uitest test that clicks the button labelled <label> and expects a widget with id status to contain the text <expected text>. Run go test ./... and report whether it passes; if it fails, include the printed widget tree.
Caveat. The README describes uitest as in-process testing with no terminal needed, but the API is pre-1.0 and the README warns the project has no stable 1.0 API yet.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for thebanri/limoni and "Write UI tests that click widgets by role and label"
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer