Skip to content

Job-madi/LexxyVault

Repository files navigation

LexxyVault

LexxyVault is a simple CLI tool for backup and restoration using Google Cloud Storage.

🤖 AI Experiment: The 2026 commits were generated using Gemini 3 Flash via Gemini CLI to evaluate how well it handles contributing to an existing codebase. Blog post to follow.

Features

  • Zero-Knowledge Encryption: Optional AES-256-CBC encryption using scrypt key derivation. Your files are encrypted locally before upload.
  • Smart Storage: Automatically organizes backups into user-specific folders using your system username.
  • Incremental Backups: Uses file hashing to detect changes and only upload modified files, saving bandwidth.
  • Task Automation: Easy-to-use scheduling system with a background daemon for hands-off backups.
  • Simple Setup: No complex login systems—just use your Google Cloud Service Account key.

Installation

npm install
npm run build

Setup

LexxyVault requires a Google Cloud Service Account key (.json file) with "Storage Object Admin" permissions.

  1. Place your key file on your machine.
  2. Set the environment variable or use the tool to configure it:
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/key.json"

Usage

Interactive Menu

Simply run the tool without arguments to open the visual menu:

npm start

Direct Commands

Backups

# Backup a folder with encryption
lexxy backup --paths ./my-data --encrypt

Bucket Management

# Set your default bucket or create a new one
lexxy bucket create
lexxy bucket use <bucket-name>

Scheduling

# Add a new cron-based schedule
lexxy schedule add

# Run the background worker to execute tasks
lexxy schedule daemon

Restoration

# List all files you have backed up
lexxy restore list

# Restore everything to a specific folder
lexxy restore all --output ./restored-data

About

A simple TypeScript CLI for secure cloud backups to Google Cloud Storage: Gemini 3 Flash

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published