Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
builderio avatar

Unzip

  • 13 installs
  • 11 repo stars
  • Updated July 30, 2026
  • builderio/builder-agent-skills

unzip is a utility skill that finds the most recently modified .zip in a project and extracts it to the root with npx extract-zip, handling base64-encoded archives.

About

A utility skill that unzips or extracts a zip file in the project. A developer or agent uses it when asked to unzip or extract a .zip archive; it finds the most recently modified zip and extracts it with npx extract-zip. It handles base64-encoded archives, ACL-blocked commands like tar and base64 -d, and reinstalls dependencies if package.json changed.

  • Finds the most recently modified .zip and extracts it to the project root via npx extract-zip
  • Detects and decodes base64-encoded zips using a Node one-liner (base64 -d is ACL-blocked)
  • Reinstalls deps and restarts the dev server if package.json changed after extraction

Unzip by the numbers

  • 13 all-time installs (skills.sh)
  • Ranked #1,438 of 2,719 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Jul 31, 2026 (Skillselion catalog sync)
At a glance

unzip capabilities & compatibility

Capabilities
automation
Use cases
devops
From the docs

What unzip says it does

Unzip or extract a zip file in the project.
SKILL.md
find the most recently modified `.zip` file in the project and extract it to the project root.
SKILL.md
`tar` is blocked by ACL in this environment — always use `npx extract-zip` instead.
SKILL.md
npx skills add https://github.com/builderio/builder-agent-skills --skill unzip

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs13
repo stars11
Last updatedJuly 30, 2026
Repositorybuilderio/builder-agent-skills

What it does

Find and extract the most recent .zip in a project, handling base64 encoding and dependency reinstall.

Who is it for?

Extracting an archive in a sandboxed environment where tar and base64 -d are blocked.

Skip if: Using tar or base64 -d, which are blocked by ACL in this environment.

When should I use this skill?

The user says unzip, extract zip, unzip file, or asks to extract a .zip archive.

What you get

The newest zip is decoded if needed and extracted, with deps reinstalled and the dev server restarted.

By the numbers

  • Documents a 9-step extraction procedure

Files

SKILL.mdMarkdownGitHub ↗

Unzip Skill

When the user asks to unzip (without specifying a file), find the most recently modified .zip file in the project and extract it to the project root.

Steps

1. Find the zip file: Use Bash (find . -name "*.zip") to locate zip files. Glob may miss files with spaces in the name. Pick the most recently modified one. If multiple are found, tell the user which one you're using.

2. Get the absolute path: Run pwd to get the project root absolute path (e.g. /root/app/code). Combine it with the filename to form the full path. Do NOT use command substitution ($(...)) — it is blocked by ACL. Instead, read the pwd output from the previous Bash call and construct the path manually as a string literal.

3. Check if base64-encoded: Run:

   file "path/to/file.zip"

If the output says "ASCII text" instead of "Zip archive data", the file is base64-encoded and must be decoded first.

4. Decode if needed: If base64-encoded, decode it in-place using Node (never use base64 -d — it is blocked by ACL):

   node -e "const fs=require('fs'); const data=fs.readFileSync('/root/app/code/file.zip','utf8'); fs.writeFileSync('/root/app/code/file.zip', Buffer.from(data,'base64'));"

Then verify with file again to confirm it's now a valid zip.

5. Snapshot package.json: Before extracting, read and store the current contents of package.json (if it exists) so you can compare it after extraction.

6. Extract it: Use the absolute path for both arguments:

   npx extract-zip "/root/app/code/Scope Engine V6.zip" /root/app/code

Always use absolute paths — npx extract-zip requires the destination to be absolute.

7. Check if package.json changed: After extraction, read package.json again and compare it to the snapshot from step 5. If the contents differ (or it didn't exist before), install dependencies:

   pnpm install --no-frozen-lockfile

If pnpm install fails due to blocked builds, update pnpm-workspace.yaml to set allowBuilds entries to true and retry.

8. Restart the dev server: If dependencies were installed, use the DevServerRestart tool to restart the dev server.

9. Report: Tell the user what was extracted, whether deps were reinstalled, and whether the dev server was restarted.

If the user specifies a file or destination

  • If they give a specific zip path, use that instead of searching.
  • If they give a destination directory, use that instead of the project root.

Notes

  • tar is blocked by ACL in this environment — always use npx extract-zip instead.
  • base64 -d is blocked by ACL — always use the Node one-liner to decode base64-encoded zips.
  • npx extract-zip does not require a separate install step; npx handles it.
  • Command substitution ($(...)) is blocked by ACL — never use it. Always get pwd in a separate Bash call first, then hardcode the resulting path as a string literal in subsequent commands.
  • Glob tool may not find files with spaces in their names — prefer find . -name "*.zip" via Bash.
  • npx extract-zip requires an absolute path for the destination directory, not a relative ..

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.