From lisa-expo
Check application logs from local processes, browser console, React Native device logs, or remote AWS CloudWatch. Supports log tailing, filtering, and error searching across all platforms.
npx claudepluginhub codyswanngt/lisa --plugin lisa-expoThis skill is limited to using the following tools:
View and search logs across all platforms and environments.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
View and search logs across all platforms and environments.
Argument: $ARGUMENTS — target and optional filter (e.g., dev errors, staging api, local, browser, device ios, production {function})
.)${BACKEND_DIR:-../backend-v2} — set BACKEND_DIR in .claude/settings.local.json if your backend is elsewherepackage.json to discover logs:*, logs:watch:*, and aws:signin:* scriptslogs:{env} scripts (typically set via FUNCTION_NAME env var).env.{environment} to find Sentry DSN for error correlationLocal services run in foreground processes. Their logs are captured in the terminal where they were started.
bun start:local or bun start:dev (Metro bundler)IS_OFFLINE=true bun run start:local (Serverless Offline)If services were started via the ops-run-local skill with run_in_background, check the background task output file.
For inspecting JavaScript errors, warnings, and console.log output in the browser at runtime.
Use when you need to capture browser logs programmatically during UAT or debugging.
Load Playwright tools — use ToolSearch to search for playwright browser.
Navigate to the app:
browser_navigate to the target URL (discover from e2e/constants.ts or .env.* files)Capture console messages:
browser_console_messages — returns all console.log, console.warn, console.error outputCheck for failed network requests:
browser_network_requests — shows all HTTP requests including 4xx/5xx failuresRun custom JS to inspect state:
browser_evaluate with script: JSON.stringify(performance.getEntriesByType('resource').filter(r => r.duration > 1000).map(r => ({name: r.name, duration: r.duration})))When a developer is debugging interactively:
http://localhost:8081)Cmd+Option+I (macOS) or F124xx or 5xx)For inspecting logs on iOS and Android devices/simulators when running the native app.
j)The modern debugging tool for Expo apps (React Native 0.76+):
bun start:local or bun start:devj in the Metro terminal to open React Native DevToolsm)Press m in the Metro terminal to open the Developer Menu on the connected device:
# Via Expo CLI (logs appear in Metro terminal automatically)
# Just run the app — console.log output streams to the terminal
# Via Xcode Console (native-level logs)
# Open Xcode > Devices and Simulators (Shift+Cmd+2) > Open Console
# Via macOS Console app (simulator logs)
# Open Console.app > filter by process name
# Via Expo CLI (logs appear in Metro terminal automatically)
# Just run the app — console.log output streams to the terminal
# Via adb logcat (native-level logs, verbose)
adb logcat *:E # Errors only
adb logcat -s ReactNativeJS # React Native JS logs only
adb logcat -s ReactNativeJS:V *:S # JS logs verbose, suppress everything else
# Via Android Studio Logcat
# Open Android Studio > View > Tool Windows > Logcat
# Filter by package name or "ReactNativeJS"
For production crash investigation on native platforms:
ops-monitor-errors skillDiscover available log scripts from the backend package.json (matching logs:* and logs:watch:*).
cd "${BACKEND_DIR:-../backend-v2}"
bun run aws:signin:{env}
cd "${BACKEND_DIR:-../backend-v2}"
FUNCTION_NAME={fn} bun run logs:{env}
cd "${BACKEND_DIR:-../backend-v2}"
FUNCTION_NAME={fn} bun run logs:watch:{env}
For more advanced filtering, use the AWS CLI directly. Discover the AWS profile from backend package.json aws:signin:* scripts.
aws logs describe-log-groups \
--profile {aws-profile} \
--region us-east-1 \
--query 'logGroups[].logGroupName' \
--output text | tr '\t' '\n'
aws logs filter-log-events \
--profile {aws-profile} \
--region us-east-1 \
--log-group-name "{log-group}" \
--start-time $(date -v-30M +%s000) \
--filter-pattern "ERROR" \
--query 'events[].message' \
--output text
aws logs tail "{log-group}" \
--profile {aws-profile} \
--region us-east-1 \
--follow \
--since 10m
For frontend build issues:
# List recent builds
eas build:list --limit 5
# View specific build details
eas build:view {build-id}
Report log findings as:
| Source | Timestamp | Level | Context | Message |
|---|---|---|---|---|
| CloudWatch | 2024-01-15T10:30:00Z | ERROR | api | Connection timeout to RDS |
| Browser | — | ERROR | console | TypeError: Cannot read property 'name' |
| Device | — | WARN | ReactNativeJS | VirtualizedList: missing keys |
Include a summary of findings: total errors, warnings, and any patterns observed.