Przejdź do treści
Biblioteka skilli
Programowanie · Testowanie

slipstream-inspector

/slipstream-inspector

Uruchamia aplikację Flutter, robi zrzuty ekranu, klika elementy i debuguje układ przez narzędzia MCP.

Licencja
BSD-3-Clause
Ostatnia zmiana repozytorium
17.08.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 17.08.2026, bez odwołań do wycofanych modeli i API.

Licencja

BSD-3-Clause, otwarta.

Co robi i kiedy

Uruchamia aplikację Flutter, robi zrzuty ekranu, klika elementy i debuguje układ przez narzędzia MCP.

Wyzwalacze z opisu

run the Flutter appflutter runstart the applaunch the apptest the UItake a screenshot of the appclick a button in the appdebug the layout
Oryginalny opis (EN)

This skill should be used when the user asks to "run the Flutter app", "flutter run", "start the app", "launch the app", "test the UI", "take a screenshot of the app", "click a button in the app", "debug the layout", or any request involving launching, observing, or interacting with a running Flutter app. When the flutter-slipstream plugin is installed, MCP tools replace terminal commands for all Flutter app interaction.

Jak działa

  1. Use the plugin tools, not the terminal
  2. Standard workflow
  3. Orienting on an unfamiliar screen
  4. Interacting with the app
  5. Hot reload vs. hot restart
  6. Gotchas
  7. Debugging layout problems
Sekcje z nagłówków SKILL.md, w oryginale · 98 linii, 590 słów
Podgląd SKILL.md
---
name: slipstream-inspector
description: >-
  This skill should be used when the user asks to "run the Flutter app",
  "flutter run", "start the app", "launch the app", "test the UI", "take a
  screenshot of the app", "click a button in the app", "debug the layout", or
  any request involving launching, observing, or interacting with a running
  Flutter app. When the flutter-slipstream plugin is installed, MCP tools
  replace terminal commands for all Flutter app interaction.
user-invocable: false
---

# flutter-slipstream

The flutter-slipstream plugin provides MCP tools for launching, observing, and
interacting with a running Flutter app. Use these tools — not terminal commands
— for all Flutter app work.

## Use the plugin tools, not the terminal

When working on a Flutter app with this plugin installed, always prefer the MCP
tools over shell commands:

| Instead of...        | Use...       |
| -------------------- | ------------ |
| `flutter run`        | `run_app`    |
| Hot reload (shell)   | `reload`     |
| Reading terminal log | `get_output` |

`run_app` does more than `flutter run`: it auto-selects the best available
device, exposes app output via `get_output`, and enables screenshot capture,
layout inspection, and UI interaction — none of which are possible from a plain
terminal session.

## Standard workflow

```
run_app → get_output → take_screenshot
  → edit source → reload → get_output → take_screenshot → repeat
```

- Call `get_output` after `run_app`, after `reload`, and after any interaction
  tool. It drains the output buffer — skipping it causes output to accumulate
  silently across calls.
- Call `take_screenshot` after every reload to confirm the change looked right.
  Never assume a visual edit was correct without seeing it.
- When `get_output` returns a `[flutter.error]` line, the widget ID in the
  summary can be passed directly to `inspect_layout`.

## Orienting on an unfamiliar screen

1. `take_screenshot` — see what's on screen.
2. `get_route` — see the navigator stack and current screen widget names with
   source file locations. Use before editing to confirm which file to change.
3. `get_semantics` — see the interactive elements and their node IDs.

## Interacting with the app

When `slipstream_agent` is installed in the Flutter app, prefer finder-based
tools — they are more reliable than semantics-based interaction:

- `perform_tap(byKey: ...)` / `perform_set_text(byKey: ...)` — most reliable;
  add `ValueKey('my_key')` to the widget while writing it.
- `perform_tap(byText: ...)` — good for button labels.
- `perform_tap(byType: ...)` — useful for unique widget types.

Fall back to `perform_semantic_action` (works without `slipstream_agent`) when
the target widget has no key and no distinctive text — e.g. a built-in
`IconButton`.

## Hot reload vs. hot restart

`reload` (hot reload) preserves app state and is fast, but cannot apply
structural changes: new routes, modified `initState`, changed widget keys, or
constructor signature changes. Use `reload(full_restart: true)` when state must
reset. Expect the app to return to its initial state.

## Gotchas

### `get_output` must be called explicitly

`get_output` is a pull operation — it drains the buffer and clears it. Call it
after every `run_app`, `reload`, and interaction tool, even when no output is
expected. Skipping it causes errors to accumulate and makes `[flutter.error]`
entries harder to correlate with their cause.

### Tooltip text is not a semantics label

Flutter's built-in widgets sometimes set a `Tooltip` (e.g. the Drawer hamburger
button gets "Open navigation menu") but that string does **not** appear as a
semantics label in `get_semantics` output. If a button shows no label, use its
numeric node ID with `perform_semantic_action`.

### Screenshot captures the Flutter view only

`take_screenshot` captures only the Flutter-rendered view. Native system UI
(permission dialogs, share sheets) does not appear. If a red `flutter.error`
chip is visible in the screenshot, call `get_output` to clear it before
retaking.

## Debugging layout problems

- `inspect_layout` with no `widget_id` starts from the root.
- Widget IDs from `[flutter.error]` output can be passed directly — no tree
  traversal needed.
- Increase `subtree_depth` when the relevant widget is several levels down.
- `evaluate` is useful for exact runtime values (`MediaQuery.of(...)`,
  controller state) that don't appear in the layout tree.

Wersje

W bazie nie ma innych skilli o nazwie slipstream-inspector.

Migawka bazy z 28.10.2026 · wersja paczki dbe5ca19e7e4 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100flutter-skill
    Automatyzuje i testuje aplikacje Flutter: uruchamia je, sprawdza drzewa widgetów, dotyka elementów, wpisuje tekst, przewija, robi zrzuty ekranu, waliduje stan i debuguje przez Dart VM Service Protocol.
  • 100flutter-mcp
    Obsługuje działającą aplikację Flutter przez serwer Flutter MCP toolkit: kontrola wstępna, pętla snapshot, tap, enter i scroll, walidacja hot reload oraz parsowanie kopert błędów.
  • 90slipstream-packages
    Sprawdza API pakietów pub przed pisaniem kodu Dart lub Flutter, gdy pakiet jest nieznany albo jego wersja jest nowsza.
  • 100flutter-mcp-toolkit-inspect
    Odczytuje stan działającej aplikacji Flutter: migawka semantyczna, szczegóły widoku, błędy, zrzuty ekranu i informacje o VM.
  • 100pyside6-mcp
    Pozwala widzieć, sterować i debugować działającą aplikację desktopową PySide6 lub Qt przez serwer MCP: zrzuty ekranu, kliknięcia, wpisywanie, logi i stan widżetów.
  • 100run-inspector
    Uruchamia MCPJam Inspector lokalnie, loguje przeglądarkę i sprawdza zmianę w działającej aplikacji przez zrzuty ekranu.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.