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

nanomind-ai

v1.0.8

Published

AI research co-pilot for nanoscience and materials chemistry

Readme

NanoMind

AI research co-pilot for nanoscience and materials chemistry. Upload papers, ask questions grounded in the literature, visualise spectra, and automatically log experimental findings.

Screenshots

Chat with RAG Agent mode Spectra visualiser Experiment notebook Experiment notebook

Features

  • RAG chat — upload PDF/TXT papers and ask questions anchored to retrieved context (BAAI/bge-base-en-v1.5 embeddings via HuggingFace + pgvector)
  • Multi-material context — select one or more materials from a searchable topbar dropdown; context from all selected materials is injected into every response
  • Live data mode — LangChain agent with Materials Project tools (crystal structure, properties) and HuggingFace QA
  • Spectra visualiser — drop XY/CSV/TXT spectral data; AI annotates peaks in real time
  • Experiment notebook — findings auto-extracted from every chat response and logged to a searchable, filterable table with CSV export
  • Session persistence — conversations survive page refresh; full session history in the sidebar

Stack

| Layer | Technology | |---|---| | Framework | Next.js 16.2 (App Router, Turbopack) | | UI | React 19, Tailwind v4, Recharts v3 | | Database | Supabase (Postgres + pgvector) | | LLM (chat) | Anthropic claude-sonnet-4-6 | | LLM (extraction) | Anthropic claude-haiku-4-5 | | Embeddings | HuggingFace BAAI/bge-base-en-v1.5 (768-dim) | | Agent | LangChain 0.3 + @langchain/anthropic | | Auth | Supabase anon key (RLS enabled) |

Quick start

npx nanomind-ai
# or if that doesn't work:
npx nanomind-ai@latest

The CLI walks you through entering your API keys, provisions your Supabase database, and launches the app in your browser. Setup takes about 2 minutes.

What you'll need

| Credential | Where to get it | |---|---| | Supabase URL + keys | supabase.com → Settings → API | | Supabase Database URL | Settings → Database → Connection string (URI mode) | | Anthropic API key | console.anthropic.com | | HuggingFace token (optional) | huggingface.co/settings/tokens — enable "Make calls to Inference Providers" | | Materials Project key (optional) | materialsproject.org → API keys |

Developer setup

git clone https://github.com/irishmango/nanomind
cd nanomind
cp .env.example .env.local   # fill in your keys
npm install
npm run setup                 # provisions your Supabase project
npm run dev

Open http://localhost:3000.

Environment variables

# Required
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
ANTHROPIC_API_KEY=sk-ant-...

# Required for npm run setup (Supabase → Settings → Database → URI)
DATABASE_URL=postgresql://postgres:[password]@db.[ref].supabase.co:5432/postgres

# Optional — enables document embeddings and Live data mode
HUGGINGFACE_API_KEY=hf_...
MATERIALS_PROJECT_API_KEY=...

Usage

  1. Select materials — use the topbar dropdown to search and select one or more material contexts; selected materials appear as dismissible chips
  2. Start a session — click New session in the sidebar
  3. Upload papers — go to the Documents tab, drop a PDF or TXT file; it is embedded and scoped to the current session
  4. Ask questions — answers are grounded in uploaded documents and selected material context
  5. Enable Live data — toggle Live data in the toolbar to activate the Materials Project + HuggingFace agent
  6. View spectra — go to the Spectra tab, drop an XY/CSV file, click Analyse
  7. Browse notebook — the Notebook tab shows all auto-logged findings; filter by technique or confidence and export CSV

Architecture

app/
  api/
    chat/              # Streaming Anthropic chat with RAG injection
    agent/             # LangChain AgentExecutor with MP + HF tools
    documents/upload/  # PDF parsing + HuggingFace embeddings
    spectra/analyze/   # Streaming peak annotation
    sessions/          # CRUD for chat sessions
    materials/         # Materials list + create
    notebook/          # Notebook entry CRUD
  page.tsx             # Session view: Chat · Spectra · Notebook · Documents tabs
  layout.tsx           # Root layout with env validation banner

components/
  MaterialSelector.tsx # Topbar multi-select dropdown with search and chips
  Sidebar.tsx          # Session history, new session button
  MessageList.tsx      # Chat thread with markdown, tool steps, source badges
  InputBar.tsx         # Auto-resize textarea, quick-query chips
  SpectraPanel.tsx     # Spectra drop zone + AI annotation
  SpectraChart.tsx     # Recharts ComposedChart with peak markers
  ConfirmModal.tsx     # Reusable deletion confirmation overlay
  WelcomeScreen.tsx    # Empty state shown before first session
  EnvWarningBanner.tsx # Missing env var warnings
  tabs/
    NotebookTab.tsx    # Session-scoped notebook with filters + CSV export
    DocumentsTab.tsx   # Session-scoped upload zone + document list

context/
  ChatContext.tsx      # Streaming chat state, agent mode, multi-material context

lib/
  chunker.ts           # RecursiveCharacterTextSplitter with section labels
  retriever.ts         # HuggingFace embed + pgvector similarity search
  agent.ts             # LangChain agent factory
  tools/               # MaterialsProject + HuggingFace tool definitions
  validateEnv.ts       # Startup env var validation
  prompts/             # Nanoscience system prompt