cli-anything-nslogger
CLI harness for NSLogger — parse, filter, export, and monitor NSLogger log files (.rawnsloggerdata / .nsloggerdata)
What this skill does
# cli-anything-nslogger
A complete CLI harness for [NSLogger](https://github.com/fpillet/NSLogger), the macOS log viewer for iOS/macOS apps.
## Installation
```bash
cd nslogger/agent-harness
pip install -e .
# Verify
cli-anything-nslogger --help
```
## Command Reference
### `generate` — Create sample files for testing
```bash
cli-anything-nslogger generate sample.rawnsloggerdata --count 50
```
### `read` — Display messages from a file
```bash
# All messages
cli-anything-nslogger read session.rawnsloggerdata
# Errors only (level 0)
cli-anything-nslogger read session.rawnsloggerdata --level 0
# Filter by tag and text search
cli-anything-nslogger read session.rawnsloggerdata --tag Network --search "timeout"
# First 20 messages as JSON
cli-anything-nslogger read session.rawnsloggerdata --limit 20 --json
```
### `filter` — Advanced filtering
```bash
# Errors and warnings only
cli-anything-nslogger filter session.rawnsloggerdata --level 1
# By tag
cli-anything-nslogger filter session.rawnsloggerdata --tag Auth --tag Network
# Regex search
cli-anything-nslogger filter session.rawnsloggerdata --regex "(timeout|failed|error)"
# By thread
cli-anything-nslogger filter session.rawnsloggerdata --thread "main"
# JSON output
cli-anything-nslogger filter session.rawnsloggerdata --level 0 --json
```
### `export` — Export to text/JSON/CSV
```bash
# JSON to stdout
cli-anything-nslogger export session.rawnsloggerdata --format json
# CSV to file
cli-anything-nslogger export session.rawnsloggerdata --format csv --output logs.csv
# Filtered text export
cli-anything-nslogger export session.rawnsloggerdata --format text --level 1 --tag Network
```
### `stats` — Summary statistics
```bash
# Human-readable summary
cli-anything-nslogger stats session.rawnsloggerdata
# JSON for agent consumption
cli-anything-nslogger stats session.rawnsloggerdata --json
```
JSON output shape:
```json
{
"total": 342,
"by_level": {"ERROR": 12, "WARNING": 34, "INFO": 200, "DEBUG": 96},
"by_tag": {"Network": 89, "Auth": 45, "UI": 120},
"by_thread": {"main": 200, "bg-queue": 142},
"by_type": {"text": 340, "client_info": 1, "disconnect": 1},
"clients": ["MyApp"],
"first_timestamp": "2024-01-01T10:00:00+00:00",
"last_timestamp": "2024-01-01T10:05:30+00:00",
"duration_seconds": 330.0
}
```
### `listen` — Receive live connections
```bash
# Match the NSLogger.app GUI Bonjour behavior for iOS auto-discovery
cli-anything-nslogger listen --bonjour --name bazinga --debug
# Mirror live logs to a text file while still printing stdout
cli-anything-nslogger listen --bonjour --name bazinga --output app.log
# Write machine-readable JSON Lines
cli-anything-nslogger listen --bonjour --name bazinga --output app.jsonl --output-format jsonl
# Direct TCP/TLS mode for manually configured clients
cli-anything-nslogger listen --port 50000 --ssl --debug
# Show only errors while listening, output as JSON stream
cli-anything-nslogger listen --bonjour --name bazinga --level 0 --json
# Run until Ctrl-C
cli-anything-nslogger listen --bonjour --name bazinga
```
Use Bonjour mode first for iOS apps because it matches the desktop NSLogger GUI:
the CLI publishes a native macOS `NetService` with `_nslogger-ssl._tcp` and
accepts TLS NSLogger frames. Use direct TCP/TLS only when the app is manually
configured with the Mac host and port.
### `repl` — Interactive Command REPL
```bash
cli-anything-nslogger repl session.rawnsloggerdata
# Or launch it by running cli-anything-nslogger with no subcommand.
```
## Log Levels
| Value | Name | Use for |
|-------|---------|---------|
| 0 | ERROR | Unrecoverable failures |
| 1 | WARNING | Recoverable issues |
| 2 | INFO | Normal operation |
| 3 | DEBUG | Developer details |
| 4 | VERBOSE | Trace-level noise |
## Message JSON Shape
```json
{
"sequence": 42,
"timestamp": "2024-01-01T10:01:23+00:00",
"timestamp_ms": 456,
"thread_id": "main",
"tag": "Network",
"level": 0,
"level_name": "ERROR",
"type": "text",
"text": "Connection timed out after 30s",
"image_width": 0,
"image_height": 0,
"client_name": "MyApp",
"client_version": "2.1.0",
"os_name": "iOS",
"os_version": "17.0",
"machine": "iPhone15,2"
}
```
## Agent Workflow Examples
```bash
# 1. Inspect a captured crash session
cli-anything-nslogger stats crash.rawnsloggerdata --json
# 2. Find all errors in the 5 minutes before crash
cli-anything-nslogger filter crash.rawnsloggerdata --level 0 --json
# 3. Get network failures only
cli-anything-nslogger filter crash.rawnsloggerdata --tag Network --regex "fail|timeout|error" --json
# 4. Export full log for offline analysis
cli-anything-nslogger export crash.rawnsloggerdata --format json --output crash_log.json
# 5. Monitor an iOS app live and keep a local copy
cli-anything-nslogger listen --bonjour --name bazinga --output app.log --debug
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.