{
  "markdown": "![Flutter Slipstream in action](docs/slipstream_banner.png)\n\n# Flutter Slipstream\n\nFlutter Slipstream is an agentic plugin that makes AI coding agents more\neffective for Dart and Flutter projects. It enables live app introspection for\nFlutter apps: screenshots, widget-tree inspection, tap/type/scroll interaction,\nand error capture, as well as Dart package API summarization for agents.\n\nThis addresses two structural problems that agents face:\n\n- a lack of runtime visibility into a running Flutter app — agents can't see\n  screenshots, inspect the widget tree, or verify that a state change took\n  effect\n- training cutoffs that leads to stale package choices and subtly wrong API\n  signatures\n\n## Features\n\n- **Live app inspection** — launch a Flutter app, take screenshots, inspect the\n  widget tree, evaluate Dart expressions, and observe runtime errors, all from\n  agent tool calls.\n- **Tap, type, and scroll** — interact with the running app via semantics or\n  widget finders; no test harness required.\n- **Accurate package APIs** — retrieve any package's public API directly from\n  the local pub cache as a compact Dart stub, version-matched and free of\n  implementation noise.\n- **Package safety guidance** — the bundled skill instructs agents to read pub\n  command output for discontinued packages and outdated major versions, and take\n  corrective action before bad dependencies land.\n\n## Installation\n\n| Coding Agent   | Installing Slipstream                                                                                              |\n| -------------- | ------------------------------------------------------------------------------------------------------------------ |\n| Claude Code \\* | `claude plugin marketplace add devoncarew/slipstream` <br> `claude plugin install flutter-slipstream@slipstream`   |\n| GitHub Copilot | `copilot plugin marketplace add devoncarew/slipstream` <br> `copilot plugin install flutter-slipstream@slipstream` |\n| Gemini CLI     | `gemini extensions install https://github.com/devoncarew/flutter-slipstream`                                       |\n\n> [!NOTE]\n>\n> If you see a \"Failed to install plugin ... No ED25519 host key is known for\n> github.com ... Host key verification failed\" error, see\n> anthropics/claude-code/issues/26588 / anthropics/claude-code/issues/50725 for\n> possible workarounds.\n\n## Getting Started / Using Slipstream\n\nInstall the plugin, then work on Flutter projects as you normally would. No\nspecial prompting is required — Slipstream works in the background.\n\n**UI development workflow:** When building or debugging UI, ask the agent to run\nthe app. It will launch on a desktop device automatically, then iterate using\nhot reload after each source edit. Because the agent can take screenshots and\ninspect the widget tree, it catches overflow errors, layout surprises, and\nrendering regressions on its own — without you having to describe what went\nwrong.\n\n**Package hygiene:** When an agent adds a package, the bundled skill guides it\nto read `flutter pub add` output for discontinued-package and outdated-version\nwarnings, and to take corrective action (switching to the replacement package,\nor updating the version constraint) before the bad dependency lands.\n\n**Optional: richer instrumentation.** Add\n[`package:slipstream_agent`](https://pub.dev/packages/slipstream_agent) as a\ndependency for finder-based interactions (tap by key, type, or text), scroll\nsupport, and router-aware navigation. Without it, Slipstream still works well\nvia semantics and the Flutter inspector protocol.\n\n## Tools\n\n### Flutter UI agent (`inspector`)\n\nMCP commands for launching, inspecting, and interacting with a running Flutter\napp. Gives agents a [Playwright](https://playwright.dev/)-style interface to the\nrunning app: take screenshots, inspect the widget tree, evaluate arbitrary Dart\nexpressions, and observe runtime errors with widget IDs.\n\n<!-- inspector -->\n<!-- prettier-ignore-start -->\n| Command | Description |\n|---------|-------------|\n| `run_app` | Builds and launches the Flutter app. |\n| `reload` | Applies source file changes to a running Flutter app. |\n| `get_output` | Returns buffered app output and runtime events since the last call (or the last reload/restart). |\n| `take_screenshot` | Captures a PNG screenshot of the running Flutter app. |\n| `inspect_layout` | Use when debugging layout issues, overflow errors, or unexpected widget sizing. |\n| `evaluate` | Evaluates a Dart expression on the running app's main isolate and returns the result as a string. |\n| `get_route` | Returns the current navigator route stack with screen widget names and source locations. |\n| `navigate` | Navigates the app to a route path. |\n| `perform_tap` | Taps a widget located by a finder. |\n| `perform_set_text` | Sets the text content of a text field located by a finder. |\n| `perform_scroll` | Scrolls a Scrollable widget by a fixed number of logical pixels. |\n| `perform_scroll_until_visible` | Scrolls a Scrollable until a target widget is visible in the viewport. |\n| `get_semantics` | Returns a flat list of visible semantics nodes from the running Flutter app. |\n| `perform_semantic_action` | Dispatches a semantics action on a widget by semantics node ID or label. |\n| `close_app` | Stops the running Flutter app and releases its session. |\n<!-- prettier-ignore-end -->\n<!-- inspector -->\n\n### Package API retrieval (`packages`)\n\nRetrieves a package's public API surface directly from the local pub cache and\nreturns it as a compact Dart stub — signatures only, no bodies, no private\nmembers. Agents get accurate, version-matched API information without reading\nraw source files or relying on training-data summaries.\n\n<!-- packages -->\n<!-- prettier-ignore-start -->\n| Command | Description |\n|---------|-------------|\n| `package_summary` | Returns API summaries for Dart or Flutter packages; start here to orient on an unfamiliar package. |\n| `library_stub` | Returns the full public API for one library as a Dart stub (signatures only, no bodies). |\n| `class_stub` | Returns the public API for a single named class, mixin, or extension as a Dart stub (signatures only, no bodies). |\n<!-- prettier-ignore-end -->\n<!-- packages -->\n\n### Package safety skill\n\nThe `add-package` skill fires automatically when an agent is about to add a Dart\nor Flutter package dependency. It instructs the agent to:\n\n- Use `flutter pub add` rather than editing `pubspec.yaml` directly, so pub\n  output is always visible.\n- Read `pub add` output for `(discontinued replaced by X)` annotations and\n  switch to the replacement package.\n- Read `pub add` output for `(X.Y.Z available)` annotations on newly added\n  direct dependencies, and run `flutter pub outdated` to confirm a major-version\n  gap before proceeding.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n",
  "bytes": 6827,
  "sha": "8d29553566e83583cc783099d26ecb93b86a88c287afc8ec4db45b23c46f9716",
  "repo_slug": "devoncarew/flutter-slipstream",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_devoncarew_flutter_slipstream_002239c6/readme"
}