{
 "schema_version": 1,
 "generated": "2026-10-24",
 "id": "thebanri-limoni--let-ai-agent-drive-running-app",
 "repo": "thebanri/limoni",
 "repo_url": "https://github.com/thebanri/limoni",
 "repo_slug": "thebanri-limoni",
 "title": "Let an AI agent drive a running app through MCP",
 "page_title": "How to let an AI agent drive a running app through MCP with Limoni",
 "summary": "Connect Claude Code or Cursor to a running Limoni app so the agent can click, type and read widgets.",
 "who": "A developer who wants an AI coding agent to walk through a terminal workflow, such as a release checklist, and report results.",
 "problem": "Agents cannot reliably use a terminal UI that only exposes raw characters on screen.",
 "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": [
  "Run `go run -tags limoni_debug ./examples/agent_checklist` in one terminal and leave it running",
  "Run `claude mcp add limoni -- limoni-mcp -socket \"$XDG_RUNTIME_DIR/limoni-checklist.sock\"` to register the server with Claude Code",
  "Ask the agent to read the tree, then work through the checklist using the click, type_text and wait_for tools",
  "Check the checklist state in the running app after the agent finishes"
 ],
 "agent_prompt": "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.",
 "agents": [
  "claude-code",
  "cursor"
 ],
 "difficulty": "Advanced",
 "time": "45 minutes",
 "basis": "readme",
 "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.",
 "category": "Software and DevOps",
 "tags": [
  "Software and DevOps"
 ],
 "lang": "go",
 "requirements": [
  "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"
 ],
 "risk": "dual-use",
 "seen_in_the_wild": false,
 "mentioned_publicly": false,
 "risks": [
  {
   "tag": "credentials",
   "notice": "The agent can type into fields such as a deploy token, so only run this against a debug build with test credentials."
  }
 ],
 "best": false,
 "score": 0.9,
 "evidence": [],
 "url": "https://dedupedai.com/use-cases/thebanri-limoni/let-ai-agent-drive-running-app/",
 "md": "https://dedupedai.com/use-cases/thebanri-limoni/let-ai-agent-drive-running-app/index.md",
 "disclaimer": "Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked \"Seen in the wild\", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email hello@dedupedai.com and we will look at it promptly.",
 "api": "https://dedupedai.com/api/v1/usecases/thebanri-limoni--let-ai-agent-drive-running-app.json",
 "api_version": "v1"
}
