ember

Watch a memory catch fire.

wet pavement
distant thunder
screen doors
gold light
sticky skin
fireflies
bbq smoke
kool-aid
warm humidity
cicadas
cut grass
popsicle drip
Meaning
Senses
Feeling
Time
Place

ember

Memory is not search.

Every AI memory system today is search. User asks, system retrieves. Ember is the opposite — memory that happens to you. No intent required. Scattered signals converge across dimensions until a dormant memory catches fire.

You just watched it happen. Fragments drifted. Dimensions fired. A memory assembled itself from convergent signals — the same way your brain works when a smell takes you back twenty years.

How It Works

Seven dimensions of ignition

Semantic

What is this about? 384-dimensional embeddings capture meaning, not just keywords.

Emotional

How does it feel? Valence (grief to joy) and arousal (calm to intense) scored against memory baselines.

Sensory

What senses are invoked? Visual, auditory, olfactory, tactile, gustatory markers matched across modalities.

Relational

Who is involved? People mentioned or implied, trust levels, relationship context.

Temporal

When does this point? Time of day, season, era markers — childhood, college, present.

Spatial

Where does this point? Location names, location types — beach, kitchen, city, neighborhood.

Convergence

A single keyword never triggers recall. Real memory ignition requires convergence across multiple dimensions — the way human memory actually works.

Philosophy

Four axioms

1

Memory is not search.

Search requires intent. Memory happens to you. Ember runs unbidden on every message — your agent doesn’t decide to remember. It just does.

2

Ignition requires compound heat.

A single keyword never triggers recall. Real memory ignition requires convergence across multiple dimensions — semantic, emotional, sensory, relational, temporal. Just like human memory.

3

Recall has temperature.

Embedding similarity is continuous. A faint echo feels different from a vivid flood. Your agent’s response modulates with match intensity — faint, warm, or vivid.

4

Impermanence is the point.

Warm memories go stale. They fade. They die. Ember doesn’t rescue memories from death — it lets them come back as ghosts. Partial, sensory, unbidden. Forgetting is what makes remembering mean something.

Getting Started

Ten lines. Zero infrastructure.

SQLite + local embeddings. No database server. No API keys. Just pip install ember-experiences

from ember import Ember

ember = Ember()  # SQLite + MiniLM — zero config

ember.index(
    "Summers in Philadelphia, running until the street lights come on...",
    emotions=["nostalgic", "warm", "alive"],
    sensory={"visual": ["fireflies"], "olfactory": ["bbq smoke"]},
    location="Levittown, PA",
    season="summer",
    era="childhood",
)

# On every message — check for ignition
result = ember.check("lightning bugs on the porch, someone grilling...")
# → IgnitionResult(fired=True, intensity="warm", dimensions_fired=5)

Experience Gallery

Felt truth, encoded.

Experience packs are authored collections of memory constellations. Not code — data. Lived moments encoded as multi-dimensional fingerprints. Someone's felt truth that enriches your agent's palette.

The Temporal Stack

Ember is the first of three.

A complete AI agent relationship requires three dimensions of time. Ember solves the past — multi-dimensional memory that ignites when the present resonates with it. Two more open-source packages are in development: Context Mesh (identity continuity — your agent stays itself across every conversation) and Anticipation (forward temporal awareness — your agent carries the future the way a person does). Together they form the Temporal Stack. Follow the project on GitHub to stay current.

Ember

Past — Memory Ignition

Live

Context Mesh

Present — Identity Continuity

In Development

Anticipation

Future — Temporal Awareness

In Development

Give your agent a past.

“Timeless is not as beautiful as impermanent.”