Python bindings for Vegh - The Snapshot Tool.
Project description
🥬 PyVegh
PyVegh is the official Python binding for the Vegh snapshot engine, developed by CodeTease.
It delivers the raw performance of Rust (Zstd multithreaded compression, Tar archiving, Blake3 hashing) wrapped in a modern, flexible Python interface.
"Tight packing, swift unpacking, no nonsense."
Features
- Blazing Fast: Core logic is implemented in Rust using PyO3, utilizing Zstd Multithreading and the next-gen Blake3 hashing algorithm.
- AI-Ready Context: Generate clean, token-optimized XML prompts for ChatGPT/Claude in milliseconds.
- Analytics Dashboard: Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard, no extraction required.
- Dry-Run Mode: Simulate snapshot creation to check file sizes and detect sensitive data risks before packing.
- Integrity v2: Verify data integrity at lightning speed with Blake3 and inspect metadata (author, timestamp, tool version) without unpacking.
- Smart Upload: Built-in
sendcommand supporting concurrent Chunked Uploads for large files. - Smart Filtering: Automatically respects
.veghignoreand.gitignorerules. - Vegh Hooks: Allow you to custom automation shell command while snapping.
- Deep Inspection: Peek into files (
cat) and compare snapshots (diff) without unpacking.
Installation
Install directly from PyPI:
pip install pyvegh
# Or via uv
uv pip install pyvegh
Or build from source (requires Rust):
maturin develop --release
CLI Usage
PyVegh provides a powerful command-line interface via the vegh (or pyvegh) command.
1. Configuration
Set up your default server URL and Auth Token so you don't have to type them every time.
vegh config
# Or one-liner:
vegh config send --url https://api.teaserverse.online/test --auth YOUR_TOKEN
# List current configuration
vegh config list
# Reset configuration to defaults
vegh config reset
2. Create Snapshot
Pack a directory into a highly compressed snapshot.
# Basic snapshot
vegh snap ./my-project --output backup.vegh
# Dry-Run (Simulation) - Check for large/sensitive files
vegh snap ./my-project --dry-run
3. LOC
View the Analytics Dashboard to break down your project by language and lines of code.
vegh loc backup.vegh
# Show Source Lines of Code (SLOC) instead of total LOC
# Excludes blank lines and comments
vegh loc backup.vegh --sloc
4. Prompt
Generate a structured XML context of your codebase to feed directly into ChatGPT, Claude, or Gemini.
# Generate XML context to stdout
vegh prompt .
# Clean Mode (Recommended):
# Removes lock files (package-lock.json, Cargo.lock), logs, secrets and other unnecessary files.
vegh prompt . --clean
# Copy to Clipboard (One-shot):
vegh prompt . --clean --copy
# Save to file
vegh prompt . --clean --output context.xml
5. Prune
Clean up old snapshots to free disk space.
# Keep only the 5 most recent snapshots in the current directory
vegh prune --keep 5
# Force clean without confirmation (useful for CI/CD)
vegh prune --keep 1 --force
6. Check
Check file integrity (Blake3) and view embedded metadata.
vegh check backup.vegh
7. Restore
Restore the snapshot to a target directory. Supports Partial Restore.
# Full restore
vegh restore backup.vegh ./restored-folder
# Partial restore (Specific files or folders)
vegh restore backup.vegh ./restored-folder --path src/main.rs --path config/
# Flatten directory structure (Extract files directly to output dir)
vegh restore backup.vegh ./restored-folder --flatten
8. Cat & Diff
Inspect content without extracting.
# View a file's content inside the snapshot
vegh cat backup.vegh src/main.rs
# View raw content (Useful for piping binary files)
vegh cat backup.vegh image.png --raw > extracted_image.png
# Compare snapshot with a directory
vegh diff backup.vegh ./current-project
9. Send
Send the snapshot to a remote server. Supports Chunked Uploads for reliability.
# Auto-detects if chunking is needed, or force it:
vegh send backup.vegh --force-chunk
10. Doctor
Check your environment and installation health.
vegh doctor
11. Hooks example
Create a .veghhooks.json in your workspace.
{
"pre": ["echo 'Checking...'", "ruff check -e"],
"post": ["echo 'Clean up...'"]
}
Library Usage
You can also use PyVegh as a library in your own Python scripts:
import json
from vegh import create_snap, restore_snap, check_integrity, get_metadata
# 1. Create a snapshot
# Returns the number of files compressed
count = create_snap("src_folder", "backup.vegh", comment="Automated backup")
print(f"Compressed {count} files.")
# 2. Check integrity (Now uses Blake3)
checksum = check_integrity("backup.vegh")
print(f"Blake3 Hash: {checksum}")
# 3. Read Metadata (Fast, no unpacking)
raw_meta = get_metadata("backup.vegh")
meta = json.loads(raw_meta)
print(f"Snapshot created by: {meta.get('author')}")
# 4. Restore
restore_snap("backup.vegh", "dest_folder")
License
This project is under the 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 Distributions
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 pyvegh-0.8.0.tar.gz.
File metadata
- Download URL: pyvegh-0.8.0.tar.gz
- Upload date:
- Size: 63.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4c048df2a19709dfd664099160ae62fbbb69321a22d3b8755bdfcb1b68fea05
|
|
| MD5 |
0f000aaaeb5e27cd1c480d2b8874d01a
|
|
| BLAKE2b-256 |
c8643a949123b92ed195e3a1c9ca11dc679c97e002ee0c60c2ebb89d621c2139
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0.tar.gz:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0.tar.gz -
Subject digest:
e4c048df2a19709dfd664099160ae62fbbb69321a22d3b8755bdfcb1b68fea05 - Sigstore transparency entry: 849982975
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
521557a3c4c6484c90d8d73252d01a968dd01845b7ee6fc0958067c8d184b1fc
|
|
| MD5 |
ea609c09f52106b178d36ccb6cd35ea5
|
|
| BLAKE2b-256 |
b9bf8abdb69bcc9a9d3933eff90a0212784ede38018bdd6c6c4cc4cc4fba3872
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
521557a3c4c6484c90d8d73252d01a968dd01845b7ee6fc0958067c8d184b1fc - Sigstore transparency entry: 849983000
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvegh-0.8.0-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: pyvegh-0.8.0-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a79ce64569cf7145e8f13af46c162f3f899c252ac8d83934a88b631c9cbb6ecf
|
|
| MD5 |
844cb211cd1db02181f970def3d207ea
|
|
| BLAKE2b-256 |
63506a8c297e7c7a625ea6afb71de0c60f3d356fab3d1d81b996a5c543bcc8b0
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0-cp310-abi3-win_amd64.whl:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0-cp310-abi3-win_amd64.whl -
Subject digest:
a79ce64569cf7145e8f13af46c162f3f899c252ac8d83934a88b631c9cbb6ecf - Sigstore transparency entry: 849982993
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dcb81446e92cef80abefcd16d45d53e80fb551246dc5ec3517b3bcc89a2f149
|
|
| MD5 |
4060ff10290c555587dc183d79c976bf
|
|
| BLAKE2b-256 |
cb28ea6a5db26c738f63f0012ead73b4b1162bc0bb87667d69b8c3e510915084
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
0dcb81446e92cef80abefcd16d45d53e80fb551246dc5ec3517b3bcc89a2f149 - Sigstore transparency entry: 849982986
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0371dd3fb3d88354568f8e1186f094f84dc34721a43c1e15a4149eca706ff8d
|
|
| MD5 |
83f7893e4a4f37fdd2bf8564f1c7c963
|
|
| BLAKE2b-256 |
d1f17d220c04d079d9f0f2ab0b696fa1283f3aee4b673b5d0a9fd0004012d0aa
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
b0371dd3fb3d88354568f8e1186f094f84dc34721a43c1e15a4149eca706ff8d - Sigstore transparency entry: 849983008
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
876c4857ea9898a1238837735824370543081df2576cf587a066c75393abc9a0
|
|
| MD5 |
627930bbbdc35f45c6088d89d39e90be
|
|
| BLAKE2b-256 |
5277987b5331290f6320d27c24ca861683d01ed30f028cc8bddb774dc81f4edf
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
876c4857ea9898a1238837735824370543081df2576cf587a066c75393abc9a0 - Sigstore transparency entry: 849982984
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc98419e1300e91c94677991e7644c908db4265f8e2b3e3389e00a883e5f4710
|
|
| MD5 |
776fea763da1a52c8d7a449ef1cdcc38
|
|
| BLAKE2b-256 |
df8f6d7ca26b4afab8ee1c8a50163c78a4b3812459933983518689038ae31a93
|
Provenance
The following attestation bundles were made for pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yml on CodeTease/pyvegh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
fc98419e1300e91c94677991e7644c908db4265f8e2b3e3389e00a883e5f4710 - Sigstore transparency entry: 849983003
- Sigstore integration time:
-
Permalink:
CodeTease/pyvegh@7989d80731a23b8268a0b067d27667c6e5101035 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/CodeTease
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7989d80731a23b8268a0b067d27667c6e5101035 -
Trigger Event:
push
-
Statement type: