Agent skill

iOS Log Diagnose

by UniClipboard in UniClipboard/UniClipboard

Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.

AGPL-3.0Auto-check passedMobile

Install iOS Log Diagnose

skills CLI
$ npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install UniClipboard/UniClipboard ios-log-diagnose --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .claude/skills/ios-log-diagnose && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ios-log-diagnose
GitHub stars
1.9k
Token cost
~1.1k tokens
SKILL.md length
476 words
Files
2
Skills in repo
24
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.

  • Works in 2 steps: Drive — boot a sim, install the newest… → Read — choose the channel
  • Debugging why the iOS sync engine
  • SKILL.md covers Two channels — pick by what…, Steps and Gotchas
  • Runs Shell scripts from its folder; calls xcodebuild

What it does

iOS Log Diagnose is an agent skill from UniClipboard/UniClipboard. Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs. Use when debugging why the iOS sync engine or M5 reducer did something, reproducing an iOS sync / clipboard bug on the simulator, or whenever you'd otherwise ask the user "what do the logs say". All output is Swift OSLog under subsystem app.uniclipboard — the Rust core (uc-mobile) emits no logs of its own; the Swift shell logs the reducer's decisions.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `ios-logs.sh`).

It sits in Mobile, covering iOS development and State management. It works with iOS and Rust. The repository describes itself as: Real-time clipboard sync across all your devices — local-first, peer-to-peer, and end-to-end encrypted. No account. No cloud dependency. No central server. The licence is AGPL-3.0.

When your agent uses it

  • Debugging why the iOS sync engine
  • M5 reducer did something
  • Reproducing an iOS sync / clipboard bug on the simulator
  • Whenever youd otherwise ask the user what do the logs say

Example prompts

  • “d otherwise ask the user”
  • “/ios-log-diagnose”

Requirements

  • A Bash shell

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Drive — boot a sim, install the newest build, inject the Rust-core flag ON + an active server, launch
  2. Read — choose the channel

What it can do on your machine

Read from SKILL.md and the folder at commit add157e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • xcodebuild

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

iOS Log Diagnose loads about 1.1k tokens when it runs. Until then it costs about 130 tokens; SKILL.md has 476 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~130
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from UniClipboard/UniClipboard at commit add157e, republished under its AGPL-3.0 licence (© UniClipboard). 476 words, ~1,129 tokens.

Download SKILL.mdSave it as .claude/skills/ios-log-diagnose/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
ios-log-diagnose
description
Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs. Use when debugging why the iOS sync engine or M5 reducer did something, reproducing an iOS sync / clipboard bug on the simulator, or whenever you'd otherwise ask the user "what do the logs say". All output is Swift OSLog under subsystem `app.uniclipboard` — the Rust core (uc-mobile) emits no logs of its own; the Swift shell logs the reducer's decisions.

ios-log-diagnose

Read the UniClipboard iOS app's logs yourself. The mobile-sync decision core lives in Rust (uc-mobile reducer), but it has no logger — the Swift SyncEngine shell logs every reducer decision and outcome to OSLog. So one OSLog stream shows both the native Swift logic and the Rust core's behavior.

iOS app repo: /Users/mark/MyProjects/iOSApp/UniClipboard. The reducer-path log harness lives in UniClipboard/Sync/SyncEngine.swift (commit e94ffd1).

The helper is .agents/skills/ios-log-diagnose/ios-logs.sh — the only thing to invoke. Don't hand-roll simctl/log pipelines unless it can't express what you need (macOS has no timeout; the script wraps log stream in a perl alarm — reproducing that by hand is the usual mistake).

Two channels — pick by what you're after

Log level decides where a line goes. This split is the whole mental model:

  • debug → live only, never persisted. The per-tick decision trace: sync preamble: proceed/stop(...), sync route: converged/server-new/push(...), push silent-skip. Seen ONLY by streaming while it happens. Use to watch what the reducer decides each tick.
  • notice / error → persisted, queryable after the fact. The event trail: sync apply/stage/push/consent-push, sync history: round done, the five handle_* transitions, and tick: SyncError .... Use to reconstruct what already happened.

So: streaming a reproduction answers "what is it deciding right now"; show answers "what happened in the last N minutes".

Steps

  1. Drive — boot a sim, install the newest build, inject the Rust-core flag ON + an active server, launch:

    bash
    .agents/skills/ios-log-diagnose/ios-logs.sh drive [SERVER_URL]

    The engine only ticks with an active server, so drive always injects one. A dead URL (the default) still exercises preamble → proceed → getClipboard fails → tick: SyncError → backoff — enough to see decisions + the error path. For the happy path (route/apply/push/converge), pass a SERVER_URL that actually returns data (a running uniclipd mobile-sync server). Completion: the command prints injected: flag=ON server=... and a launch PID.

  2. Read — choose the channel:

    bash
    .agents/skills/ios-log-diagnose/ios-logs.sh stream [SECONDS] [CATEGORY]   # live debug, default 15s
    .agents/skills/ios-log-diagnose/ios-logs.sh show   [DURATION] [CATEGORY]  # persisted notice/error, default 5m

    CATEGORY (optional): sync (SyncEngine — reducer + tick; the usual one), network (HTTP client / connect-uri), store (persistence), app, intents. Omit for every category under app.uniclipboard. Completion: you have the sync (or target) lines for the run you triggered, and can name what the reducer decided / what failed.

Show full SKILL.md (139 more words)Show less

Gotchas

  • No content, ever. Logs carry states / bools / counts / decision enums plus an 8-char hashTag prefix — a one-way SHA fingerprint that correlates one clipboard item across pull → stage → apply → push → converge, never the content.
  • Flag injection is forward-safe. drive writes mobileCore.syncClientUsesRustCore = YES. Once the native A/B paths are deleted and Rust is the only path, that key just goes unread — the script keeps working unchanged.
  • App Group, not the app sandbox. Flag + server live in defaults suite group.app.uniclipboard.UniClipboard; injecting them needs a terminate + launch so loadServers re-reads. drive handles this.
  • More injection hooks exist. grep ProcessInfo.processInfo.environment in the iOS repo for UC_* (e.g. UC_DEVICE_TEXT to seed a device copy, UC_TEST_QR_PAYLOAD to add a server via connect-uri) — passed through SIMCTL_CHILD_<NAME>=value on launch.
  • Build first if drive says "no built UniClipboard.app": xcodebuild -scheme UniClipboard -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' build CODE_SIGNING_ALLOWED=NO.

© UniClipboard, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/ios-log-diagnose of UniClipboard/UniClipboard.

  • SKILL.md
  • ios-logs.sh

Open the folder on GitHubat commit add157e

Compare with similar skills

iOS Log Diagnose next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

iOS Log Diagnose compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
iOS Log Diagnose this skillUniClipboard/UniClipboard1.9k—~1.1kAutomated safety check: PassAGPL-3.0
Swiftui Expert Skillilyas-hallak/romm-ios-app1691 repos~2.9kAutomated safety check: PassMIT
Swiftui Expert SkillAFK-surf/OpenBridge4302 repos~3.9kAutomated safety check: PassMIT
Swiftui Patternsaffaan-m/ECC276k4 repos~1.8kAutomated safety check: PassMIT
Swiftui Expert Skillsupabitapp/supaterm172—~1.5kAutomated safety check: PassCustom licence
Iphone Useleeguooooo/iphone-use135—~2.9kAutomated safety check: PassMIT

Similar skills

  • Swiftui Expert Skill

    ilyas-hallak/romm-ios-app

    Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, and iOS 26+ Liquid Glass adoption.

    169 GitHub starsUsed in 1 repo~2.9k tokens
    MobileAuto-check passed
  • Swiftui Expert Skill

    AFK-surf/OpenBridge

    Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, modern APIs, Swift concurrency, and iOS 26+ Liquid Glass adoption.

    430 GitHub starsUsed in 2 repos~3.9k tokens
    MobileAuto-check passed
  • Swiftui Patterns

    affaan-m/ECC

    SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS/macOS UI best practices.

    276k GitHub starsUsed in 4 repos~1.8k tokens
    MobileAuto-check passed
  • Swiftui Expert Skill

    supabitapp/supaterm

    Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, macOS-specific APIs, and iOS 26+ Liquid Glass adoption.

    172 GitHub stars~1.5k tokensUpdated 16 days ago
    MobileAuto-check passed
  • Iphone Use

    leeguooooo/iphone-use

    A skill your agent uses when a task needs a real iPhone — operating iOS apps that have no API (Apple Health, banking, IM apps), exporting on-phone data, tapping/typing/scrolling on the phone, or…

    135 GitHub stars~2.9k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • iOS Patterns

    hanamizuki/solopreneur

    A skill your agent uses when building iOS/macOS apps with SwiftUI — covers localization (String Catalogs), date/time formatting, JSON date decoding, Previews, state management, sheet/navigation…

    152 GitHub stars~2.3k tokensUpdated 14 days ago
    Frontend & DesignAuto-check: notes

More from UniClipboard/UniClipboard

All 24 skills in this repo
  • Beui

    UniClipboard/UniClipboard

    Pick and install beUI (@beui) animated React components from the shadcn registry.

    1.9k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Create PR

    UniClipboard/UniClipboard

    Push the current branch and open a GitHub pull request against main.

    1.9k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Design Audit

    UniClipboard/UniClipboard

    定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…

    1.9k GitHub stars~554 tokensUpdated today
    Auto-check passed
  • Dual Side Debug

    UniClipboard/UniClipboard

    Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • E2E Test Thinker

    UniClipboard/UniClipboard

    Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.

    1.9k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Learn

    UniClipboard/UniClipboard

    Record a lesson learned into crates/AGENTS.md (CONVENTIONS or ANTI-PATTERNS section).

    1.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about iOS Log Diagnose

What does iOS Log Diagnose do?

Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs. iOS Log Diagnose is an agent skill from UniClipboard/UniClipboard. Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.

When should I use iOS Log Diagnose?

iOS Log Diagnose fits situations like: debugging why the iOS sync engine; M5 reducer did something; reproducing an iOS sync / clipboard bug on the simulator; whenever youd otherwise ask the user what do the logs say.

How do I install iOS Log Diagnose in Claude Code?

Run `npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a claude-code`. Or copy the skill folder (.agents/skills/ios-log-diagnose in UniClipboard/UniClipboard) into .claude/skills/ios-log-diagnose in your project. Claude Code loads it when a task matches its description.

How do I install iOS Log Diagnose in Codex?

Run `npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a codex`. Or copy the skill folder (.agents/skills/ios-log-diagnose in UniClipboard/UniClipboard) into .agents/skills/ios-log-diagnose in your project. Codex loads it when a task matches its description.

Can I use iOS Log Diagnose in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ios-log-diagnose, .gemini/skills/ios-log-diagnose, .github/skills/ios-log-diagnose and .opencode/skills/ios-log-diagnose in your project.

What does iOS Log Diagnose need to run?

Going by SKILL.md and its folder, iOS Log Diagnose needs a shell for the scripts in its folder and the command-line tools its instructions call (xcodebuild). Our summary lists: A Bash shell.

Does iOS Log Diagnose access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is iOS Log Diagnose safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does iOS Log Diagnose use?

iOS Log Diagnose is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does iOS Log Diagnose use?

About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to iOS Log Diagnose?

Skills that share tags, products or a category with iOS Log Diagnose: Swiftui Expert Skill (ilyas-hallak/romm-ios-app, 169 stars), Swiftui Expert Skill (AFK-surf/OpenBridge, 430 stars), Swiftui Patterns (affaan-m/ECC, 276k stars) and Swiftui Expert Skill (supabitapp/supaterm, 172 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains iOS Log Diagnose?

UniClipboard (a GitHub organization) maintains it in UniClipboard/UniClipboard, which has 1,867 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 10, 2026.

Source: UniClipboard/UniClipboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.