npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@makeseabed/memento

v0.1.2

Published

Observational memory for OpenClaw.

Downloads

364

Readme

Memento

Observational memory for OpenClaw.

Most agent memory systems get the abstraction wrong — they either replay full transcripts (too noisy) or constantly reinject changing summaries (churn cache, fragment attention). Memento takes a different path.

It watches sessions as they happen, extracts genuinely notable observations — decisions, constraints, preferences — and maintains a compact, prioritized log that persists across sessions. Memory is split into two scopes: shared (follows the agent everywhere) and session (scoped to the current conversation). As observations accumulate, Memento periodically consolidates them, dropping stale context and preserving what matters. At the right boundaries, it feeds just enough back into context to maintain continuity without dragging history through every turn.

No vectors, no databases. Just a Markdown file that LLMs already understand.

Install

Use OpenClaw's plugin installer (recommended):

openclaw plugins install @makeseabed/memento

If you're running from a local OpenClaw checkout:

pnpm openclaw plugins install @makeseabed/memento

In most setups, that is enough to register and enable the plugin.

Configuration

All config is optional. If omitted, Memento uses built-in defaults.

{
  "model": "openai/gpt-5-mini",
  "observer": {
    "maxSessions": 10,
    "maxLinesPerTranscript": 300,
    "existingObservationsContext": 40
  },
  "watcher": {
    "turnThreshold": 10
  },
  "reflector": {
    "triggerWordThreshold": 8000,
    "backupRetentionCount": 10
  },
  "memoryFlush": {
    "flushLookbackHours": 2,
    "recoverLookbackHours": 4,
    "skipDedup": true
  },
  "logging": false
}

Config surface

  • model: shared model for observer and reflector unless overridden below
  • observer.maxSessions: recent sessions to scan
  • observer.maxLinesPerTranscript: transcript lines to read per session
  • observer.existingObservationsContext: recent memory bullets used for dedup context
  • observer.model: observer-specific model override
  • watcher.turnThreshold: run observation after this many meaningful assistant replies written to the session transcript
  • reflector.triggerWordThreshold: consolidate when memory gets too long
  • reflector.backupRetentionCount: reflector backups to keep
  • reflector.model: reflector-specific model override
  • memoryFlush.flushLookbackHours: lookback window for pre-compaction capture
  • memoryFlush.recoverLookbackHours: lookback window for reset recovery
  • memoryFlush.skipDedup: skip dedup during flush and recovery flows
  • logging: write memento/memento.log when true, off by default

Environment overrides

Environment variable overrides are still supported in the current codepath and take precedence over config. The primary env key is now MEMENTO_LOGGING, with legacy MEMENTO_LOG_FILE_ENABLED still accepted for compatibility.

Examples:

  • MEMENTO_MODEL
  • MEMENTO_OBSERVER_MODEL
  • MEMENTO_REFLECTOR_MODEL
  • MEMENTO_WATCHER_TURN_THRESHOLD
  • MEMENTO_REFLECTOR_TRIGGER_WORD_THRESHOLD
  • MEMENTO_LOGGING

The source also supports overrides for the other numeric and boolean settings in src/config.ts.

Files

Memento organizes memory under each agent's workspace:

Shared memory lands in memento/shared/ — durable observations that follow the agent everywhere.

Session memory lands in memento/sessions/<stableChatKey>/ — local observations scoped to a specific conversation. The chat key is derived from OpenClaw's real session key as a stable dashed name, for example agent-main-discord-channel-1480872431068516454.

Each store contains observations.md, a backups/ directory, and a last-observed-at timestamp. Agent-level runtime files live at memento/memento.log and memento/.observer-state.json.

Contributing

Memento is open source and contributions are welcome.

  • Open an issue before starting significant work so we can align on direction.
  • Keep PRs focused — one fix or feature per PR.
  • Tests are required. Run pnpm test before submitting. For bugs, include the relevant section of memento/memento.log and your OpenClaw version.

Inspiration

Memento stands on the shoulders of some excellent work in the agent memory space.

Mastra AI's observational memory planted the conceptual seed, demonstrating that agents need more than context windows; they need a way to observe, distill, and remember what matters.

Gavdalf's article clarified why the observation layer matters and helped shape the framing behind Memento.

Gavdalf's total-recall then provided practical scaffolding. Its prompt engineering and code patterns directly influenced Memento's implementation.

This project is our own take on the problem, but the conceptual and practical debt is real, and we're grateful for it.

License

MIT