Skip to main content

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 send command supporting concurrent Chunked Uploads for large files.
  • Smart Filtering: Automatically respects .veghignore and .gitignore rules.
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvegh-0.8.0.tar.gz (63.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyvegh-0.8.0-cp310-abi3-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

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

Hashes for pyvegh-0.8.0.tar.gz
Algorithm Hash digest
SHA256 e4c048df2a19709dfd664099160ae62fbbb69321a22d3b8755bdfcb1b68fea05
MD5 0f000aaaeb5e27cd1c480d2b8874d01a
BLAKE2b-256 c8643a949123b92ed195e3a1c9ca11dc679c97e002ee0c60c2ebb89d621c2139

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvegh-0.8.0.tar.gz:

Publisher: release.yml on CodeTease/pyvegh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvegh-0.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 521557a3c4c6484c90d8d73252d01a968dd01845b7ee6fc0958067c8d184b1fc
MD5 ea609c09f52106b178d36ccb6cd35ea5
BLAKE2b-256 b9bf8abdb69bcc9a9d3933eff90a0212784ede38018bdd6c6c4cc4cc4fba3872

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pyvegh-0.8.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a79ce64569cf7145e8f13af46c162f3f899c252ac8d83934a88b631c9cbb6ecf
MD5 844cb211cd1db02181f970def3d207ea
BLAKE2b-256 63506a8c297e7c7a625ea6afb71de0c60f3d356fab3d1d81b996a5c543bcc8b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvegh-0.8.0-cp310-abi3-win_amd64.whl:

Publisher: release.yml on CodeTease/pyvegh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvegh-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0dcb81446e92cef80abefcd16d45d53e80fb551246dc5ec3517b3bcc89a2f149
MD5 4060ff10290c555587dc183d79c976bf
BLAKE2b-256 cb28ea6a5db26c738f63f0012ead73b4b1162bc0bb87667d69b8c3e510915084

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyvegh-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b0371dd3fb3d88354568f8e1186f094f84dc34721a43c1e15a4149eca706ff8d
MD5 83f7893e4a4f37fdd2bf8564f1c7c963
BLAKE2b-256 d1f17d220c04d079d9f0f2ab0b696fa1283f3aee4b673b5d0a9fd0004012d0aa

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvegh-0.8.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 876c4857ea9898a1238837735824370543081df2576cf587a066c75393abc9a0
MD5 627930bbbdc35f45c6088d89d39e90be
BLAKE2b-256 5277987b5331290f6320d27c24ca861683d01ed30f028cc8bddb774dc81f4edf

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyvegh-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fc98419e1300e91c94677991e7644c908db4265f8e2b3e3389e00a883e5f4710
MD5 776fea763da1a52c8d7a449ef1cdcc38
BLAKE2b-256 df8f6d7ca26b4afab8ee1c8a50163c78a4b3812459933983518689038ae31a93

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page