Skip to main content

Visual CLI for portable configuration bundles

Project description

Showcase

Peridot

CI

Versión actual: 0.4.2 (ver CHANGELOG.md).

Peridot es un CLI para crear bundles portables de configuración (.peridot) con una UX cuidada:

  • pack: empaqueta dotfiles/carpetas de config en un bundle cifrado
  • inspect/manifest: inspecciona qué hay dentro antes de aplicar
  • apply: restaura en otra máquina (con --dry-run y modo transaccional)

Quickstart (3 comandos)

peridot init
peridot pack "Mi bundle" --output mi-bundle.peridot ~/.config
peridot apply mi-bundle.peridot --dry-run

Notas:

  • Recomendación: prueba siempre primero con --dry-run.
  • En automatización (sin TTY), si no pasas nombre, Peridot genera uno por defecto.

Qué es un .peridot

Un .peridot es un ZIP con:

my-setup.peridot
├── manifest.json
└── payloads/
    ├── 0001-....bin
    ├── 0002-....bin
    └── ...
  • manifest.json queda legible para poder revisar el contenido.
  • Cada fichero se comprime (si compensa) y se cifra (AES‑GCM).

Instalación

Recomendado (Windows/macOS/Linux): pipx

pipx instala CLIs Python en un entorno aislado y deja el comando en tu PATH.

  1. Instala Python 3.11+.
  2. Instala pipx:
  • Windows (PowerShell):
python -m pip install --user pipx
python -m pipx ensurepath

Cierra y vuelve a abrir la terminal.

  • macOS (Homebrew):
brew install pipx
pipx ensurepath
  • Linux (según distro):
python3 -m pip install --user pipx
python3 -m pipx ensurepath
  1. Instala Peridot desde PyPI:
pipx install peridot-cli
peridot --version

Nota: en PyPI el paquete se llama peridot-cli ("peridot" ya está ocupado).

macOS: Homebrew (opcional)

Si prefieres brew, una alternativa es instalar pipx con brew y seguir el método anterior.

Desde el repo (modo dev)

./install.sh
# opcional: instala dependencias de desarrollo (pytest, etc.)
PERIDOT_INSTALL_DEV=1 ./install.sh

peridot --version

Uso básico

Generar o comprobar la clave:

peridot keygen

Modo visual:

peridot ui

Benchmark de rendimiento de pack:

peridot bench --files 200 --size-kb 4 --levels 0,1,3 --runs 1
# guardar resultados en JSON
peridot bench --files 200 --size-kb 4 --levels 0,1,3 --runs 3 --out bench.json

Aplicar de forma segura:

peridot apply bundle.peridot --dry-run
peridot apply bundle.peridot

Por defecto, apply usa modo transaccional (rollback best‑effort) y verificación post‑escritura.

Desarrollo

python3 -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
pytest -q

Seguridad

  • Cifrado: AES‑GCM por fichero.
  • apply soporta rollback best‑effort y verificación de hash tras escribir.

Licencia

MIT. Ver 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

peridot_cli-0.4.2.tar.gz (44.1 kB view details)

Uploaded Source

Built Distribution

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

peridot_cli-0.4.2-py3-none-any.whl (38.1 kB view details)

Uploaded Python 3

File details

Details for the file peridot_cli-0.4.2.tar.gz.

File metadata

  • Download URL: peridot_cli-0.4.2.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for peridot_cli-0.4.2.tar.gz
Algorithm Hash digest
SHA256 f66bcd29fc4509e88779fc50ba302299eaa7d76513ccd1c13023d6228b09e40a
MD5 377c189d340851dd23cabe0dffa63fc9
BLAKE2b-256 3e05c21f635813edc95880df548e9baca75bf8066aa5d9ec584338901d6759fd

See more details on using hashes here.

File details

Details for the file peridot_cli-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: peridot_cli-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for peridot_cli-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0a10c86ea1df68c21812f153d2839b17f7af3e422f98bcaf7f3d11764a6e781d
MD5 9b8ded50971b547f6cae0abf3544ac96
BLAKE2b-256 61f056bae402a0500bb3c3d44dc9c47569c21242ab95b55e418bcef4fab869bb

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