tibet-snap — Cryptographic State Snapshots & Rollback
After a breach (Odido leak, Politie cookies hack, ransomware), the first question is: what changed, and how do we get back to a trustworthy state?
tibet-snap creates cryptographically sealed snapshots of system state using TIBET provenance tokens. Each snapshot captures file paths, SHA-256 hashes, timestamps, sizes and permissions — forming an immutable chain of system states.
What it does
- Snapshot — Capture the current state of files and directories as a TIBET-sealed record
- Compare — Diff two snapshots to see exactly what was added, removed, or modified
- Verify — Re-hash every file and confirm the snapshot is still intact
- Rollback plan — Auto-generate a rollback plan with restore/remove/revert actions
- Provenance — Every operation (create, verify, compare, rollback) is a linked TIBET token
Install
pip install tibet-snap
Usage
from tibet_snap import SnapEngine, Snapshot, SnapshotDiff
engine = SnapEngine(store_dir=".tibet-snap")
# Create a snapshot of /etc/nginx
snap = engine.create_snapshot("pre-deploy", paths=["/etc/nginx"])
# Later: create another snapshot
snap2 = engine.create_snapshot("post-deploy", paths=["/etc/nginx"])
# Compare
diff = engine.compare(snap.id, snap2.id)
print(f"Modified: {len(diff.modified)}, Added: {len(diff.added)}, Removed: {len(diff.removed)}")
print(f"Drift score: {diff.drift_score}")
# Verify integrity
ok = engine.verify(snap.id)
# Generate rollback plan
plan = engine.rollback_plan(snap.id)
for action in plan:
print(f" {action['action']}: {action['path']}")
CLI
# Concept overview
tibet-snap info
# Create a snapshot
tibet-snap create pre-deploy /etc/nginx /etc/ssl
# List all snapshots
tibet-snap list
# Compare two snapshots
tibet-snap compare <id_a> <id_b>
# Verify snapshot integrity
tibet-snap verify <id>
# Interactive demo: create → hack → compare → rollback
tibet-snap demo
TIBET Provenance
Every operation creates a linked SnapToken:
| Layer | Content |
|---|---|
| ERIN | Snapshot content (paths, hashes) |
| ERAAN | Parent snapshot, dependencies |
| EROMHEEN | Hostname, timestamp, actor |
| ERACHTER | Intent (create/verify/compare/rollback) |
Tokens are chained: each new token references its parent, forming a tamper-evident audit trail of all snapshot operations.
License
MIT — Humotica / J. van de Meent
Credits
Designed by Jasper van de Meent. Built by Jasper and Root AI as part of HumoticaOS.
Stack-positie: Groep evidence · Bootstrap = OSAPI-handshake naar tibet + jis (fail → snaft-rule + tibet-pol-rapport) · ← tibet-wayback · See STACK.md · See demo/golden-path/ for the spine end-to-end.
Enterprise
For private hub hosting, SLA support, custom integrations, or compliance guidance:
| Enterprise | enterprise@humotica.com |
| Support | support@humotica.com |
| Security | security@humotica.com |
See ENTERPRISE.md for details.
Metadata
Release files for tibet-snap 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tibet_snap-0.1.3.tar.gz | 14.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tibet_snap-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.9 kB
Release files / tibet_snap-0.1.3.tar.gz
| Download URL | tibet_snap-0.1.3.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7eeab5fe55afb15df1ec1a0a6ab66a31eec2d1526ba5ecdcddd7f0f15b41bf3
|
|
BLAKE2b-256 checksum How to use checksums |
6fa624a16065f04d469ddeebd772c9038bc7555c9eca4091c39531902140e222
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / tibet_snap-0.1.3-py3-none-any.whl
| Download URL | tibet_snap-0.1.3-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a29b34206cdca8639a1140548b5c724e08279f8f783bfd5be4a2538a5bc1ee8
|
|
BLAKE2b-256 checksum How to use checksums |
b78bf5ff9dc272aca170f190daf7d748ba2c3e2893a12ebf9222f8c837768247
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|