Agent skill
webarchive
Extract .webarchive files (saved from Safari) into plain HTML/assets using the WebArchiveExtractor CLI. Use when the user wants to unarchive, extract, or convert a .webarchive file.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/webarchive
SKILL.md
The user wants to extract a .webarchive file using WebArchiveExtractor.
If arguments were provided ($ARGUMENTS), use them to infer the input file and optionally the output directory or URL prepend. Otherwise, ask the user for the path to the .webarchive file.
How to run WebArchiveExtractor
/Applications/WebArchiveExtractor.app/Contents/MacOS/WebArchiveExtractor [-h] [-o <OutputDirectory>] [-p <URLPrepend>] -i <WebArchiveFile>
Options:
-i <WebArchiveFile>— required — path to the.webarchivefile-o <OutputDirectory>— directory to write extracted files into (optional; defaults to a directory named after the archive next to it)-p <URLPrepend>— URI prefix to prepend to all asset URLs in the extracted HTML (optional; useful when serving the result from a subdirectory)
Shorthand (no flag):
WebArchiveExtractor website.webarchive
A positional argument is treated as the -i value.
Prerequisites
The app must be installed at /Applications/WebArchiveExtractor.app. Check with:
test -x /Applications/WebArchiveExtractor.app/Contents/MacOS/WebArchiveExtractor && echo "found" || echo "not installed"
If not found, tell the user to build and install from source (xcodebuild -project WebArchiveExtractor.xcodeproj) or drag a release build to /Applications.
To use WebArchiveExtractor without the full path, the user can add it to PATH:
export PATH="$PATH:/Applications/WebArchiveExtractor.app/Contents/MacOS/"
Or create a symlink:
ln -s /Applications/WebArchiveExtractor.app/Contents/MacOS/WebArchiveExtractor ~/.local/bin/WebArchiveExtractor
Steps
- Check the binary exists using the test command above. If not found, stop and direct the user to install the app.
- Determine the input
.webarchivefile from$ARGUMENTSor ask the user. - Determine the output directory:
- If the user explicitly provided one in
$ARGUMENTS, use that. - Otherwise, default to
~/Downloads/<archive-name>(where<archive-name>is the input filename without the.webarchiveextension). - If the user asks why
~/Downloadsis the default, explain: macOS sandboxes the WebArchiveExtractor app, which restricts which directories the CLI can write to. The~/Downloadsfolder is one of the few locations reliably accessible, so it's used as the default to avoid silent failures.
- If the user explicitly provided one in
- Determine (optional) URL prepend from
$ARGUMENTSor ask if needed. - Run the extractor using the Bash tool:
sh
/Applications/WebArchiveExtractor.app/Contents/MacOS/WebArchiveExtractor -i "<input>" -o "<output>" [-p "<prepend>"] - If successful, list the output directory contents with
lsand summarise:- The output directory path
- How many files were extracted
- The main HTML file name (if identifiable)
- Offer to open the extracted HTML in the browser with
open <file>.
Notes
.webarchiveis a macOS-specific binary plist format used by Safari's "Save As Web Archive" feature.- The CLI and the GUI app are the same binary — running with
-isuppresses the GUI. - Running with no arguments launches the GUI instead of extracting anything.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?