ChatArch: AI Conversation Archiver
ChatArch is a utility designed to migrate local AI chat histories to AWS S3, freeing up local disk space while preserving conversations in a human-readable, summarized, and searchable format.
Features
- Multi-Platform Support: Automatically discovers chats from Gemini CLI, Roo Code (Cline), and Aider.
- Smart Cleanup: Identifies and deletes "commit-only" chats (short messages used solely for git commits) before archiving.
- Markdown Conversion: Converts complex JSON chat schemas into clean, readable Markdown files within the archive.
- AI-Powered Summarization: Uses Gemini 2.5 Flash to generate 1-2 sentence summaries for every archived conversation.
- Safe Archival:
- Retention Policy: Only archives chats older than 20 days.
- Verification: Local files are only deleted after a successful S3 upload.
- Rate Limit Handling: Includes configurable delays and exponential backoff for API calls.
- Space Reporting: Reports the total disk space reclaimed at the end of each run.
Prerequisites
- Python & uv: Managed via
uv. - AWS CLI: Must be configured with credentials that have
s3:PutObjectpermissions. - 1Password CLI (
op): Used to securely retrieve the Gemini API key. - Google Gemini API Key: Stored in 1Password at
op://Private/GEMINI_API_KEY/credential.
Usage
Commands are managed via the Makefile for convenience.
1. Dry Run (Recommended)
Verify which files will be deleted or archived without actually performing any actions:
make dry-run
2. Actual Archive
Perform the cleanup and migration:
make archive
3. Using Limits
To test the full process on a small sample (e.g., 5 files):
make archive ARGS="--limit 5"
4. Maintenance
Run linting and auto-fixes:
make lint
Configuration
Settings like S3 bucket names, local search paths, and API delays are managed in config.yaml.
Logging
All detailed operations and API responses are logged to chatarch/archiver.log. Progress is displayed in the terminal via a status bar.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_chat_archiver-0.1.1.tar.gz.
File metadata
- Download URL: agent_chat_archiver-0.1.1.tar.gz
- Upload date:
- Size: 250.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd2f388bb062e2146a1a3a146304316e9e67fc7e1736d56b682f0165768d54cc
|
|
| MD5 |
96be576f87827b1192b457ced7ec82f3
|
|
| BLAKE2b-256 |
8c2b38c94352f43101c77fefa1742685e23b5fab9ae127231915236845f6e9ad
|
Provenance
The following attestation bundles were made for agent_chat_archiver-0.1.1.tar.gz:
Publisher:
publish.yml on InTEGr8or/chatarch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_chat_archiver-0.1.1.tar.gz -
Subject digest:
fd2f388bb062e2146a1a3a146304316e9e67fc7e1736d56b682f0165768d54cc - Sigstore transparency entry: 2643884823
- Sigstore integration time:
-
Permalink:
InTEGr8or/chatarch@f55a6d68a9e19b4b87c6cd354b0ccc1fc76915cc -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/InTEGr8or
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f55a6d68a9e19b4b87c6cd354b0ccc1fc76915cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file agent_chat_archiver-0.1.1-py3-none-any.whl.
File metadata
- Download URL: agent_chat_archiver-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c005c8795399ed2b00a665ed0e662ca74f2b0cde71faaa04d0ea41dfb8e8d7d
|
|
| MD5 |
45750a208f92f34f0e918be4b6493cab
|
|
| BLAKE2b-256 |
f67ab406b8129f557f17c29678c0e34d608f2d1bce04b63240b9babf0eb5bde9
|
Provenance
The following attestation bundles were made for agent_chat_archiver-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on InTEGr8or/chatarch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_chat_archiver-0.1.1-py3-none-any.whl -
Subject digest:
4c005c8795399ed2b00a665ed0e662ca74f2b0cde71faaa04d0ea41dfb8e8d7d - Sigstore transparency entry: 2643885006
- Sigstore integration time:
-
Permalink:
InTEGr8or/chatarch@f55a6d68a9e19b4b87c6cd354b0ccc1fc76915cc -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/InTEGr8or
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f55a6d68a9e19b4b87c6cd354b0ccc1fc76915cc -
Trigger Event:
push
-
Statement type: