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

@azrtydxb/novamem-init

v1.2.1

Published

Interactive installer that signs in to a novamem server, mints a bearer, and wires every supported AI agent host (Claude Code, Cursor, Codex, OpenCode, Cline, Continue, Kilo Code, RooCode, Claude Desktop, …) to use it

Readme

@azrtydxb/novamem-init

Interactive installer that wires every supported AI agent host on your machine to a novamem server in one command.

npx @azrtydxb/novamem-init

It will:

  1. Ask for the novamem server URL (default http://localhost:7778)
  2. Ask for your dashboard email + password
  3. Sign in via Better Auth, mint a fresh nm_… bearer (auto-labelled novamem-init@<hostname>)
  4. Detect installed AI tools and show a multi-select (detected ones pre-checked)
  5. For each chosen tool, write:
    • the skill bundle (<host>/skills/novamem/) — every tool gets this
    • an MCP server entry (SSE for modern hosts) — into the host's config file, JSON-merged so existing servers aren't clobbered
    • slash commands (where applicable) — re-rendered into the host's expected format

The session cookie and password are discarded immediately; only the minted bearer ends up on disk.

Supported tools

30 hosts taken from the agentskills.io ecosystem (mirrors OpenSpec's inventory):

Full support (skill + MCP + slash commands): Claude Code · Claude Desktop · Cursor · Kilo Code · OpenCode · GitHub Copilot · Gemini CLI · OpenAI Codex CLI

Skill + slash commands: RooCode · Cline · Continue · Factory Droid · Windsurf · Amazon Q Developer

Skill-only (the rest of the OpenSpec list): Antigravity · Auggie · Bob · CodeBuddy · CoStrict · Crush · ForgeCode · iFlow · Junie · Kimi CLI · Kiro · Lingma · Pi · Qoder · Qwen Code · Trae

Flags

For non-interactive use (CI, automation):

novamem-init \
  --base-url http://localhost:7778 \
  --token nm_... \
  --tools claude-code,cursor,codex \
  --yes

| Flag | Env | Purpose | |---|---|---| | --base-url <url> | NOVAMEM_BASE_URL | Server URL — skip the prompt | | --email <email> | — | Dashboard email — skip the prompt | | --password <pwd> | NOVAMEM_PASSWORD | Dashboard password — skip the prompt | | --token <nm_…> | NOVAMEM_TOKEN | Use an existing bearer; skip sign-in entirely | | --tools <ids> | — | Comma-separated tool ids (claude-code,cursor,…) | | --all | — | Configure every tool in the registry | | -y, --yes | — | Non-interactive mode (auto-confirm + use detected tools) | | --dry-run | — | Print what would happen; write nothing |

Idempotency

Re-running the installer is safe — every config write is a JSON/TOML merge that preserves existing keys. If your novamem entry already matches what we'd write, the file is left alone.

What gets written where

| Tool | MCP config | Skills | Commands | |---|---|---|---| | Claude Code | <cwd>/.mcp.json | <cwd>/.claude/skills/novamem/ | <cwd>/.claude/commands/ | | Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | ~/.claude/skills/novamem/ | — | | Cursor | <cwd>/.cursor/mcp.json | <cwd>/.cursor/skills/novamem/ | <cwd>/.cursor/commands/ | | Kilo Code | <cwd>/.kilocode/mcp.json | <cwd>/.kilocode/skills/novamem/ | <cwd>/.kilocode/workflows/ | | OpenCode | <cwd>/.opencode/opencode.json | <cwd>/.opencode/skills/novamem/ | <cwd>/.opencode/commands/ | | Codex CLI | ~/.codex/config.toml (TOML, [mcp_servers.novamem]) | ~/.codex/skills/novamem/ | ~/.codex/prompts/memory-*.md | | Gemini CLI | ~/.gemini/settings.json | ~/.gemini/skills/novamem/ | ~/.gemini/commands/*.toml | | GitHub Copilot | <cwd>/.mcp.json | <cwd>/.github/skills/novamem/ | <cwd>/.github/prompts/*.prompt.md | | Continue | — | <cwd>/.continue/skills/novamem/ | <cwd>/.continue/prompts/*.prompt | | Cline | — | <cwd>/.cline/skills/novamem/ | <cwd>/.clinerules/workflows/ | | RooCode | — | <cwd>/.roo/skills/novamem/ | <cwd>/.roo/commands/ | | Factory | — | <cwd>/.factory/skills/novamem/ | <cwd>/.factory/commands/ | | Windsurf | — | <cwd>/.windsurf/skills/novamem/ | <cwd>/.windsurf/workflows/ | | Amazon Q | — | <cwd>/.amazonq/skills/novamem/ | <cwd>/.amazonq/prompts/memory-*.md | | Skill-only hosts | — | <cwd>/<base>/skills/novamem/ | — |

What it does NOT do

  • It doesn't manage the server — install it separately (docker compose up -d, k3s, etc.)
  • It doesn't install tools you don't already have — it only configures hosts whose convention dirs exist (or are forced via --all)
  • It doesn't manage your bearer's lifecycle — revoke from the dashboard's API Tokens page when done

See also