Cache npm packages once. Install forever — even offline.
PackVault is an offline-first package caching and distribution CLI for JavaScript developers.
Download package tarballs while online, install them later without internet access, share them across your LAN, and bootstrap entire projects from a local package vault.
# Cache packages while online
packvault sync react vite tailwindcss
# Later... no internet required
packvault install react⭐ Offline-first 🌐 LAN package sharing 📦 Project templates 🔒 Integrity verification ⚡ Peer-to-peer package sync
Modern JavaScript development assumes a reliable internet connection.
But many developers work:
- On unreliable networks
- While traveling
- In classrooms and workshops
- Behind restricted firewalls
- On multiple machines
Downloading the same dependencies repeatedly wastes bandwidth and time.
PackVault creates a reusable local package vault that works online and offline.
npm Registry
│
▼
PackVault Sync
│
▼
Local Vault
│
┌────┴────┐
▼ ▼
Offline LAN
Install Sharing
│
▼
Peer Sync
| Feature | npm Cache | Verdaccio | PackVault |
|---|---|---|---|
| Offline installs | ✓ | ✓ | ✓ |
| Lockfile sync | Partial | Partial | ✓ |
| Peer-to-peer sync | ✗ | ✗ | ✓ |
| Offline templates | ✗ | ✗ | ✓ |
| Offline audit | ✗ | ✗ | ✓ |
| Portable exports | ✗ | Partial | ✓ |
| Classroom mode | ✗ | ✗ | ✓ |
- Sync npm metadata and tarballs into a durable local vault
- Lockfile-aware sync for npm, Yarn, and pnpm
- SemVer-aware installs from cached packages
- Runtime dependency caching
- Incremental sync with skipped duplicates
- SHA-512 and shasum integrity verification
- LAN package sharing
- Transparent proxy registry
- Offline fallback support
- mDNS peer discovery
- Peer authentication tokens
- Bidirectional peer synchronization
- Offline starter project templates
- Framework bundles
- Automatic dependency installation
- Project snapshots and restore
- Per-project configuration
- Integrity verification
- Offline vulnerability auditing
- Allowlist/blocklist policies
- Audit logging
- Trusted peer authentication
- Bundle management
- Vault search
- Auto-sync scheduling
- Portable export/import
- Shell completion
- Project readiness diagnostics
npm install -g packvaultnpm install -g github:Demon-Die/PackVaultgit clone https://github.com/Demon-Die/PackVault
cd PackVault
npm install
npm run build
npm linkpackvault sync react vite tailwindcssOr sync directly from a lockfile:
packvault sync --from-lockfileDisconnect from the internet.
packvault install react
packvault install viteNo registry required.
Interactive wizard:
packvault createCreate directly:
packvault create react my-app
packvault create vue dashboard
packvault create svelte app
packvault create nextjs web-app
packvault create astro docs-site
packvault create fastify api-serverInstall dependencies automatically:
packvault create react my-app --installPre-cache common ecosystems:
packvault bundle frontend
packvault bundle backend
packvault bundle fullstack
packvault bundle frameworksCreate custom bundles:
packvault bundle save my-stack react vite tailwindcssShare your vault:
packvault shareDiscover peers:
packvault discoverConnect:
packvault connect 192.168.1.25Bidirectional synchronization:
packvault connect 192.168.1.25 --bidirectionalpackvault sync react vite tailwindcsspackvault doctorContinue working offline.
packvault install reactpackvault sharepackvault sync react vite tailwindcss
packvault sync --from-lockfile
packvault sync --from-lockfile ./package-lock.json
packvault sync --concurrency 10
packvault sync my-private-pkg --registry https://npm.mycompany.com --token TOKENpackvault install react
packvault install vite
packvault install --from-package-jsonpackvault bundle save my-stack react vite tailwindcss
packvault bundle list
packvault bundle delete my-stack
packvault bundle frontendpackvault doctor
packvault doctor --project ./my-app
packvault doctor --fixpackvault search react
packvault search vite --versionspackvault audit
packvault audit --project ./my-app
packvault audit --fixpackvault export -o my-vault.tar.gz
packvault import my-vault.tar.gzpackvault policy allow react vite
packvault policy block lodash
packvault policy listpackvault snapshot --project ./my-app -o my-app.vault
packvault snapshot restore my-app.vaultpackvault classroom --host
packvault classroom --joinPrepare dependencies before traveling and continue building without internet access.
Share one prepared vault with dozens of students and eliminate repeated downloads.
Reduce bandwidth usage across multiple machines and local networks.
Prepare dependency vaults in advance and build applications without external network access.
~/.packvault/
├── cache/
├── templates/
├── bundles/
├── database/
├── exports/
└── config.json
PackVault prioritizes reproducibility and security.
- SHA-512 integrity verification
- shasum verification support
- Offline vulnerability auditing
- Package allowlist/blocklist enforcement
- Authenticated peer synchronization
- Audit logging
CREATE TABLE packages (
name TEXT NOT NULL,
version TEXT NOT NULL,
size INTEGER NOT NULL,
cache_path TEXT NOT NULL,
dependencies TEXT NOT NULL DEFAULT '{}',
dist_tarball TEXT,
integrity TEXT,
shasum TEXT,
accessed_at TEXT,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (name, version)
);Additional tables store bundles, peers, logs, advisories, and schema versions.
- docs/ARCHITECTURE.md
- docs/ROADMAP.md
- Differential peer synchronization
- Enhanced registry mirroring
- Smarter dependency graph analysis
- Multi-user vault support
- Improved web UI
MIT
Built for developers who don't want internet availability to determine whether they can build software.