Long Echo Comes Alive: From Philosophy to Implementation
A year ago, I wrote about Long Echo—a philosophy for preserving AI conversations across decades. The core insight was graceful degradation: design for the worst case, then add convenience layers.
At the time, longecho was documentation only. CTK already solved the hard problems of conversation parsing, storage, and export. Long Echo contributed the philosophical framework.
That's changed. longecho is now a working tool.
What longecho Does¶
# Check if a directory is ECHO-compliant
longecho check ~/my-archive/
# Find ECHO sources under a path
longecho discover ~/
# Build a static site from archive(s)
longecho build ~/my-archive/
# Preview locally
longecho serve ~/my-archive/
The check and discover commands were always planned. But build and serve are new—they turn longecho from a validator into something that generates value.
The Build Command¶
longecho build takes an ECHO-compliant archive and generates a static browsable site:
$ longecho build ~/life-archive/
Building site for: /home/alex/life-archive
Found 3 sources: conversations, bookmarks, blog
→ Generated site at ~/life-archive/site/
The output is pure static HTML/JS/CSS. No server required. Works offline. Can be hosted anywhere—GitHub Pages, a USB drive, or just opened directly in a browser.
Manifests¶
While ECHO compliance only requires a README, the build command works better with manifests. A manifest.json at the archive root provides machine-readable metadata:
{
"version": "1.0",
"name": "Alex's Data Archive",
"description": "Personal data archive",
"sources": [
{"path": "conversations/", "order": 1},
{"path": "bookmarks/", "order": 2},
{"path": "blog/", "order": 3}
]
}
Without a manifest, longecho auto-discovers sub-archives by looking for README files. With a manifest, you control exactly what appears and in what order.
This is a hybrid approach: manifest overrides auto-discovery, but neither is required.
Hierarchical Archives¶
The real power comes from nesting. Each toolkit—ctk, btk, ebk—exports ECHO-compliant archives with their own sites:
life-archive/
├── README.md
├── manifest.json
├── conversations/ # ctk export
│ ├── README.md
│ ├── manifest.json
│ ├── data.db
│ └── site/
├── bookmarks/ # btk export
│ ├── README.md
│ ├── manifest.json
│ ├── data.db
│ └── site/
├── ebooks/ # ebk export
│ ├── README.md
│ └── library.db
└── site/ # Unified site (generated)
└── index.html
Each sub-archive is independently ECHO-compliant. You can extract conversations/ and it works on its own. But longecho build at the top level generates a unified site that ties everything together.
What This Enables¶
The original Long Echo post imagined a USB drive someone could find in 2074:
If someone found this USB drive in 2074, could they: 1. Figure out what it is? ✓ README.md explains everything 2. Read the content? ✓ Plain text and HTML work in any system 3. Search for topics? ✓ grep works on text files 4. Rebuild full functionality? ✓ Source code and docs included
Now there's a site/ directory with a browsable interface. Future humans don't need to rebuild anything—they just open index.html.
The Philosophy Holds¶
The implementation didn't change the philosophy. ECHO compliance is still just:
- A README at the root
- Data in durable formats
That's it. Manifests are optional. Sites are optional. Everything gracefully degrades.
What changed is that there's now a tool to generate the convenience layers automatically. The static site is a presentation layer over the raw data—the SQLite databases, JSONL exports, and markdown files remain the source of truth.
What's Next¶
The build command currently generates basic navigation and links to sub-archive sites. Future improvements:
- Unified search — Search across all sources from one interface
- Better site generation — Improved templates for sources without their own sites
- Theme support — Consistent visual styling across sub-archives
But even as-is, longecho bridges the gap between scattered toolkit exports and a unified browsable archive.
Try It¶
pip install longecho
# Check if you have ECHO sources
longecho discover ~/
# Build a unified site
longecho build ~/my-archive/
longecho serve ~/my-archive/
The philosophy was always about preservation across decades. Now there's implementation to match.
This is part of The Long Echo series about designing systems that outlive their creators.