Device Log
Use this skill when the task is to read the recent Blokada shared app log or crash report from a connected device.
The current implementation supports iOS real devices only. Keep the skill name generic so Android can be added later without splitting the workflow again.
This skill reads the same share-log file exposed in Settings, then filters it on the host. It does not drive UI automation.
Default command
In Codex, request elevated access before running the command. The iOS device services are not reliably reachable from the sandbox.
Prefer the dedicated automation script:
node automation/device/log.mjs
Optional overrides:
WINDOW=today node automation/device/log.mjs
LINES=800 node automation/device/log.mjs
IOS_DEVICE_NAME="Example iPhone" node automation/device/log.mjs
APP_BUNDLE_ID=net.blocka.app.family node automation/device/log.mjs
ARTIFACT=crash node automation/device/log.mjs
ARTIFACT=crash APP_BUNDLE_ID=net.blocka.app.family node automation/device/log.mjs
Default behavior:
- auto-selects the first connected device when no device selector is provided
- reads the last hour of the shared app log
- returns up to
400lines after time filtering - saves artifacts under
automation/device/output/
Supported variables:
ARTIFACTdefaults tolog, supportslogorcrashIOS_DEVICE_NAMEIOS_UDIDAPP_BUNDLE_IDdefaults tonet.blocka.appWINDOWdefaults to1h, supports1hortodayLINESdefaults to400
Behavior
ARTIFACT=log:- pulls the share-log file from the app group container
group.net.blocka.app, underLibrary/Application Support/Blokada/(devicectl on Xcode 26.5+ cannot list or copy files at the container root, only inside the standardLibrary/hierarchy) - chooses the newest matching file for the selected bundle:
net.blocka.app->blokada-i6x*.lognet.blocka.app.family->blokada-iFx*.log
- filters on the host for the last hour or today
- applies
LINESafter time filtering - saves artifacts under
automation/device/output/logs/
- pulls the share-log file from the app group container
ARTIFACT=crash:- lists the
systemCrashLogsdomain - chooses the newest matching file for the selected bundle:
net.blocka.app->Dev-*.ipsnet.blocka.app.family->FamilyDev-*.ips
- saves artifacts under
automation/device/output/crashlogs/
- lists the
Notes
ARTIFACT=logreads the Settings share-log equivalent, notblokada.log.ARTIFACT=crashis the post-mortem path when the app already terminated or Appium cannot stay attached.- If no matching share-log file exists, treat that as a tooling or app-state problem and report it clearly.