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

@lordierclaw/bluenote-core

v0.4.9

Published

Headless BlueNote core for local-first Markdown notes.

Readme

@lordierclaw/bluenote-core

Headless BlueNote core for local-first Markdown notes. This package owns storage, note business logic, search/indexing, configuration, domain helpers, and AI support code used by BlueNote clients.

Role in BlueNote

This repo owns:

  • note model and storage layout
  • plain Markdown note files plus sidecar metadata
  • search/index semantics
  • AI configuration, queue, provider, prompt, and description-generation services
  • schema 3 workspace identity and local sync state primitives
  • public core APIs consumed by distribution and client packages

It intentionally does not include terminal UI, browser UI, OpenTUI rendering, CLI presentation, editor integration, clipboard integration, distribution command routing, hosted auth/security, or daemon lifecycle UX.

Install

Most users should install the BlueNote app entrypoint and optional clients instead of installing core directly:

npm install -g @lordierclaw/bluenote
npm install -g @lordierclaw/bluenote-webui   # optional browser UI
npm install -g @lordierclaw/bluenote-term    # optional terminal UI
bluenote doctor

The distribution README is the canonical guide for full app install, uninstall, PATH setup, and optional client verification.

Install core directly only when building a client, distribution package, or library integration:

npm install @lordierclaw/bluenote-core

Local development

For sibling source checkout development, build/check core before clients or the distribution CLI:

cd ../bluenote-core
npm ci --include=dev
npm run check

Sibling packages should consume core through public package exports only:

import { createBlueNoteCore, createNote, searchNotes } from "@lordierclaw/bluenote-core"

Do not import src/*, dist/*, tests, or other private paths. Supported public entrypoints are the package root, ./search/contains-match, ./api/daemon-contract, and ./package.json.

Sync primitives

Core remains local-first: standalone remains the default runtime mode for new and existing managed roots. New workspaces initialize with schema 3 metadata, including a stable workspace identity and immutable note IDs stored in sidecar metadata under .data/notes/.

The package root exposes core sync APIs for clients and the distribution package:

const core = createBlueNoteCore({ rootPath })

core.sync.status()
core.sync.link({ mode: "seed-empty-server-from-local", serverUrl, workspaceId })
core.sync.now({ transport })
core.sync.repair()
core.sync.unlink()

These sync APIs are core primitives, not full hosted auth/security. They provide local runtime mode, dirty/tombstone/status repositories, whole-note client/server protocol helpers, in-process/HTTP transport adapters, structured redacted sync logs, and non-mutating repair dry-run reports. Daemon auth/TLS are out of scope for v1 core sync; a future gateway or distribution daemon plan owns authentication, TLS, users, and server lifecycle hardening.

The distribution CLI owns bluenote sync ... UX in a follow-up repo plan. Client packages should call the package-root APIs above rather than importing private sync modules directly.

Scripts

npm install
npm run typecheck
npm run build
npm test
npm run check

npm test rebuilds first, then runs the TypeScript test suite with Vitest so child-process tests do not use stale generated output. npm run check runs typecheck, tests, and package import smoke verification.

Packaging and versions

The package name is @lordierclaw/bluenote-core.

Maintainer release flow: publish a GitHub Release for the matching v* tag. The release workflow verifies the package first and only then publishes to npm.

When testing unpublished core changes before an npm release is available, app/client repositories can temporarily consume a pinned immutable Git commit that includes built output:

{
  "dependencies": {
    "@lordierclaw/bluenote-core": "git+https://github.com/LordierClaw/bluenote-core.git#<pinned-commit-sha>"
  }
}

For active local core development, temporarily consume a sibling checkout after building it:

{
  "dependencies": {
    "@lordierclaw/bluenote-core": "file:../bluenote-core"
  }
}

Release-like Git dependencies must be pinned to immutable commits or tags and include built output. Do not use moving branch dependencies such as #main for release-like installs.

Cross-platform notes

  • Runtime target: Node.js >=16.14 <17 || >=18.
  • Package tooling uses npm and TypeScript.
  • Core workflows are local-first and standalone by default; sync-client behavior is opt-in through caller-owned APIs and transport configuration.
  • Optional AI provider calls are explicit/queued by clients and should not block normal local note workflows.

Related packages

  • @lordierclaw/bluenote: official distribution CLI and top-level app command.
  • @lordierclaw/bluenote-webui: local browser UI client.
  • @lordierclaw/bluenote-term: terminal/TUI client.

Additional docs: