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

harness-memory

v0.2.3

Published

Project memory layer for coding harnesses

Readme

harness-memory

Project memory layer for coding harnesses.

It provides:

  • structured memory storage on local SQLite via sql.js
  • deterministic activation with bounded payload budgets
  • warning-only policy surfacing before tool use
  • stale/conflict-aware memory handling
  • local eval runners for baseline and memory-layer replay

Install

This package is intended for Node.js consumers.

Fastest start, no permanent install required:

npx harness-memory init

That creates a local SQLite database under .harness-memory/ and generates OpenCode command wrappers under .opencode/commands/.

From a local path:

npm install ../harness-memory

From a packed tarball:

npm pack
npm install ./harness-memory-<version>.tgz

GitHub repository:

https://github.com/smc2315/harness-memory

Import

import {
  ActivationEngine,
  MemoryRepository,
  OpenCodeAdapter,
  PolicyEngine,
  PolicyRuleRepository,
  openSqlJsDatabase,
} from "harness-memory";

Subpath imports are also available:

import { MemoryRepository } from "harness-memory/memory";
import { ActivationEngine } from "harness-memory/activation";
import { OpenCodeAdapter } from "harness-memory/adapters";
import { runMemoryEval } from "harness-memory/eval";

CLI

The installed package exposes a single bin:

harness-memory <command> [args]

Examples:

harness-memory init --db ./.harness-memory/memory.sqlite
harness-memory memory:add --db ./.harness-memory/memory.sqlite --type policy --scope "src/**/*.ts" --summary "Prefer explicit adapters" --details "Keep harness integration thin." --triggers before_model --status active
harness-memory dream:run --db ./.harness-memory/memory.sqlite --trigger manual --json
harness-memory dream:evidence:list --db ./.harness-memory/memory.sqlite --json
harness-memory dream:runs:list --db ./.harness-memory/memory.sqlite --json
harness-memory memory:review --db ./.harness-memory/memory.sqlite --json
harness-memory memory:promote --db ./.harness-memory/memory.sqlite --memory <candidate-id>
harness-memory memory:reject --db ./.harness-memory/memory.sqlite --memory <candidate-id> --reason "too noisy"
harness-memory memory:list --db ./.harness-memory/memory.sqlite --json
harness-memory policy:check --db ./.harness-memory/memory.sqlite --scope src/core/repo.ts --trigger before_tool --tool edit
harness-memory eval:baseline --output-dir ./artifacts/baseline
harness-memory eval:memory --output-dir ./artifacts/memory

OpenCode-friendly setup

init writes lightweight OpenCode command wrappers into .opencode/commands/.

After initialization, you can use project commands like:

  • /harness-memory-init
  • /harness-memory-dream
  • /harness-memory-why

These wrappers call the underlying npx harness-memory ... commands so you can stay inside OpenCode instead of remembering raw CLI syntax.

Notes

  • Bundled migration and eval input assets are resolved from inside the installed package.
  • Eval outputs default to the caller's current working directory under research/eval/output unless --output-dir is provided.
  • The package does not require the original repo layout once installed.
  • Runtime target: Node.js 18+
  • dream:run creates or refreshes candidate memories only. It does not auto-promote directly to active.
  • Manual review loop: dream:run -> memory:review -> memory:promote or memory:reject
  • Weak dream evidence is deferred or discarded with backoff instead of reprocessing forever.
  • Candidate review and history now include dream provenance links so operators can inspect why a candidate exists.