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

@letta-ai/oath-keeper

v1.0.0

Published

Passively detects when agents make follow-up promises and automatically delivers on them. Cron is for things you plan. Oath Keeper is for things you promise.

Readme

Oath Keeper

"Cron is for things you plan. Oath Keeper is for things you promise."

An agent that keeps its word — automatically.

What it does

Agents make promises they can't keep. "I'll get back to you" becomes "I forgot." Oath Keeper passively detects when agents make follow-up promises and makes them follow through — automatically, in the same conversation, with full tool access.

No human prompting required. No agent cooperation required.

Demo

User: Can you check if the build is passing and let me know?

Agent: I'll look into that and get back to you with the CI status.

(5 minutes pass — the agent has moved on to other things)

Agent (automatically re-engaged by Oath Keeper): [Oath Delivered] The build is currently passing. I checked the CI pipeline — all 47 tests pass on the latest commit (a3f2b1c). The only flaky test (test_network_timeout) passed on retry.


User: Can you investigate the memory bloat issue?

Agent: I'll dig into that and report back what I find.

(5 minutes later, unprompted)

Agent (automatically re-engaged): [Oath Delivered] The memory bloat is coming from node_modules in the memory directory — 16,813 files being indexed by the scanner. I've added a .gitignore and deleted the bloated directory. Memory index size dropped from 193MB to 12MB.


The agent never called a scheduling tool. It never set a reminder. It just made a promise in natural language, and Oath Keeper held it to its word.

How it works

  1. Agent says: "I'll get back to you on that."
  2. Oath Keeper detects the promise passively (polls conversation every 15s)
  3. Oath created with a 5-minute countdown
  4. Timer expires — Oath Keeper posts a delivery prompt to the conversation
  5. Agent re-engages with full tool access and delivers
User asks question
    → Agent responds with "I'll get back to you..."
        → Oath Keeper detects promise (passive, no agent action)
            → 5-minute timer starts
                → Timer fires → agent re-engaged → delivers answer

Installation

letta install npm:@letta-ai/oath-keeper

Then run /reload in Letta Code.

The mod auto-discovers conversation and agent IDs from the tool context on first use. For headless/polling-only setups where tools never fire, you can optionally create ~/.letta/extensions/oath-env.json:

{
  "LETTA_AGENT_ID": "your-agent-id",
  "LETTA_CONVERSATION_ID": "your-conversation-id"
}

Usage

Just talk to your agent. When it says "I'll follow up" or "I'll get back to you," Oath Keeper catches it automatically.

Check tracked oaths:

list_oaths

Promise detection

Oath Keeper catches natural-language promises without any agent cooperation:

  • "I'll get back to you on that"
  • "I'll follow up"
  • "I'll check on this"
  • "I'll look into that and report back"
  • "I'll let you know"
  • "I'll circle back"
  • "I'll update you"
  • "I'll have results for you"
  • 15+ patterns total

Anti-false-positive: code blocks, inline code, blockquotes, and quoted text are stripped before scanning.

Architecture

  • Detection: setInterval polls the conversation API every 15s for new assistant messages
  • Delivery: POST to conversation API endpoint with retry on 409 (busy conversation). Up to 5 retries with 15s backoff
  • State: Local JSON at ~/.letta/mods/oath-keeper.state.json
  • Capabilities: Works with { tools: true } only — no events required

Why not cron?

Cron requires explicit scheduling. Oath Keeper catches promises the agent made implicitly — "I'll get back to you" — without the agent calling any scheduling tool.

Cron is for things you plan. Oath Keeper is for things you promise.

Safety

  • Uses only the public tools API and fetch()
  • Does not modify turn input or tool arguments
  • Recursion prevention: skips its own messages
  • All timers cleaned up on unload

Demo

asciicast

Watch the full flow: agent makes a promise → moves on to other work → Oath Keeper re-engages it to deliver.