Metadata-Version: 2.4
Name: timevault
Version: 0.2.0
Summary: Time Machine-style personal backup orchestrated by Python & uv
Project-URL: Homepage, https://github.com/rappdw/timeless
Project-URL: Repository, https://github.com/rappdw/timeless
Author-email: Dan Rapp <rappdw@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Archiving :: Backup
Requires-Python: >=3.11
Requires-Dist: keyring
Requires-Dist: keyrings-alt
Requires-Dist: pycron
Requires-Dist: pycryptodome
Requires-Dist: pyyaml
Requires-Dist: rich
Requires-Dist: typer
Provides-Extra: dev
Requires-Dist: hypothesis; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: shiv; extra == 'dev'
Provides-Extra: macos
Requires-Dist: launchd; extra == 'macos'
Requires-Dist: pync; extra == 'macos'
Description-Content-Type: text/markdown

# Timeless-Py ⏳

> Snapshot what matters, remember how to rebuild the rest.

Time Machine-style personal backup orchestrated by Python & uv.

## Overview

Timeless-Py is a modern backup solution designed for macOS, providing:

- Hourly, daily, weekly deduplicated snapshots of user data
- Re-install manifest generation for applications and system packages
- Engine-agnostic approach with Restic, Borg, and Kopia support
- Client-side encryption (AES-256) with keys stored in Keychain
- Simple 10-minute setup: `brew install timeless-py` → `timeless init --wizard`

## Features

- **Snapshot Management**: Create, browse, and restore backups with ease
- **Retention Policies**: Define flexible retention policies (hourly/daily/weekly/monthly/yearly)
- **Manifest Generation**: Auto-generate reinstall manifests for your Mac software
- **Built-in Security**: Fully encrypted snapshots with secure key management
- **FUSE Integration**: Mount snapshots as regular volumes for easy browsing
- **Exclude Patterns**: Specify patterns for files and directories to exclude from backups

### M1 Milestone Features

- **Restic Engine Integration**: Full integration with Restic for backup, restore, snapshot management, and repository operations
- **Retention Policy DSL**: Define custom retention policies in YAML to automatically manage snapshot retention
- **Exclude Patterns Support**: Exclude specific files or directories from backups using glob patterns
- **Comprehensive CLI Interface**: User-friendly command-line interface for all operations

## Installation

```bash
# Coming soon - once published
brew install timeless-py

# Initialize with wizard
timeless init --wizard
```

## Usage

```bash
# Create a backup
timeless backup

# Mount latest snapshot
timeless mount

# Restore a file or directory
timeless restore <snapshot> <path>

# List available snapshots
timeless snapshots

# Verify repository integrity
timeless check

# Reinstall software from manifests
timeless brew-replay
```

## Development

This project requires Python 3.11 or higher.

```bash
# Setup development environment
git clone https://github.com/rappdw/timeless.git
cd timeless
uv pip install -e ".[dev]"

# Run tests
pytest

# Run linting and type checks
ruff check .
black --check .
isort --check .
mypy --strict .
```

## License

This project is licensed under Apache-2.0. See LICENSE file for more details.
