academy-guide
Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends…
Extracts resources and JavaScript from any installed Electron app (`.asar` bundle), restoring original sources from `.js.map` files when available or formatting minified code with Prettier otherwise. Use when user wants to "extract Electron app", "decompile Electron", "get the
Claude Code
$ npx -y skills add guanyang/open-agent-hub --skill baoyu-electron-extract --agent claude-code
Codex
$ npx skills add guanyang/open-agent-hub --skill baoyu-electron-extract -a codex -y
Cursor
$ npx skills add guanyang/open-agent-hub --skill baoyu-electron-extract -a cursor -y
Gemini CLI
$ npx skills add guanyang/open-agent-hub --skill baoyu-electron-extract -a gemini-cli -y
GitHub Copilot
$ npx skills add guanyang/open-agent-hub --skill baoyu-electron-extract -a github-copilot -y
OpenCode
$ npx skills add guanyang/open-agent-hub --skill baoyu-electron-extract -a opencode -y
Windsurf
$ npx skills add guanyang/open-agent-hub --skill baoyu-electron-extract -a windsurf -y
name: baoyu-electron-extract
description: Extracts resources and JavaScript from any installed Electron app (`.asar` bundle), restoring original sources from `.js.map` files when available or formatting minified code with Prettier otherwise. Use when user wants to "extract Electron app", "decompile Electron", "get the source code of <app>", "inspect app.asar", "看 Electron 应用源码", "提取 .asar", or asks how a desktop Electron app is built. Skips `node_modules` and supports both macOS and Windows.
version: 1.119.0
metadata:
openclaw:
homepage: https://github.com/JimLiu/baoyu-skills#baoyu-electron-extract
requires:
anyBins:
- bun
- npxWhen this skill prompts the user, follow this tool-selection rule (priority order):
1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent. 2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question. 3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.
Concrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.
`{baseDir}` = this SKILL.md's directory. Resolve `${BUN_X}`: `bun` if installed; else `npx -y bun`; else suggest installing bun. Replace `{baseDir}` and `${BUN_X}` with actual values.
| Script | Purpose | | ----------------- | ------------------------------------------------------------------------------ | | `scripts/main.ts` | App discovery + asar extraction + source-map restoration + Prettier formatting |
**1. Determine the input.** Accepts an **app name** (e.g., `Codex`) or **absolute path** (`/Applications/Codex.app`, a `.asar` file, or a Windows install dir). Ask for it if not given; ask for a custom output directory if they want one.
**2. Run the script.**
${BUN_X} {baseDir}/scripts/main.ts "<app>" [--output <dir>] [--asar <path>] [--force]If unsure discovery will find the right bundle, run with `--dry-run` first (prints resolved paths, writes nothing).
**3. Handle the result.**
**4. Point the user at the result** (default `~/Downloads/<AppName>-electron-extract/`):
${BUN_X} {baseDir}/scripts/main.ts Codex # → ~/Downloads/Codex-electron-extract/
${BUN_X} {baseDir}/scripts/main.ts "/Applications/Visual Studio Code.app" # .app bundle, install dir, or .asar
${BUN_X} {baseDir}/scripts/main.ts "C:\Users\you\AppData\Local\Programs\codex"
${BUN_X} {baseDir}/scripts/main.ts --asar /Applications/Codex.app/Contents/Resources/app.asar Codex
${BUN_X} {baseDir}/scripts/main.ts Codex --output ~/work/codex-source
${BUN_X} {baseDir}/scripts/main.ts Codex --json # one JSON line on stdout| Option | Short | Description | Default | | ---------------- | ----- | --------------------------------------------------------------- | ---------------------------------------- | | `<app>` | | App name or absolute path. Required unless `--asar` is given. | — | | `--output` | `-o` | Output directory | `~/Downloads/<AppName>-electron-extract` | | `--asar` | | Override the resolved `.asar` path | auto-discovered | | `--force` | `-f` | Allow writing into a non-empty existing output dir | false | | `--skip-format` | | Skip Prettier formatting | false | | `--skip-restore` | | Skip source-map restoration | false | | `--no-unpacked` | | Don't copy `app.asar.unpacked/` alongside | false | | `--dry-run` | | Print resolved paths and exit without writing | false | | `--json` | | Emit one JSON-line summary on stdout (suppresses normal output) | false |
~/Downloads/<AppName>-electron-extract/
├── extract-report.json # JSON summary: counts, warnings, resolved paths
├── extracted/ # raw asar contents (JS/CSS Prettier-formatted when no map)
│ └── ... # node_modules left untouched (skipped from format)
├── extracted.unpacked/ # copied from <asar>.unpacked/ if present
│ └── ... # native modules (.node), large assets
└── restored/ # only present if at least one .js.map was usable
└── <original/source/tree> # reA lightweight, zero-dependency CLI tool to manage and activate capabilities for AI coding assistants (such as Claude Code, Cursor, Trae, etc.).
Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends…
This skill should be used for advanced LLM evaluation: LLM-as-judge systems, direct scoring, pairwise comparison, rubric…
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request…
Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette…
Knowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts…
Compresses images to WebP (default) or PNG with automatic tool selection. Use when user asks to "compress image", "optimize…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.