packvault
v0.2.2
Published
Offline-first package caching and distribution CLI for JavaScript developers.
Maintainers
Readme
PackVault
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
Why PackVault?
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.
How It Works
npm Registry
│
▼
PackVault Sync
│
▼
Local Vault
│
┌────┴────┐
▼ ▼
Offline LAN
Install Sharing
│
▼
Peer SyncComparison
| Feature | npm Cache | Verdaccio | PackVault | | ----------------- | --------- | --------- | --------- | | Offline installs | ✓ | ✓ | ✓ | | Lockfile sync | Partial | Partial | ✓ | | Peer-to-peer sync | ✗ | ✗ | ✓ | | Offline templates | ✗ | ✗ | ✓ | | Offline audit | ✗ | ✗ | ✓ | | Portable exports | ✗ | Partial | ✓ | | Classroom mode | ✗ | ✗ | ✓ |
Features
Offline Package Management
- 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
Networking & Distribution
- LAN package sharing
- Transparent proxy registry
- Offline fallback support
- mDNS peer discovery
- Peer authentication tokens
- Bidirectional peer synchronization
Project Bootstrapping
- Offline starter project templates
- Framework bundles
- Automatic dependency installation
- Project snapshots and restore
- Per-project configuration
Security
- Integrity verification
- Offline vulnerability auditing
- Allowlist/blocklist policies
- Audit logging
- Trusted peer authentication
Productivity
- Bundle management
- Vault search
- Auto-sync scheduling
- Portable export/import
- Shell completion
- Project readiness diagnostics
Pricing & Tiers
PackVault uses a simple, transparent pricing model to keep basic offline development accessible for everyone while providing powerful networking and collaboration tools for professionals and teams.
Community (Free)
Ideal for individual developers and basic offline coding.
- Local Sync & Install
- Integrity Verification
- Lockfile Aware
- Project Templates
- Offline Security Audit
Pro ($12/mo)
Perfect for teams, classrooms, and enterprise environments. Includes everything in Community, plus:
- LAN Package Sharing (mDNS)
- Peer-to-Peer Sync
- Local Registry Proxy (
packvault serve) - Bidirectional Node Connect
To activate your Pro license, run:
packvault activate <your-license-key>Installation
npm
npm install -g packvaultGitHub
npm install -g github:Demon-Die/PackVaultLocal Development
git clone https://github.com/Demon-Die/PackVault
cd PackVault
npm install
npm run build
npm linkQuick Start
Cache Packages While Online
packvault sync react vite tailwindcssOr sync directly from a lockfile:
packvault sync --from-lockfileGo Offline
Disconnect from the internet.
Install From Cache
packvault install react
packvault install viteNo registry required.
Create Projects Offline
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 --installBundles
Pre-cache common ecosystems:
packvault bundle frontend
packvault bundle backend
packvault bundle fullstack
packvault bundle frameworksCreate custom bundles:
packvault bundle save my-stack react vite tailwindcssLAN Sharing
Share your vault:
packvault shareDiscover peers:
packvault discoverConnect:
packvault connect 192.168.1.25Bidirectional synchronization:
packvault connect 192.168.1.25 --bidirectionalCommon Workflow
1. Sync Dependencies
packvault sync react vite tailwindcss2. Verify Vault Health
packvault doctor3. Disconnect Internet
Continue working offline.
4. Install Packages
packvault install react5. Share With Other Machines
packvault shareCommands
Sync
packvault 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 TOKENInstall
packvault install react
packvault install vite
packvault install --from-package-jsonBundle
packvault bundle save my-stack react vite tailwindcss
packvault bundle list
packvault bundle delete my-stack
packvault bundle frontendDoctor
packvault doctor
packvault doctor --project ./my-app
packvault doctor --fixSearch
packvault search react
packvault search vite --versionsAudit
packvault audit
packvault audit --project ./my-app
packvault audit --fixExport / Import
packvault export -o my-vault.tar.gz
packvault import my-vault.tar.gzPolicy
packvault policy allow react vite
packvault policy block lodash
packvault policy listSnapshot
packvault snapshot --project ./my-app -o my-app.vault
packvault snapshot restore my-app.vaultClassroom Mode
packvault classroom --host
packvault classroom --joinUse Cases
Remote Development
Prepare dependencies before traveling and continue building without internet access.
Workshops & Classrooms
Share one prepared vault with dozens of students and eliminate repeated downloads.
Team Development
Reduce bandwidth usage across multiple machines and local networks.
Air-Gapped Systems
Prepare dependency vaults in advance and build applications without external network access.
Vault Layout
~/.packvault/
├── cache/
├── templates/
├── bundles/
├── database/
├── exports/
└── config.jsonSecurity
PackVault prioritizes reproducibility and security.
- SHA-512 integrity verification
- shasum verification support
- Offline vulnerability auditing
- Package allowlist/blocklist enforcement
- Authenticated peer synchronization
- Audit logging
Database Schema
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.
Documentation
- docs/ARCHITECTURE.md
- docs/ROADMAP.md
Roadmap
- Differential peer synchronization
- Enhanced registry mirroring
- Smarter dependency graph analysis
- Multi-user vault support
- Improved web UI
License
MIT
Built for developers who don't want internet availability to determine whether they can build software.
