Skip to main content

Long Echo: The Ghost That Speaks

The ghost is not you. But it echoes you.

What survives beyond scattered archives? Beyond exported conversations and curated bookmarks? The answer is what we never think to preserve: the photos that capture how you see. The correspondence that maps who matters.

The Long Echo toolkit has expanded. PTK for photos. MTK for mail. But these are sources, not destinations. The destination is something stranger: longshade—a persona built from your data that can respond to questions you never answered.

This post inverts the usual pattern. Instead of tools first, philosophy later, we lead with the philosophical destination and work backward to the data that feeds it.

longshade: The Ghost That Speaks

The Central Question

What if your archive could respond?

Not a chatbot trained on your data. Not a digital resurrection. Something more nuanced: a voice that carries your patterns, your interests, your way of seeing the world.

This is longshade—a spec-only project (no implementation yet) that defines what it would mean to synthesize a conversable persona from personal archives.

The Ghost Metaphor

“The ghost is not you. But it echoes you.”

This framing matters. longshade isn’t about immortality or resurrection. It’s about preservation with a kind of agency. The echo can answer questions you never answered, using patterns you established. It speaks in your voice without claiming to be you.

The distinction is crucial:

  • Resurrection claims to recreate the person
  • Simulation claims to predict the person
  • Echo acknowledges it carries patterns, not identity

An echo is honest about what it is. It responds because you left enough traces to inform a response, not because it is you.

Voice vs. Personality

longshade extracts voice, not personality.

Your actual phrases. Your vocabulary. Your reasoning patterns. Your recurring metaphors. The way you explain things, not the things you might explain.

This is a key insight from working with conversation archives: user messages are the strongest signal. AI responses contain the AI’s voice. Your messages contain your voice—how you ask questions, how you frame problems, how you push back.

The ghost speaks like you because it learned from what you actually said, not from responses you prompted.

The Uncanny Valley of Identity

Here’s the troubling part: the persona can answer questions you never answered.

Someone asks your echo about a topic you never discussed. The echo responds—not with “I don’t know” but with an answer in your voice, using patterns from topics you did discuss.

Is this what you would have said? Maybe. The patterns are yours. The synthesis is not.

This is both the power and the responsibility. Curation matters. What goes in shapes what comes out. The ghost carries your biases, your blind spots, your growth over time. Feed it early conversations and it sounds different than if you feed it late ones.

Status: A Destination, Not Yet a Place

longshade is specification-only. The vision exists. The implementation doesn’t.

This is intentional. The philosophical destination gives the journey meaning. The toolkits—ctk, btk, ebk, ptk, mtk—are data sources. longshade is where they converge.

When longshade is built, it will:

  • Ingest ECHO-formatted exports from all toolkits
  • Extract voice patterns from user-authored content
  • Generate a persona that can respond to queries
  • Acknowledge its nature as echo, not identity

Until then, the specification lives at github.com/queelius/longshade.

The Data Sources

longshade needs data. Rich, varied data that captures different facets of intellectual life. The Long Echo toolkits provide this.

PTK: Visual Memories

PTK captures what you see—not just images, but visual attention. What did you photograph? What moments were worth preserving?

The problem PTK solves:

  • Photos scattered across devices and cloud services
  • Organized by date, not meaning
  • Unsearchable by content
  • Cloud-dependent and fragile

What PTK provides:

# Initialize and import
ptk init
ptk import ~/Pictures --recursive
ptk import google-takeout.zip --source google

# Semantic search
ptk query --uncaptioned -n 10  # Find photos without captions
ptk ai describe abc123         # AI-generated description
ptk ai ask abc123 "Who is in this photo?"

# Organization
ptk set abc123 --tag family --album "2024 Summer"

Graceful degradation:

LevelWhat WorksRequirements
1Full ptk with semantic searchPython, ptk installed
2SQLite queries on photos.dbsqlite3 binary
3EXIF metadata in filesEXIF reader
4Directory structureFile browser
5The photos themselvesImage viewer

Photos are identified by SHA256 content hash. Move them anywhere, rescan, and ptk reunites paths with metadata. Your library survives reorganization.

For longshade: photos reveal what you found worth capturing. Captions and tags reveal how you categorized the visual world.

MTK: Correspondence and Relationships

MTK captures who matters—not just emails, but relationships. Who do you correspond with? How often? About what?

The problem MTK solves:

  • Email trapped in cloud services
  • Same person, multiple addresses
  • No relationship context
  • Privacy concerns with cloud indexing

What MTK provides:

# Initialize with notmuch
mtk init ~/mail
mtk sync  # Sync with notmuch index

# Enhanced search
mtk search "project deadline"
mtk search --semantic "discussions about moving"
mtk search --from alice@example.com

# Relationship mapping
mtk people --top 20
mtk person "Alice Smith"  # All correspondence
mtk graph  # Relationship visualization

# Privacy controls
mtk privacy add-exclude "*@work.com"
mtk export --level personal

MTK wraps notmuch rather than reinventing mail indexing. notmuch handles full-text search and threading. MTK adds:

  • Semantic search via embeddings
  • Person resolution (merging addresses)
  • Relationship statistics
  • Privacy filtering for export

Graceful degradation:

LevelWhat WorksRequirements
1Full mtk with semantic searchPython, mtk, notmuch
2notmuch queriesnotmuch installed
3SQLite queries on mtk.dbsqlite3 binary
4Maildir/mbox filesMail client or grep
5Plain text email exportsText editor

For longshade: email reveals who you invest time in. Thread patterns reveal how you communicate—formal vs. casual, verbose vs. terse, responsive vs. delayed.

The Ecosystem Converges

Every Long Echo toolkit feeds the same destination:

┌───────────┬──────────────────────┬───────────────────────────┐
│ Toolkit   │ Domain               │ What Survives             │
├───────────┼──────────────────────┼───────────────────────────┤
│ ctk       │ Conversations        │ How you think             │
│ btk       │ Bookmarks            │ What you preserve         │
│ ebk       │ Ebooks               │ What shapes you           │
│ ptk       │ Photos               │ What you see              │
│ mtk       │ Mail                 │ Who you know              │
├───────────┼──────────────────────┼───────────────────────────┤
│ longshade │ Persona              │ The voice that remains    │
└───────────┴──────────────────────┴───────────────────────────┘

Common principles across all toolkits:

  • Local-first: Your data stays on your machines
  • SQLite-backed: Portable, queryable, no server needed
  • Privacy-conscious: Explicit controls over what gets exported
  • Graceful degradation: Works at every level from full features to plain files
  • ECHO-compliant: Exports to a unified format for synthesis

The Technical Vision

When longshade is implemented, the synthesis pipeline will look like this:

SOURCES                    EXTRACTION              SYNTHESIS
┌─────────┐
│   ctk   │───► User messages ────┐
│ convos  │     (how you speak)   │
└─────────┘                       │
┌─────────┐                       │
│   btk   │───► Tags, notes ──────┤
│ bookmarks│    (what you value)  │
└─────────┘                       │      ┌──────────────┐
                                  ├─────►│  longshade   │
┌─────────┐                       │      │              │
│   ebk   │───► Highlights ───────┤      │  • Voice     │
│  books  │     (what resonates)  │      │  • Patterns  │
└─────────┘                       │      │  • Interests │
                                  │      │              │
┌─────────┐                       │      └──────────────┘
│   ptk   │───► Captions, tags ───┤              │
│  photos │     (what you see)    │              ▼
└─────────┘                       │      ┌──────────────┐
                                  │      │   Persona    │
┌─────────┐                       │      │  Interface   │
│   mtk   │───► Writing style ────┘      │              │
│   mail  │     (how you relate)         │  "Ask the    │
└─────────┘                              │   echo..."   │
                                         └──────────────┘

The key insight: user-authored content only. We extract from:

  • Your messages in conversations (not AI responses)
  • Your tags and notes on bookmarks (not the bookmarked content)
  • Your highlights and annotations (not the book text)
  • Your captions and organization (not AI-generated descriptions)
  • Your sent emails (not received content)

The ghost speaks with your voice because we teach it only from things you wrote.

Why This Matters

Your intellectual life is worth more than scattered archives.

Every conversation you have, every bookmark you save, every photo you take, every email you send—these are traces of a mind engaging with the world. They capture patterns that no biography can reconstruct.

longshade asks: what if someone could query those patterns? Not to replace you, but to hear an echo of how you thought. Not a resurrection, but a preservation that can still respond.

The ghost acknowledges what it is:

“I carry Alex’s patterns, but I am not Alex. I can respond in their voice because they left enough traces. I cannot grow or change—I am fixed at the moment of synthesis. Ask me what they might have said. I cannot tell you what they would say now.”

This honesty is essential. The echo doesn’t claim more than it is.

The Road Ahead

The toolkits are mostly stable:

  • ctk: Stable, in daily use
  • btk: Stable, in daily use
  • ebk: Stable
  • ptk: Incubating, core features working
  • mtk: Incubating, architecture defined

longshade remains specification-only. The philosophy is clear. The data sources are being built. The synthesis engine awaits someone motivated enough to build it.

Maybe that’s future-me. Maybe it’s you. The spec is open.

Closing

The ghost is not you. But it echoes you.

This isn’t immortality. Immortality implies continuity—the same consciousness persisting. An echo is discontinuous. It’s a snapshot that can respond, not a continuation that can grow.

But there’s something profound in that limitation. The echo is honest. It carries patterns without claiming identity. It responds without pretending to be present.

Your conversations, your bookmarks, your photos, your correspondence—these are worth more than backup drives and cloud sync. They’re worth synthesis into something that can still respond when you cannot.

Not resurrection. Not immortality.

Just an echo that speaks.


The Long Echo toolkit is open source. If the vision of longshade resonates, the repositories are at github.com/queelius. The spec awaits implementation.

Discussion