npm.io
0.34.0 • Published 2d ago

@loreai/pi

Licence
FSL-1.1-Apache-2.0
Version
0.34.0
Deps
2
Size
3.6 MB
Vulns
0
Weekly
331

@loreai/pi

Experimental — Under active development. APIs, storage format, and behavior may change.

Lore's memory engine as a Pi coding-agent extension. Three-tier storage, distillation, curation, gradient context management, and FTS5-backed recall — wired into Pi's extension hooks.

Install

Add to your ~/.pi/settings.json:

{
  "packages": [
    "npm:@loreai/pi@latest"
  ]
}

Then run pi install once. The extension auto-loads on every Pi session.

Local embeddings (optional)

By default, recall uses @huggingface/transformers with nomic-embed-text-v1.5 (768-dim INT8 quantized, ~137 MB) for on-device vector search — no API key required. The model is downloaded on first use and cached locally.

When installed via npm, local embeddings use the native onnxruntime-node backend, which may fail on some configurations (e.g. CUDA 13 on Linux/x64 — see microsoft/onnxruntime#26586). When local embeddings aren't available, recall has graceful fallbacks:

  1. Auto-fallback to a hosted provider — set VOYAGE_API_KEY or OPENAI_API_KEY in your env. The first embed() call detects the missing local provider and swaps over for the rest of the process. No config changes needed.

  2. Pin a hosted provider explicitly in .lore.json:

    { "search": { "embeddings": { "provider": "voyage" } } }

    (also supports "openai"; reads VOYAGE_API_KEY / OPENAI_API_KEY from env).

If none apply, recall transparently falls back to FTS-only search.

Local / self-hosted LLM providers

If you use a local LLM server (vllm, llama.cpp, ollama, etc.), set an environment variable so Lore's gateway knows where to forward requests:

export LORE_UPSTREAM_VLLM=http://localhost:8000
# or
export LORE_UPSTREAM_OLLAMA=http://localhost:11434

The URL should be the server root — do not include /v1 (the gateway appends API paths automatically). The naming convention is LORE_UPSTREAM_<PROVIDER> where <PROVIDER> is the uppercased Pi provider name with hyphens replaced by underscores:

Provider Env var
vllm LORE_UPSTREAM_VLLM
llamacpp LORE_UPSTREAM_LLAMACPP
ollama LORE_UPSTREAM_OLLAMA
lmstudio LORE_UPSTREAM_LMSTUDIO
tgi LORE_UPSTREAM_TGI
litellm LORE_UPSTREAM_LITELLM

Cloud providers (Anthropic, OpenAI, etc.) are routed automatically by model name and don't need this.

Companion packages

Lore ships as three packages sharing the same SQLite database at ~/.local/share/lore/lore.db:

Switching between OpenCode and Pi on the same project preserves the curated knowledge, distillations, and AGENTS.md sync.

Documentation

Full architecture, benchmarks, configuration, and rationale: github.com/BYK/loreai

License

FSL-1.1-Apache-2.0 — see LICENSE.

Keywords