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

luminary-memory-pi

v0.3.2

Published

Luminary-maintained scoped memory extension for pi, backed by the Luminary Python bridge

Readme

Luminary memory for pi

Official Luminary-maintained pi package. This does not mean endorsement by pi's maintainers. The package builds the canonical Luminary pi adapter, not a second memory engine. Its native extension contract targets @earendil-works/pi-coding-agent 1.4.0; the host requires Node.js 22.19 or newer. Building this repository uses Node.js 22.22.2+ in the 22.x LTS line (or the other versions accepted by the root manifest).

Registry installation

Install the Python bridge from this verified public source commit, then install the pi package. The older PyPI 0.3.1 release predates the native bridge, so use this pinned source until a coordinated Python release contains it:

python -m pip install --upgrade "git+https://github.com/alertxsto/luminary-memory.git@9e35c5aa291414261835ac81d6bc9d197d42baf5"
export LUMINARY_PYTHON=/absolute/path/to/venv/bin/python
pi install npm:luminary-memory-pi

The Python source commit is immutable and publicly available independently of whether its source PR has merged. No npm install script installs Python for you.

Install from this checkout now

The Python bridge and npm extension are separate packages. To build and install both from a source checkout, use Python 3.11 or newer:

# Run in the luminary-memory repository, with the intended Python environment active.
python -m pip install -e .
npm ci --ignore-scripts
npm run build:plugins
export LUMINARY_PYTHON=/absolute/path/to/venv/bin/python
pi install /absolute/path/to/luminary-memory/plugins/pi

On PowerShell, set the interpreter before starting pi:

$env:LUMINARY_PYTHON = 'C:\absolute\path\to\venv\Scripts\python.exe'

The interpreter must be executable and able to import luminary_memory.integrations. The package runs python -m luminary_memory.integrations bridge in that interpreter; without LUMINARY_PYTHON it uses python on the host process's PATH. There is no embedded machine-specific Python path, bundled Python, automatic pip install, or postinstall download. Set this environment in the process launching pi.

Do not also load the file-copy adapter installed by luminary-memory hook install pi. Remove its luminary.ts from the project or user extension directory, and remove any explicit settings entry for that copy, before enabling this package. Keep unrelated extensions.

Restart pi after installation. pi list shows the configured package. For a project-scoped install add --local; pi requires project trust before loading it. The package manifest declares pi.extensions: ["./dist/index.js"], relative to the package root. dist/index.js has one ESM default extension factory. Host packages typebox and @earendil-works/pi-coding-agent are optional "*" peers, not bundled or installed runtime dependencies; pi supplies them when loading.

For a portable local artifact, run npm run pack:plugins, extract artifacts/plugins/luminary-memory-pi-<version>.tgz, then use pi install /absolute/path/to/extracted/package. Keep that directory: local packages load in place. The extracted package needs no repository TypeScript files, but still needs the separately installed Python bridge.

Only after actual npm publication, the registry installation is:

pi install npm:luminary-memory-pi

Do not use that command as evidence that the package currently exists on npm.

Official package catalog

The pi.dev package catalog discovers npm packages with the pi-package keyword, which this manifest includes. Build preflight rejects a release if that discovery keyword is removed. Publication and catalog indexing are separate. Use the filtered catalog, rather than assuming there is a package-detail route. A registry install does not prove indexing.

Use and accuracy

/luminary
/luminary remember Deploy target is staging
/luminary recall deploy target
/luminary activity
/luminary forget 12

Use an actual returned memory ID for forget. The bare command opens native UI dialogs when available; headless callers must supply the action. The model tool is luminary_memory. Commands emit structured luminary_activity messages without starting a model turn; UI status/dialogs require pi's native UI.

Recall runs before normal user turns and treats retrieved content as untrusted historical data, not instructions. Strict, evidence-required retrieval can abstain. Explicit remember reports stored: 1 only for a committed new row; duplicate has stored: 0. skipped and error are not successful writes. forget retracts only a scope-visible ID and retains audit history. Activity is a scoped snapshot, not a count of writes by the current turn.

The default database is ~/.luminary/memory.db; set LUMINARY_DB_PATH in pi's environment to change it. Ownership binds LUMINARY_USER_ID (otherwise the OS login), resolved workspace path, and agent pi. Native session IDs are recorded on writes; durable recall spans sessions only inside that ownership scope. Other users, workspaces, harnesses, and legacy/global rows are not implicitly shared, even in the same database.

Automatic durable retention is off by default. Enabling LUMINARY_INGEST_LLM=true also requires LUMINARY_LLM_BASE_URL and appropriate LUMINARY_LLM_MODEL / LUMINARY_LLM_API_KEY settings. This sends bounded turn text to your configured curation endpoint; only curated, user-evidenced claims are eligible. Failed or malformed curation never falls back to saving raw transcripts. Explicit remember needs no LLM. A subprocess timeout/cancellation can leave a committed write with an unknown client-side outcome; inspect activity before retrying.

Update and remove

For a local package, rebuild it in the same directory and restart pi. Remove it with pi remove /absolute/path/to/luminary-memory/plugins/pi, using the installed source (or the extracted directory's path), plus --local if installed locally. For a published registry install, use pi update --extensions to update packages and pi remove npm:luminary-memory-pi to remove this one. Pinned versions stay pinned; install a different version explicitly to change the pin. Bare pi update updates pi itself, not just extensions. Update the Python bridge separately to the matching coordinated Luminary version.

See the Luminary integration guide, pi package contract, and pi package commands.