Setup Pre Commit
fossasia/eventyay-interpretation
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.
Unpacks an installed Electron app's asar bundle and restores readable source from its JavaScript source maps when one is available.
$ npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JimLiu/baoyu-skills baoyu-electron-extract --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/baoyu-electron-extract .claude/skills/baoyu-electron-extract && rm -rf skills-srcUse ~/.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/
Install the "baoyu-electron-extract" agent skill from https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extract into .claude/skills/baoyu-electron-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baoyu-electron-extract", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extractType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JimLiu/baoyu-skills baoyu-electron-extract --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/baoyu-electron-extract .agents/skills/baoyu-electron-extract && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "baoyu-electron-extract" agent skill from https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extract into .agents/skills/baoyu-electron-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baoyu-electron-extract", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JimLiu/baoyu-skills baoyu-electron-extract --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/baoyu-electron-extract .cursor/skills/baoyu-electron-extract && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "baoyu-electron-extract" agent skill from https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extract into .cursor/skills/baoyu-electron-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baoyu-electron-extract", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JimLiu/baoyu-skills.git --path skills/baoyu-electron-extract--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JimLiu/baoyu-skills baoyu-electron-extract --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/baoyu-electron-extract .gemini/skills/baoyu-electron-extract && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "baoyu-electron-extract" agent skill from https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extract into .gemini/skills/baoyu-electron-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baoyu-electron-extract", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JimLiu/baoyu-skills baoyu-electron-extractInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/baoyu-electron-extract .github/skills/baoyu-electron-extract && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "baoyu-electron-extract" agent skill from https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extract into .github/skills/baoyu-electron-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baoyu-electron-extract", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JimLiu/baoyu-skills baoyu-electron-extract --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JimLiu/baoyu-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/baoyu-electron-extract .opencode/skills/baoyu-electron-extract && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "baoyu-electron-extract" agent skill from https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-electron-extract into .opencode/skills/baoyu-electron-extract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baoyu-electron-extract", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
baoyu-electron-extractUnpacks an installed Electron app's asar bundle and restores readable source from its JavaScript source maps when one is available.
This skill finds and extracts an installed Electron application's app archive, and when a source map file is present, restores the original source files from its embedded content, resolving bundled paths relative to the map file so a nested path comes back readable instead of hashed. When no source map exists, it falls back to formatting the minified code with Prettier instead.
It always skips node_modules during extraction and works on both macOS and Windows. For any prompt it needs to show the user, it prefers a runtime's own input tool such as AskUserQuestion, falling back to a numbered plain-text question when no such tool exists, and combines several questions into one call when the tool supports that.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1567581. It shows what the files ask for, not the result of running them.
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.
Ships 2 files in scripts/ (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Electron App Source Extractor loads about 2.6k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 914 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from JimLiu/baoyu-skills at commit 1567581, republished under its MIT licence (© JimLiu). 914 words, ~2,552 tokens.
.claude/skills/baoyu-electron-extract/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Extracts resources and code from an installed Electron app's app.asar. When a .js.map is present, restores the original source files from the embedded sourcesContent; otherwise formats the minified code with Prettier. Source-map paths are resolved relative to the .js.map file first, so bundled paths like ../../src/main.ts restore to readable paths such as restored/src/main.ts instead of hashed placeholders. Always skips node_modules. Works on macOS and Windows.
When this skill prompts the user, follow this tool-selection rule (priority order):
AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.
Scripts in scripts/ subdirectory. {baseDir} = this SKILL.md's directory path. Resolve ${BUN_X} runtime: if bun installed → bun; if npx available → 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 |
Use this skill whenever the user wants to look inside an installed Electron application or inspect its bundled code. Trigger phrases include:
<app>", "look inside <app>", "how is <app> built"<app> 的源码", "反编译 Electron", "解包 app.asar", "还原 source map"Both app name (e.g., Codex) and absolute path (e.g., /Applications/Codex.app, a .asar file, or a Windows install dir) are accepted. The script handles discovery for both platforms.
1. Determine the input. Ask the user for the app name or path if they haven't given one. If they want a custom output directory, ask for that too.
2. Run the script.
${BUN_X} {baseDir}/scripts/main.ts "<app>" [--output <dir>] [--asar <path>] [--force]Start with --dry-run first if you're unsure whether discovery will find the right bundle — it prints the resolved paths and exits without touching the filesystem.
3. Handle the result.
AskUserQuestion or the runtime equivalent), then re-run with the chosen absolute path.--force. Ask the user whether to overwrite (--force) or pick a new --output path.--asar /full/path/to/app.asar if the user knows where the bundle lives.4. Point the user at the result. The default output dir is ~/Downloads/<AppName>-electron-extract/. The most interesting subdirectory depends on what was found:
restored/ exists → the original source tree was reconstructed from .js.map files; this is what to read first.extracted/ exists (no maps) → the JS/CSS in extracted/ was Prettier-formatted in place; read from there.The script should preserve original source names and directory structure as much as the source map allows:
sources[] entry with sourceRoot when present, then relative to the .js.map file's directory inside extracted/..vite/main/index.js.map + ../../src/main.ts becomes restored/src/main.ts.extracted/, keep the readable remaining path under restored/ instead of hashing it. For example, .vite/main/index.js.map + ../../../shared/src/lib/foo.ts becomes restored/shared/src/lib/foo.ts.webpack://, file://, and ?loader suffixes.restored/__unknown/<hash>.<ext> only when the source name is empty or cannot be reduced to a safe file path.node_modules and webpack/runtime/* entries; these are bundler/runtime noise, not app sources.# Extract by app name (default output: ~/Downloads/Codex-electron-extract/)
${BUN_X} {baseDir}/scripts/main.ts Codex
# Extract by absolute path (works for .app bundles, install dirs, or .asar files)
${BUN_X} {baseDir}/scripts/main.ts "/Applications/Visual Studio Code.app"
${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
# Custom output
${BUN_X} {baseDir}/scripts/main.ts Codex --output ~/work/codex-source
# Preview discovery without writing anything
${BUN_X} {baseDir}/scripts/main.ts Codex --dry-run
# Overwrite an existing output dir
${BUN_X} {baseDir}/scripts/main.ts Codex --force
# Machine-readable result (one JSON line on stdout)
${BUN_X} {baseDir}/scripts/main.ts Codex --json| 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> # rebuilt from sourcesContent in each .js.map.js.map embeds sourcesContent. This is the common case for modern bundlers (webpack, esbuild, Vite, rollup). If a map references external .ts/.js files without embedding them, that map is skipped and the corresponding .js is Prettier-formatted instead. Skipped maps are listed in extract-report.json under warnings.../ segments in source-map paths as automatically unsafe. First resolve them from the map location and then sanitize the final output path so it still stays under restored/. Hash fallback is only for unusable source names./Applications + ~/Applications on macOS, and %LOCALAPPDATA%\Programs, %PROGRAMFILES%, %PROGRAMFILES(X86)%, %APPDATA% on Windows. If discovery finds multiple matches, the script exits and lists them — re-run with an absolute path. On Linux or other platforms, pass --asar /path/to/app.asar explicitly./, the user home directly, or the current working directory, and refuses to populate an existing non-empty output dir without --force.@electron/asar and prettier are resolved on-the-fly via npx -y. First run will be slower while npx caches them.© JimLiu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skills/baoyu-electron-extract of JimLiu/baoyu-skills.
Open the folder on GitHubat commit 1567581
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in JimLiu/baoyu-skills, which our catalogue first saw on October 7, 2026.
Electron App Source Extractor 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Electron App Source Extractor this skillJimLiu/baoyu-skills | 27k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Setup Pre Commitfossasia/eventyay-interpretation | 1.6k | 12 repos | ~565 | Automated safety check: Pass | Apache-2.0 | |
| Formatter Developmentbiomejs/biome | 26k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Code Qualityredis/RedisInsight | 8.9k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Code Change Verificationopenai/openai-agents-python | 30k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Flowmark Markdown Formatterjlevy/repren | 374 | — | ~631 | Automated safety check: Pass | MIT |
fossasia/eventyay-interpretation
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.
biomejs/biome
A skill your agent uses whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal…
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
openai/openai-agents-python
Run the required final formatting, lint, type, and test checks after eligible SDK changes pass review.
jlevy/repren
Formats Markdown with the Flowmark auto-formatter for typographic cleanup and semantic line breaks, and helps adopt it across a repository.
JimLiu/decode-codex
Refresh the local ChatGPT app reference source from the installed macOS ChatGPT.app asar.
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
JimLiu/baoyu-skills
Saves tweets, threads and X Articles as Markdown files with YAML front matter, using an unofficial API that asks for your consent first.
JimLiu/baoyu-skills
Creates standalone dark-themed SVG diagrams, including architecture, flowchart, sequence, structural, mind map, timeline and state machine types.
JimLiu/baoyu-skills
Publishes articles and image-text posts to a WeChat Official Account through the API or Chrome CDP, converting markdown to WeChat-ready HTML with link citations.
JimLiu/baoyu-skills
Compresses images to WebP by default, or to PNG or JPEG, picking the best available tool on the machine and optionally processing whole folders.
JimLiu/baoyu-skills
Generates text and images through an unofficial, reverse-engineered Gemini Web API, supporting reference images and multi-turn conversations.
Categories
Unpacks an installed Electron app's asar bundle and restores readable source from its JavaScript source maps when one is available. This skill finds and extracts an installed Electron application's app archive, and when a source map file is present, restores the original source files from its embedded content, resolving bundled paths relative to the map file so a nested path comes back readable instead of hashed. When no source map exists, it falls back to formatting the minified code with Prettier instead.
Electron App Source Extractor fits situations like: inspecting how a desktop Electron app, like a chat client or editor, was built; recovering readable source from a minified or bundled Electron app; looking inside an installed app's bundled JavaScript for learning or debugging.
Run `npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a claude-code`. Or copy the skill folder (skills/baoyu-electron-extract in JimLiu/baoyu-skills) into .claude/skills/baoyu-electron-extract in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a codex`. Or copy the skill folder (skills/baoyu-electron-extract in JimLiu/baoyu-skills) into .agents/skills/baoyu-electron-extract in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JimLiu/baoyu-skills --skill baoyu-electron-extract -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/baoyu-electron-extract, .gemini/skills/baoyu-electron-extract, .github/skills/baoyu-electron-extract and .opencode/skills/baoyu-electron-extract in your project.
Going by SKILL.md and its folder, Electron App Source Extractor needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: bun, or npx as a fallback, to run the extraction script.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Electron App Source Extractor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Electron App Source Extractor: Setup Pre Commit (fossasia/eventyay-interpretation, 1.6k stars), Formatter Development (biomejs/biome, 26k stars), Code Quality (redis/RedisInsight, 8.9k stars) and Code Change Verification (openai/openai-agents-python, 30k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JimLiu (a GitHub user) maintains it in JimLiu/baoyu-skills, which has 26,507 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on September 10, 2026.
Source: JimLiu/baoyu-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.