Agent skill

OpenLogi Device Diagnosis

by AprilNEA in AprilNEA/OpenLogi

Finds the first failing layer when an OpenLogi Logitech device is missing or misbehaving across enumeration, open, probe, IPC and UI.

Apache-2.0Auto-check passedDevelopment

Install OpenLogi Device Diagnosis

skills CLI
$ npx skills add AprilNEA/OpenLogi --skill diagnosing-openlogi-devices -a claude-code

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

GitHub CLI
$ gh skill install AprilNEA/OpenLogi diagnosing-openlogi-devices --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/AprilNEA/OpenLogi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/diagnosing-openlogi-devices .claude/skills/diagnosing-openlogi-devices && 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
diagnosing-openlogi-devices
GitHub stars
23k
Token cost
~1.6k tokens
SKILL.md length
709 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

Finds the first failing layer when an OpenLogi Logitech device is missing or misbehaving across enumeration, open, probe, IPC and UI.

  • Works in 4 steps: Record the app/agent/CLI versions, OS,… → Read the existing report and logs before… → Compare openlogi list stdout and stderr… → …
  • A paired Logitech device does not show up in OpenLogi
  • SKILL.md covers Establish the observation, Locate the failure, Choose the smallest diagnostic and Reproduce in the owning layer, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

This skill walks an agent through locating the first failing layer when an OpenLogi device misbehaves, before any permission change or code fix is proposed. OpenLogi is a local Logitech device manager written in Rust that talks to devices over HID++. The agent first records versions, OS, install source, active profile, device model and connection type (Bolt, Unifying, Bluetooth-direct or wired), and separates a missing receiver from a paired device that is asleep or offline.

It then compares openlogi list output, both stdout and stderr, with the GUI under the same profile, reads the failing agent's logs and raises detail with OPENLOGI_LOG=debug when needed. A table maps evidence to the next area to inspect: no HID interfaces points at connection and enumeration filters, an interface that opens but fails a probe points at HID++ requests and transport, and a device the agent sees but the GUI does not points at IPC and capability filtering. macOS cases defer to a separate permission skill, while Linux cases inspect hidraw, input/event and uinput permissions, and installing rules, changing ACLs, resetting permissions or stopping another app are actions to hold back.

When your agent uses it

  • A paired Logitech device does not show up in OpenLogi
  • Opening or pairing a device fails, or the inventory looks stale
  • A device reconnect fails or a control is reported as unsupported
  • The openlogi CLI and the GUI disagree about what is connected

Example prompts

  • “My MX Master is paired over Bolt but OpenLogi lists nothing; find which layer fails first.”
  • “openlogi list shows the device in the terminal but the GUI does not, so compare the two paths.”
  • “On Linux, OpenLogi cannot open my mouse; check the hidraw and uinput permissions before changing anything.”

Workflow steps

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

  1. Record the app/agent/CLI versions, OS, installation source, and active profile.
  2. Read the existing report and logs before asking for new captures. Record the
  3. Compare openlogi list stdout and stderr with the GUI, using the same profile.
  4. Use the failing agent's logs. If more detail is required, use OPENLOGI_LOG=debug

What it can do on your machine

Read from SKILL.md and the folder at commit 0f69d75. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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

OpenLogi Device Diagnosis loads about 1.6k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 709 words of instructions outside code blocks.

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

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 AprilNEA/OpenLogi at commit 0f69d75, republished under its Apache-2.0 licence (© AprilNEA). 709 words, ~1,577 tokens.

Download SKILL.mdSave it as .claude/skills/diagnosing-openlogi-devices/SKILL.md (or your agent's skills folder).
name
diagnosing-openlogi-devices
description
Diagnoses OpenLogi HID/HID++ failures across enumeration, open, probe, IPC, and UI layers. Use for missing devices, failed opens or pairing, stale inventory, disconnect/reconnect failures, unsupported controls, or CLI/GUI disagreement.

Diagnose OpenLogi Devices

Find the first failing layer before proposing a permission change or code fix.

Establish the observation

  1. Record the app/agent/CLI versions, OS, installation source, and active profile. Record the model and connection type: Bolt, Unifying, Bluetooth-direct, or wired. Distinguish an absent receiver from a paired device that is asleep or offline.
  2. Read the existing report and logs before asking for new captures. Record the failing action, expected result, and whether the failure repeats.
  3. Compare openlogi list stdout and stderr with the GUI, using the same profile. Read list provenance if ambiguous:
    • inventory read from the running agent uses the GUI's HID inventory source.
    • Direct fallback uses the CLI's own permission identity and HID stack. A timeout or incompatible protocol can cause fallback, not just an absent agent.
    • Camera enumeration is direct in both modes; do not infer HID permission from it.
  4. Use the failing agent's logs. If more detail is required, use OPENLOGI_LOG=debug with the correct launch path. A new foreground process can change permission attribution. Missing debug lines in an info-level log prove nothing.

Locate the failure

EvidenceInvestigate next
No matching HID interfacesConnection, model identity, transport, registry/enumeration filters
Interface found, open failsPermission status of the opener, exclusive ownership, host transport
Channel opens, feature probe times out or failsHID++ request/response and transport; do not reset permissions by default
Direct CLI works, agent inventory failsCompare process identity, versions, profiles, and agent logs
Compatible agent snapshot has the device, GUI does notIPC delivery, desktop state, capability filtering, presentation
Device appears, one feature failsReported feature ID/version, capability gating, then the owning operation

For macOS symptoms, load the existing permission skill. Use its identity map and read-only diagnosis; do not duplicate TCC procedures. For Linux access failures, inspect the relevant hidraw, input/event, and uinput permissions using Linux access guidance. Do not install rules, change ACLs, reset permissions, or stop another app without authorization. Do not diagnose a Windows failure from a macOS permission model.

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

Choose the smallest diagnostic

Read the diagnostic command definitions and the selected subcommand before running it. Explain direct hardware access and coordinate with competing clients. Do not present enumeration as a zero-write session: receiver discovery can enable notifications and request arrival reports.

DiagnosticBoundary
openlogi diag featuresReads feature/firmware tables for all online devices; has no --device flag
diag controls, diag batteryRead the selected device; use --device and inspect the printed route
diag wheel without --resolutionReads wheel mode; adding --resolution writes hardware
diag dpiWrites a test DPI and attempts restoration; failures can prevent restoration
diag smartshift without --sensitivity or --leave-flippedToggles mode and attempts restoration; failures can prevent restoration
diag smartshift --sensitivity NSets sensitivity without restoring the previous value; preserves the current mode
diag smartshift --leave-flippedToggles mode and intentionally skips restoration
diag lightingWrites lighting; not an observation-only diagnostic

Diagnostic --device uses the first case-insensitive substring match. If names overlap, do not treat it as unique selection. Resolve the target before writes. Get authorization for setting writes or pairing/unpairing; do not run them as default triage. Stop if ownership, target selection, or restoration is uncertain.

Reproduce in the owning layer

Use change verification for the before/after test requirements. Start with an existing test seam:

Keep node presence, channel connectivity, paired-slot state, and published inventory distinct. Assert intermediate cleanup and replacement, not only the final online state.

Return actionable evidence

  • Separate observed facts, suspected cause, and the next discriminating check. Quote the decisive error with its process, profile, and transport context.
  • Redact serials, receiver IDs, Bluetooth addresses, pairing secrets, usernames, and host paths before sharing. Preserve protocol fields needed for diagnosis. Do not request full config or raw traffic when a sanitized excerpt is enough.
  • For code changes, follow the owning crate's rules and verification workflow. Use sanitized fixtures; derive expected values independently of the parser under test.
  • If a new capture is justified, use fixture contribution. Report hardware verification separately. Checks without the affected physical device do not establish that the physical failure is fixed.

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

Files

Just SKILL.md in .agents/skills/diagnosing-openlogi-devices of AprilNEA/OpenLogi.

Open the folder on GitHubat commit 0f69d75

Compare with similar skills

OpenLogi Device Diagnosis 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.

OpenLogi Device Diagnosis compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
OpenLogi Device Diagnosis this skillAprilNEA/OpenLogi23k—~1.6kAutomated safety check: PassApache-2.0
The Art of Debuggingstas00/the-art-of-debugging1.7k—~6.1kAutomated safety check: NotesCC-BY-SA-4.0
Gearcoleco Debuggingdrhelius/Gearcoleco142—~3.5kAutomated safety check: PassGPL-3.0
Gridbash Panesjasonsuhari/gridbash134—~1.5kAutomated safety check: PassMIT
Dotnet Debuggingnovotnyllc/dotnet-artisan232—~2.1kAutomated safety check: PassMIT
Browser Setupclacky-ai/openclacky1.2k—~3.1kAutomated safety check: NotesMIT

Similar skills

  • The Art of Debugging

    stas00/the-art-of-debugging

    Condensed debugging method and tool recipes for Unix, Python and PyTorch programs: crashes, hangs, segfaults, wrong output, CUDA OOM, NaN values and slowness.

    1.7k GitHub stars~6.1k tokensUpdated 4 days ago
    DevelopmentAuto-check: notes
  • Gearcoleco Debugging

    drhelius/Gearcoleco

    Debug and trace ColecoVision and Super Game Module games using the Gearcoleco emulator MCP server.

    142 GitHub stars~3.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Gridbash Panes

    jasonsuhari/gridbash

    Coordinate with sibling agent panes from inside a GridBash grid — list panes and their roles, read what a pane is currently doing, prompt one pane or every other pane, and rename pane titles so the…

    134 GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Dotnet Debugging

    novotnyllc/dotnet-artisan

    Debugs Windows and Linux/macOS applications (native, .NET/CLR, mixed-mode) with WinDbg MCP (crash dumps, !analyze, !syncblk, !dlk, !runaway, !dumpheap, !gcroot, BSOD), dotnet-dump, lldb with SOS…

    232 GitHub stars~2.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Browser Setup

    clacky-ai/openclacky

    Configure the browser tool for Clacky. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~3.1k tokensUpdated today
    DevelopmentAuto-check: notes
  • Debug

    gnomeria/usbtree

    Systematic root-cause debugging — reproduce, isolate, fix at the source, prove the fix.

    691 GitHub stars~715 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from AprilNEA/OpenLogi

  • Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.

    23k GitHub stars~2.5k tokensUpdated today
    Auto-check: notes
  • Guides recording, privacy review and offline verification of OpenLogi device fixtures with the fixture contribute and verify commands, without treating replay as proof of hardware behavior.

    23k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Testing OpenLogi UI

    AprilNEA/OpenLogi

    Verifies OpenLogi's native GPUI interface with focused tests, the component gallery and a mock agent, choosing the evidence that fits each change.

    23k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Plans the smallest check that could disprove a code change in the OpenLogi project, then escalates through reproduction, focused tests and a final gate before a push.

    23k GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about OpenLogi Device Diagnosis

What does OpenLogi Device Diagnosis do?

Finds the first failing layer when an OpenLogi Logitech device is missing or misbehaving across enumeration, open, probe, IPC and UI. This skill walks an agent through locating the first failing layer when an OpenLogi device misbehaves, before any permission change or code fix is proposed. OpenLogi is a local Logitech device manager written in Rust that talks to devices over HID++.

When should I use OpenLogi Device Diagnosis?

OpenLogi Device Diagnosis fits situations like: A paired Logitech device does not show up in OpenLogi; opening or pairing a device fails, or the inventory looks stale; A device reconnect fails or a control is reported as unsupported; the openlogi CLI and the GUI disagree about what is connected.

How do I install OpenLogi Device Diagnosis in Claude Code?

Run `npx skills add AprilNEA/OpenLogi --skill diagnosing-openlogi-devices -a claude-code`. Or copy the skill folder (.agents/skills/diagnosing-openlogi-devices in AprilNEA/OpenLogi) into .claude/skills/diagnosing-openlogi-devices in your project. Claude Code loads it when a task matches its description.

How do I install OpenLogi Device Diagnosis in Codex?

Run `npx skills add AprilNEA/OpenLogi --skill diagnosing-openlogi-devices -a codex`. Or copy the skill folder (.agents/skills/diagnosing-openlogi-devices in AprilNEA/OpenLogi) into .agents/skills/diagnosing-openlogi-devices in your project. Codex loads it when a task matches its description.

Can I use OpenLogi Device Diagnosis 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 AprilNEA/OpenLogi --skill diagnosing-openlogi-devices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/diagnosing-openlogi-devices, .gemini/skills/diagnosing-openlogi-devices, .github/skills/diagnosing-openlogi-devices and .opencode/skills/diagnosing-openlogi-devices in your project.

What does OpenLogi Device Diagnosis need to run?

SKILL.md names no scripts, command-line tools or credentials: OpenLogi Device Diagnosis is instructions for the agent only.

Does OpenLogi Device Diagnosis 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 OpenLogi Device Diagnosis 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 OpenLogi Device Diagnosis use?

OpenLogi Device Diagnosis is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does OpenLogi Device Diagnosis use?

About 1.6k tokens (SKILL.md is roughly 6.3k 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 OpenLogi Device Diagnosis?

Skills that share tags, products or a category with OpenLogi Device Diagnosis: The Art of Debugging (stas00/the-art-of-debugging, 1.7k stars), Gearcoleco Debugging (drhelius/Gearcoleco, 142 stars), Gridbash Panes (jasonsuhari/gridbash, 134 stars) and Dotnet Debugging (novotnyllc/dotnet-artisan, 232 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains OpenLogi Device Diagnosis?

AprilNEA (a GitHub user) maintains it in AprilNEA/OpenLogi, which has 23,344 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 10, 2026.

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