Skip to main content

CLI tool for syncing encrypted vaults with SGit-AI

Project description

sgit-ai

Git-like encrypted vault management for the command line.

sgit-ai syncs encrypted vaults between your local filesystem and SGit-AI's Transfer API. Every file is encrypted client-side with AES-256-GCM before it leaves your machine — the server never sees plaintext.

PyPI Python License

Install

pip install sgit-ai

This gives you two CLI commands: sgit-ai and the shorthand sgit.

Quick Start

# Create a new encrypted vault
sgit init my-vault

# Add files to the working directory
cp important-doc.pdf my-vault/

# Commit and push
sgit commit "initial upload" -d my-vault
sgit push my-vault

# Clone an existing vault on another machine
sgit clone <vault-key>

Features

Encrypted Vault Sync

Clone, commit, push, and pull encrypted vaults — just like git, but every object is AES-256-GCM encrypted before upload.

sgit clone <vault-key>          # Download and decrypt a vault
sgit status                     # Show uncommitted changes
sgit commit "my changes"        # Snapshot local changes
sgit pull                       # Fetch and merge remote changes
sgit push                       # Upload to remote
sgit branches                   # List all branches

Client-Side Encryption

All crypto runs locally. The server stores only ciphertext.

  • AES-256-GCM for file encryption with per-file HKDF-derived keys
  • PBKDF2-SHA256 (600k iterations) for vault key derivation
  • Content-addressable storage — encrypted objects stored by hash
  • Web Crypto API compatible — byte-for-byte interop with browser implementations

PKI and Digital Signatures

Built-in public key infrastructure for signing and encrypting files between users.

sgit pki keygen                             # Generate RSA-4096 + ECDSA P-256 key pair
sgit pki sign doc.pdf --fingerprint <fp>    # Create detached signature
sgit pki verify doc.pdf sig.json            # Verify signature
sgit pki encrypt doc.pdf --recipient <fp>   # Hybrid RSA-OAEP + AES-256-GCM encryption
sgit pki decrypt doc.pdf.enc --fingerprint <fp>

Vault Inspection

Debug and inspect the internals of any vault.

sgit inspect                    # Vault state overview
sgit log --oneline --graph      # Commit history
sgit inspect-tree               # Current tree entries
sgit inspect-stats              # Object store statistics
sgit cat-object <id>            # Decrypt and display an object
sgit fsck --repair              # Verify integrity and repair

Credential and Remote Management

# Store vault keys under friendly aliases
sgit vault add my-project --vault-key <key>
sgit vault list

# Configure multiple remotes
sgit remote add origin <url> <vault-id>
sgit remote list

Architecture

sgit_ai/
├── cli/           # CLI commands (sgit-ai / sgit)
├── crypto/        # AES-256-GCM, PBKDF2, HKDF, RSA-OAEP, ECDSA
├── sync/          # Clone, commit, push, pull, merge, branching
├── api/           # SGit-AI Transfer API client
├── pki/           # Key store and contact keyring
├── objects/       # Content-addressable encrypted object store
├── schemas/       # Type_Safe data models
├── safe_types/    # Domain-specific validated types (zero raw primitives)
└── secrets/       # Local encrypted secrets store

Built on osbot-utils Type_Safe framework — all data fields use validated domain types, never raw primitives.

Development

# Install in dev mode
pip install -e ".[dev]"

# Run tests
pytest tests/unit/

# Run with coverage
pytest --cov=sgit_ai --cov-report=term-missing

License

Apache-2.0

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

sgit_ai-0.14.4.tar.gz (195.9 kB view details)

Uploaded Source

Built Distribution

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

sgit_ai-0.14.4-py3-none-any.whl (320.0 kB view details)

Uploaded Python 3

File details

Details for the file sgit_ai-0.14.4.tar.gz.

File metadata

  • Download URL: sgit_ai-0.14.4.tar.gz
  • Upload date:
  • Size: 195.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sgit_ai-0.14.4.tar.gz
Algorithm Hash digest
SHA256 77695ad976ca0017c25230a11957f5fff75f0c37c2a9a4195e4d754146350e1c
MD5 8153cc5eb9fb206a372f4bd7bc77ae67
BLAKE2b-256 ac3384a48ba5aa4a133d41cbaff3639491f9638804849d78610c3022e748578d

See more details on using hashes here.

File details

Details for the file sgit_ai-0.14.4-py3-none-any.whl.

File metadata

  • Download URL: sgit_ai-0.14.4-py3-none-any.whl
  • Upload date:
  • Size: 320.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sgit_ai-0.14.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8ae6eae4fd0ef31c346ddea0b99a0f0d3f8d0a1ad999fd6f9e592d2f7e58001a
MD5 2846576b944228f2414a71b5d6cc69a3
BLAKE2b-256 f057b21a16869ba5d2a5b0b103831a3bcf3147ff8d97d19d4cce1c072b1091dc

See more details on using hashes here.

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