The Unified Project Lifecycle Manager: Backup, Restore, and Teleport Projects Anywhere.
Project description
Project Vault (pv)
The Unified Project Lifecycle Manager.
Teleport your entire project state—code, databases, caches, and environments—anywhere, safely.
🚀 The Core Vision
Project Vault (pv) creates 100% identical project capsules. It captures the "messy reality" of a working project that Git ignores: local databases, node_modules, .env files, compiled binaries, and temp directories.
If you restore a pv snapshot on a new machine and run diff -r, you will see zero differences.
Use Cases:
- Teleport: Move a running workspace from Laptop → Server in seconds.
- Resurrect: Restore a dead environment exactly as it was 3 months ago.
- Debug: Snapshot a bug state (including the DB) and send it to a colleague.
📦 Installation
The Full Suite (Recommended)
Install the unified tool to get backup, restore, and cloud synchronization features.
pip install project-vault
This installs the pv command, which includes:
projectclone: The core snapshot engine.projectrestore: The safety-critical restoration tool.
Standalone Tools (Advanced)
For servers, CI/CD, or minimal environments, you can install the components independently:
- Backup Only:
pip install projectclone(No cloud deps) - Restore Only:
pip install projectrestore(Zero dependencies, ultra-lightweight)
⚡ Quick Start
1. Initialize
Run this in your project root to generate a config file (pv.toml).
pv init
2. Create a Snapshot
Capture the current state of your project into the local vault.
pv vault
3. Check Status
See what has changed in your workspace since the last snapshot.
pv status
4. Sync to Cloud
Push your encrypted, deduplicated snapshots to S3 or Backblaze B2.
# Preview what will be uploaded
pv push --dry-run
# Upload
pv push
5. Restore (Teleport)
Bring the project back to life on any machine.
# Restore the entire project
pv vault-restore ./vault/snapshots/my-project/snapshot_latest.json ./restored_project
# Or fix a single mistake locally
pv checkout src/main.py
🛠️ Commands
| Command | Description |
|---|---|
pv vault |
Create a content-addressable snapshot of the current directory. |
pv status |
Show modified files and cloud sync status. |
pv diff |
Compare a local file against the latest snapshot. |
pv checkout |
Restore a specific file from the latest snapshot. |
pv push |
Sync local vault to Cloud (S3/B2). |
pv pull |
Download missing snapshots from Cloud. |
pv list |
List all local or cloud snapshots. |
pv vault-restore |
Full project restoration from a manifest. |
pv check-integrity |
Verify the health of the local vault (detect corruption). |
🧩 Architecture
Project Vault is a monorepo containing three distinct tools:
project-vault(pv): The orchestrator. Handles configuration, cloud sync, and user interaction.projectclone: The backup engine. Handles hashing, deduplication, and manifest generation.projectrestore: The restore engine. A standalone, dependency-free tool focused purely on safe data reconstruction.
🗺️ Roadmap
See ROADMAP.md for the vision of Project Teleportation, Smart Capsules, and Device Mesh.
📄 License
MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file project_vault-1.0.0.tar.gz.
File metadata
- Download URL: project_vault-1.0.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8769632ec6c43fce2d2208ff06f48031bd820cfd2843e3639525a2acb8eb479
|
|
| MD5 |
b3975e043f3c8ab763243570a63ea3fa
|
|
| BLAKE2b-256 |
38a2bd983bbc29ee1050c092ffccc0b3cefca2387c2245865b43a76f08603e87
|
Provenance
The following attestation bundles were made for project_vault-1.0.0.tar.gz:
Publisher:
publish.yml on dhruv13x/project-vault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
project_vault-1.0.0.tar.gz -
Subject digest:
c8769632ec6c43fce2d2208ff06f48031bd820cfd2843e3639525a2acb8eb479 - Sigstore transparency entry: 718679109
- Sigstore integration time:
-
Permalink:
dhruv13x/project-vault@023c121ba72d9b50c98d845f60eaeb4d82fbe9d5 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/dhruv13x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@023c121ba72d9b50c98d845f60eaeb4d82fbe9d5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file project_vault-1.0.0-py3-none-any.whl.
File metadata
- Download URL: project_vault-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18fa004b8b083853bafa61113831ff44bd29783782503e06290648f76b05d0b0
|
|
| MD5 |
be27439cdbbdf0deb695b64b7bfab1af
|
|
| BLAKE2b-256 |
95e8d9fcd54b38be1835c4501965d34f2b0b3943ea1c1dfb46fd88198997af6a
|
Provenance
The following attestation bundles were made for project_vault-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on dhruv13x/project-vault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
project_vault-1.0.0-py3-none-any.whl -
Subject digest:
18fa004b8b083853bafa61113831ff44bd29783782503e06290648f76b05d0b0 - Sigstore transparency entry: 718663217
- Sigstore integration time:
-
Permalink:
dhruv13x/project-vault@023c121ba72d9b50c98d845f60eaeb4d82fbe9d5 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/dhruv13x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@023c121ba72d9b50c98d845f60eaeb4d82fbe9d5 -
Trigger Event:
push
-
Statement type: