Overview
NeoZip CLI provides three binaries — neozip, neounzip, and neolist — for archive workflows on macOS, Linux, and Windows. v1.0.0 is the first stable release: SemVer 1.x CLI stability, APPNOTE §6 Merkle v1, origin-aware Token Service networks, and Stripe membership for billed services. Use extended help on any command with -h2.
- First stable SemVer 1.0 release — CLI API stable for 1.x; breaking changes bump major
- AI agent ready — machine-readable JSON I/O, schema introspection, dry-run, and bundled Skills
- NeoZip Token Service — Data Wallet setup, silent token refresh, testnet gas grants, Stripe membership for billed services
- APPNOTE §6 Merkle v1 roots for mint / stamp / verify (powered by neozipkit 1.0.5)
- Create, extract, and list archives with Zstd (default), Deflate, or Store; AES-256 encryption by default
- ~99% InfoZip-compatible with --legacy; cross-platform macOS, Linux, and Windows (Node.js 22.15+)
Installation
Requires Node.js 22.15.0 or higher (native Zstd). Install globally from npm — no @beta tag:
Install
npm install -g neozip-cli
# Verify installation
neozip --version
neounzip --version
neolist --versionQuick start
A typical workflow: create an archive, inspect it, then extract or test integrity.
Basic workflow
# Create a ZIP archive
neozip archive.nzip file1.txt folder/
# List contents
neolist archive.nzip
# Extract files
neounzip archive.nzip tests/extracted/
# Test integrity
neounzip -t archive.nzipAI agent integration
NeoZip is designed for autonomous AI and LLM agents. Every command exposes a stable, machine-readable surface alongside its human interface. Agents can integrate via three paths:
| Path | When to use |
|---|---|
| CLI + JSON | Direct shell invocation from any agent runtime |
| Bundled Skills | Cursor, Claude Code, or other skill-aware hosts — load via neozip skills install |
| NeoZip MCP | MCP-native agents (v0.9.0-beta) — same ~/.neozip/connection/ store, dual-era MCP, tool-based API |
Agent workflow
- Introspect — neozip schema <neozip|neounzip|neolist|connect> returns accepted fields, types, defaults, and exit codes.
- Preview — add --dry-run to neozip/neounzip to resolve the full plan as JSON without writing.
- Execute — run with --format json; parse stdout only (stderr is hints).
- Recover — on failure, check error.exitCode and run error.nextCommand when present.
Agent workflow examples
# Introspect accepted fields and exit codes
neozip schema neozip
# Preview a create operation without writing
neozip --format json --dry-run \
--params '{"level":9,"encrypt":true,"password":"s3cret"}' \
--json '{"archive":"out.zip","files":["src/","README.md"]}'
# Execute with structured output
neozip --format json \
--params '{"level":9,"encrypt":true,"password":"s3cret"}' \
--json '{"archive":"out.zip","files":["src/","README.md"]}'
# Extract with on-chain integrity check
neounzip --format json \
--params '{"exdir":"out","preVerify":true}' \
--json '{"archive":"tokenized.nzip"}'JSON I/O conventions
- Output: --format json writes a single object to stdout — success: { ok: true, ... }; failure: { ok: false, error: { code, exitCode, message, nextCommand? } }
- Input: --params '<JSON>' (control options) and --json '<JSON>' (payload: archive + files/targets). Either accepts - to read from stdin.
- Precedence: explicit CLI flags override values from --params/--json.
- Exit codes: InfoZip-compatible; echoed in error.exitCode. Branch on codes, not message text.
Advanced features for agents
| Feature | Agent params | Prerequisites |
|---|---|---|
| AES-256 encryption | "encrypt": true, "password": "…" | None |
| PKZIP encryption | "encryptionMethod": "pkzip" | None |
| Zstd compression (default) | "compression": "zstd", "level": 0–9 | Node.js ≥ 22.15 |
| InfoZip compatibility | "legacy": true | Disables blockchain extensions |
| On-chain tokenization | "blockchain": true | neozip connect + gas (connect fund on testnet) |
| Token Service timestamp | "blockchainTokenService": true | Verified account + access token |
| Pre-verify on extract | "preVerify": true | Archive must be tokenized |
| Network selection | "network": "base-sepolia" | "base" | Must match active Token Service origin |
Safety rails
- Archive names and extraction dirs are validated for control characters and dangerous Unicode.
- neounzip refuses zip-slip entries whose resolved path escapes the target directory.
- --dry-run never touches the filesystem.
- Treat all agent-supplied paths and IDs as potentially adversarial.
Bundled Agent Skills
Six bundled skills ship inside the npm package. Install them into Claude Code or Cursor after npm install -g neozip-cli. For MCP-native agents, see the NeoZip MCP product page or setup & docs — it shares the same ~/.neozip/connection/ store.
| Skill | Covers |
|---|---|
| neozip-shared | JSON output, --params/--json, schema, dry-run, exit codes |
| neozip-create | Archive creation: compression, encryption, blockchain flags |
| neozip-extract | Extract, test, verify; zip-slip protection; --pre-verify |
| neozip-list | List archive contents as JSON |
| neozip-connect | Token Service setup, refresh, funding, membership |
| neozip-legacy | InfoZip/PKZIP-compatible archives (--legacy) |
Install Agent Skills
# Symlink bundled skills into ~/.claude/skills and ~/.cursor/skills
neozip skills install
# Claude Code only
neozip skills install --target claude
# Show where skills live in your install
neozip skills path
neozip skills list
# ZIP files for Claude Cowork / claude.ai upload
neozip skills pack --output-dir ./neozip-skills-zipsNeoZip Token Service & Data Wallet
All wallet identity and Token Service credentials live in the shared connection store at ~/.neozip/connection/ — the same profile used by NeoZip Desktop and NeoZip MCP. Run neozip connect (alias: neozip init) to set up your local Data Wallet and verified Token Service account.
The Token Service provides email-verified identity, Ethereum timestamps (-ts), silent wallet-signature token refresh, optional testnet gas grants via neozip connect fund, and Stripe membership for billed production services via neozip connect membership. Hosted testnet defaults to Base Sepolia; production Token Service defaults to Base Mainnet. On-chain tokenization (-b) signs locally with the Data Wallet and does not require a current access token.
Token Service setup
# Scripted setup (non-interactive, agent-friendly)
neozip connect register --email you@example.com --json
neozip connect verify --email you@example.com --code 123456 --json
neozip connect wallet create --ack-backup --json
neozip connect finish --json
# Silent wallet-signature token renewal (preferred)
neozip connect refresh --json
# Membership for billed Token Services (production)
neozip connect membership status --json
neozip connect membership checkout --json
neozip connect membership portal --json
# Testnet gas grants only (Base Sepolia) — not available on Base Mainnet
neozip connect fund status --json
neozip connect fund --json
neozip connect fund --network base-sepolia --json
# Optional overrides
export NEOZIP_CONNECTION_DIR="/path/to/connection"
export NEOZIP_UNLOCK_PASSPHRASE="..."
export NEOZIP_NETWORK="base-sepolia"Compression
Zstd is the default method. Use Deflate for maximum compatibility, level -0 to store without compression, or --legacy for archives readable by stock InfoZip unzip.
Compression examples
# Default Zstd compression
neozip output.nzip ./src/
# Maximum compression
neozip -9 output.nzip ./src/
# Deflate (maximum compatibility)
neozip --compression deflate output.nzip ./src/
# Store only (no compression)
neozip -0 output.nzip ./src/
# InfoZip-compatible archive (stock unzip can read)
neozip --legacy -9 compat.zip ./src/
# Scan for old WASM zstd frames
neolist --detect-legacy-zstd archive.nzipEncryption
AES-256 is the recommended default. Legacy PKZIP encryption is available for compatibility only. Extraction auto-detects the encryption method.
Encryption examples
# AES-256 encrypted archive (prompts for password)
neozip -e secure.nzip file.txt
# With password on the command line
neozip -e -P "mypassword" secure.nzip file.txt
# Extract (auto-detects AES-256 or PKZIP)
neounzip -P "mypassword" secure.nzip tests/extracted/Blockchain
Tokenize archives on supported EVM networks (network follows your connection's Token Service origin), add Token Service timestamps with APPNOTE §6 Merkle v1 digests, and verify integrity on extract. Run neozip connect before using blockchain features (see Token Service & Data Wallet above).
Blockchain examples
# Set up Data Wallet and Token Service account first
neozip connect
# Tokenize archive (on-chain mint; needs gas — run neozip connect fund on testnet)
neozip -b tokenized.nzip file.txt
# Token Service timestamp (needs verified account; production stamps Base Mainnet)
neozip -ts timestamped.nzip file.txt
# Upgrade pending Token Service timestamp to confirmed
neozip upgrade timestamped.nzip [output.nzip] [--wait]
# Extract and verify on-chain integrity
neounzip --pre-verify tokenized.nzip verified/Full command reference
Flags, subcommands, and examples for neozip, neounzip, neolist, connect, skills, schema, and more.
Building apps with NeoZipKit or NeoZip-blockchain? See the Developers hub for SDK installation and library documentation.