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

hotcore

v1.1.4

Published

Redis-backed hierarchical entity storage with automatic attribute indexing and wildcard search. OpenClaw plugin for structured, queryable persistent storage.

Readme

hotcore

Redis-backed hierarchical entity storage for OpenClaw. Provides structured, queryable persistent storage with automatic attribute indexing — complementing OpenClaw's text-based memory system.

Features

  • Hierarchical entities — parent-child tree structure with traversal
  • Automatic attribute indexing — all entity attributes indexed for fast search
  • Wildcard search — glob patterns (*, ?, [abc]) with multi-criteria AND
  • Optimistic locking — safe concurrent updates via Redis WATCH/MULTI/EXEC
  • Cross-platform — pure TypeScript, runs on Windows/macOS/Linux

Install

openclaw plugins install hotcore

Configure

Add to ~/.openclaw/config.json:

{
  "plugins": {
    "entries": {
      "hotcore": {
        "enabled": true,
        "config": {
          "host": "localhost",
          "port": 6379
        }
      }
    }
  }
}

Configuration options

| Option | Type | Default | Description | |--------|------|---------|-------------| | host | string | required | Redis server hostname | | port | number | 6379 | Redis server port | | db | number | 0 | Redis database number | | password | string | — | Redis password | | tls | boolean | false | Enable TLS/SSL | | nonIndexableFields | string[] | see below | Fields stored but not indexed |

Default non-indexable fields: status_history, station_data, connector_data, raw_data, metadata, logs, events.

Tools

Once installed, the agent has access to these tools:

| Tool | Description | |------|-------------| | storage_create | Create an entity under a parent with attributes | | storage_get | Retrieve an entity by UUID | | storage_update | Update entity attributes (set to null to remove) | | storage_delete | Delete an entity | | storage_find | Search by attribute filters with wildcard support | | storage_children | List direct children of an entity | | storage_parent | Get the parent of an entity |

Example agent interactions

Agent: I'll store this project configuration.
→ storage_create { parent_uuid: "root", attributes: { type: "project", name: "Hotcore", status: "active" } }

Agent: Let me find all active projects.
→ storage_find { criteria: { type: "project", status: "active" } }

Agent: Let me find all entities with names starting with "Hot".
→ storage_find { criteria: { name: "Hot*" } }

Prerequisites

A running Redis (or ValKey) instance. Quick start:

docker run -d --name redis -p 6379:6379 redis:alpine

Standalone usage

The core client can be used without OpenClaw:

import { HotcoreClient } from "hotcore/src/client.js";

const client = new HotcoreClient({ host: "localhost" });

const entity = client.init({ type: "user", name: "Alice", role: "admin" });
await client.create("root", entity);

const users = await client.find({ type: "user", role: "admin" });

Development

npm install
npm test           # run unit tests (ioredis-mock, no Redis needed)
npm run test:watch # watch mode
npm run build      # compile TypeScript

Related

  • hotcore — the original Python implementation

License

Apache 2.0