# AI use cases for Limoni (thebanri/limoni)

Repo: [thebanri/limoni](https://github.com/thebanri/limoni) | Use cases: 5 | Page: https://dedupedai.com/use-cases/thebanri-limoni/

Limoni is a terminal UI engine for Go with a semantic widget tree that tests and AI agents can drive, plus zero-allocation rendering, charts, 3D, images and WebAssembly support.

This file holds every use case of this repo. Each one starts with a "## " heading and ends with its URL.

- Write UI tests that click widgets by role and label: https://dedupedai.com/use-cases/thebanri-limoni/write-ui-tests-by-widget-role/
- Let an AI agent drive a running app through MCP: https://dedupedai.com/use-cases/thebanri-limoni/let-ai-agent-drive-running-app/
- Inspect large log files in a terminal viewer: https://dedupedai.com/use-cases/thebanri-limoni/inspect-large-logs-in-terminal/
- Put a moving scene behind your terminal shell: https://dedupedai.com/use-cases/thebanri-limoni/put-animated-backdrop-behind-shell/
- Build a live charts dashboard for a terminal: https://dedupedai.com/use-cases/thebanri-limoni/build-live-chart-dashboard/

## How to write UI tests that click widgets by role and label with Limoni

Repo: [thebanri/limoni](https://github.com/thebanri/limoni) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Test a Go terminal app by widget role and label instead of screen coordinates, using uitest.

**Who it is for:** A Go developer maintaining a terminal app whose tests break every time a layout shifts by a column.

**The problem:** Tests that parse the character grid fail when the layout moves, so each small change breaks the suite.

**The outcome:** A 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.

### Steps

1. Run `go run github.com/thebanri/limoni/cmd/limoni@latest new myapp -template counter` (inferred, check the README)
2. Run `cd myapp && go mod tidy`
3. Run `go test ./...` and confirm the uitest test passes
4. Open the generated test file and replace the checks with page.GetByRole("button", "<label>").Click() and page.Expect(...) calls for your own widgets
5. Run `go test ./...` again after each change to the UI

### Prompt to paste into your agent

```text
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.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/thebanri-limoni/write-ui-tests-by-widget-role/

## How to let an AI agent drive a running app through MCP with Limoni

Repo: [thebanri/limoni](https://github.com/thebanri/limoni) | Difficulty: Advanced | Time: 45 minutes | Basis: From the README

Connect Claude Code or Cursor to a running Limoni app so the agent can click, type and read widgets.

**Who it is for:** A developer who wants an AI coding agent to walk through a terminal workflow, such as a release checklist, and report results.

**The problem:** Agents cannot reliably use a terminal UI that only exposes raw characters on screen.

**The outcome:** An agent that reads the semantic tree, clicks buttons, types into fields and waits for text, using eight MCP tools, while secret fields stay hidden from it.

### Steps

1. Run `go run -tags limoni_debug ./examples/agent_checklist` in one terminal and leave it running
2. Run `claude mcp add limoni -- limoni-mcp -socket "$XDG_RUNTIME_DIR/limoni-checklist.sock"` to register the server with Claude Code
3. Ask the agent to read the tree, then work through the checklist using the click, type_text and wait_for tools
4. Check the checklist state in the running app after the agent finishes

### Prompt to paste into your agent

```text
Using the limoni MCP server in this repo at <path>, read the semantic tree of the running agent_checklist app, complete the checklist items named <items>, and report the final tree. Verify that no secret field value is returned in your output.
```

### Caveat

The automation socket exists only in -tags limoni_debug builds and is closed by default, so the command above does not work in a normal build.

Risk, credentials: The agent can type into fields such as a deploy token, so only run this against a debug build with test credentials.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/thebanri-limoni/let-ai-agent-drive-running-app/

## How to inspect large log files in a terminal viewer with Limoni

Repo: [thebanri/limoni](https://github.com/thebanri/limoni) | Difficulty: Intermediate | Time: 15 minutes | Basis: From the README

Follow files or piped output, colour by level, and filter very large logs with zest.

**Who it is for:** A DevOps or backend engineer debugging a service whose logs are too large for a text editor.

**The problem:** Opening a multi-million-line log in a normal editor or pager is slow and hard to filter by level.

**The outcome:** A terminal viewer that follows a file or pipe, colours lines by level, and filters a 1,000,000-line log without stalling.

### Steps

1. Run `go install github.com/thebanri/limoni/cmd/zest@latest`
2. Run `zest app.log` on your log file, or pipe a stream with `kubectl logs -f pod | zest`
3. Run `zest -demo 1000000` first if you want to try the viewer without a real log

### Prompt to paste into your agent

```text
Install zest with go install github.com/thebanri/limoni/cmd/zest@latest, then run zest on <logfile> and report how many lines it loads and whether it follows new lines when the file grows.
```

### Caveat

The README gives the 67 MiB, 1,000,000-line timing as a single example, so expect different speeds on your own logs.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/thebanri-limoni/inspect-large-logs-in-terminal/

## How to put a moving scene behind your terminal shell with Limoni

Repo: [thebanri/limoni](https://github.com/thebanri/limoni) | Difficulty: Beginner | Time: 15 minutes | Basis: From the README

Run backdrop-shell so an animated scene sits behind your shell text in any terminal.

**Who it is for:** A terminal user who wants a decorative animated background without slowing down their shell.

**The problem:** Most terminals show a plain background, and adding a moving scene usually costs CPU and clutters the text.

**The outcome:** An animated scene behind the shell, with the text in front kept sharp and adjustable opacity that changes in every open terminal.

### Steps

1. Run `curl -fsSL https://raw.githubusercontent.com/thebanri/limoni/main/apps/backdrop-shell/install.sh | sh`
2. Run `backdrop-shell enable -scene synthwave` to turn on the synthwave scene
3. Run `backdrop-shell opacity 0.3` to make the scene quieter in every open terminal

### Prompt to paste into your agent

```text
Install backdrop-shell from the repo at https://github.com/thebanri/limoni with the install.sh script, then run backdrop-shell enable -scene <scene> and backdrop-shell opacity <value>. Report the command output and confirm the scene is active in the terminal.
```

### Caveat

The README says the scene costs about half a percent of one core, which is its own measurement and may differ on your machine.

Risk, remote script: The install command pipes a script from the internet directly into sh, so read install.sh first if you do not trust the source.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/thebanri-limoni/put-animated-backdrop-behind-shell/

## How to build a live charts dashboard for a terminal with Limoni

Repo: [thebanri/limoni](https://github.com/thebanri/limoni) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Run the Limoni charts example to see braille line, bar, pie and sparkline charts in a terminal.

**Who it is for:** A developer who wants a terminal dashboard with charts for monitoring or analysis and no web stack.

**The problem:** Adding charts to a terminal program usually means reaching for a separate library or building the drawing yourself.

**The outcome:** A running terminal dashboard showing braille line charts, bar charts, pie charts and sparklines, and a starting point for your own data.

### Steps

1. Run `git clone https://github.com/thebanri/limoni` and change into the cloned folder (inferred, check the README)
2. Run `go run ./examples/charts` from the repo root
3. Open the examples/charts source and replace the sample data with your own values

### Prompt to paste into your agent

```text
Clone https://github.com/thebanri/limoni, run go run ./examples/charts from the repo root, and report whether the braille line chart, bar chart, pie chart and sparklines all render. Then point one chart at <your data source>.
```

### Caveat

The README lists the charts example in the repo but does not describe its code, so the data replacement step depends on the example's structure.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/thebanri-limoni/build-live-chart-dashboard/
