snap-o-network-inspector
openai/snap-o/skills/snap-o-network-inspector/SKILL.md
Inspect Android network captures and intercept HTTP calls with the Snap-O CLI for a selected device/socket. Use for request/response details, websocket events, API response overrides, mock responses, or delays with Python route handlers.
Skill111 starsChanged 9 days ago
--- name: snap-o-network-inspector description: Inspect Android network captures and intercept HTTP calls with the Snap-O CLI for a selected device/socket. Use for request/response details, websocket events, API response overrides, mock responses, or delays with Python route handlers. --- # Snap-O Network Tool Use this skill to inspect network traffic or override API responses in an Android app. ## CLI Path Use the Network CLI bundled with the Snap-O plugin: ```bash SNAPO_BIN=/path/to/snap-o/skills/snap-o-network-inspector/scripts/snapo-network ``` Resolve `scripts/snapo-network` relative to the directory containing this `SKILL.md`; do not assume the current working directory. The script requires Python 3 and Android Platform Tools; no Python packages, compiler toolchain, or macOS application are required. The script resolves `adb` from `PATH`, `ANDROID_SDK_ROOT`, or `ANDROID_HOME`. Use `--adb <path>` or `SNAPO_ADB` to select a specific ADB executable or wrapper. Wrappers selecting a remote ADB server must tunnel Snap-O forwards back to localhost; otherwise, pass both `--adb-host` and `--adb-port`. Listings use ADB process and package information without contacting the app. JSON rows contain `pid`, `processName`, and `packageName`; unresolved identity fields are `null`. Friendly app labels and icons are not loaded. ## Current Command Surface - `snapo-network list`: lists available Snap-O Network Tool servers. - `snapo-network requests`: emits CDP network events for a server. - `snapo-network show`: shows full details for a request id, including headers and bodies. - `snapo-network intercept <file.py>`: runs [Python route handlers](references/interception.md) to edit or mock HTTP responses; requires Snap-O OkHttp interception support in the app. Useful global selectors: - `-s`, `--serial`: use a specific device serial. - `-d`: use the single connected USB device. - `-e`: use the single connected emulator. - `--adb`: use a specific ADB executable or wrapper. - `--adb-host`, `--adb-port`: connect directly to an explicit remote ADB server; otherwise the configured ADB command selects its endpoint. ## Inspection Flow 1. List available servers. ```bash "$SNAPO_BIN" list --json ``` For a remote ADB endpoint, append `--adb-host <host> --adb-port <port>` to `list`, `requests`, `show`, or `intercept`; the script uses the ADB server directly. Otherwise, its localhost forward is removed automatically when the command exits. Use `--no-app-info` to skip package and process lookup. 2. Pick a target serial and socket. If multiple devices or sockets are available, select them explicitly. 3. Pull captured events. ```bash "$SNAPO_BIN" requests -s <serial> -n <socket_name> --filter '<url-filter>' --no-stream --json ``` `--filter` uses the same case-insensitive URL syntax as the Network Tool search bar. Separate terms must all match, a term prefixed with `-` is excluded, and quotes or backslashes can escape whitespace. `snapo-network requests` replaces request `Authorization` and `Cookie` values and response `Set-Cookie` values with `[REDACTED]`. 4. Inspect one request deeply when full request or response details are required. ```bash "$SNAPO_BIN" show -s <serial> -n <socket_name> -r <request_id> --json ``` This output can contain URL query values and request or response bodies. 5. Re-check command help if output differs. ```bash "$SNAPO_BIN" --help "$SNAPO_BIN" list --help "$SNAPO_BIN" requests --help "$SNAPO_BIN" show --help "$SNAPO_BIN" intercept --help ``` ## Output Notes - `--json` emits NDJSON, so process it line by line. - `snapo-network requests` emits Chrome DevTools Protocol-style records with top-level `method` and `params` fields. - Use `--no-stream` for a one-shot buffered snapshot. - `snapo-network intercept` writes runner logs to stderr and does not accept `--json`, `--filter`, or `--no-stream`. - Network protocol 2 uses a tool-owned `/network/protocol` version check, HTTP history and body reads, and SSE for live events. Interception registers routes with a POST that returns its own SSE connection. The CLI requires an updated Android Network library.
Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
Posts are public.Sign in to post
No one has posted yet. Be the first.

