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

getmnemo-anthropic

v0.2.0

Published

Mnemo helper for the Anthropic SDK — memory tool, prompt caching, and extended thinking wired together.

Readme

getmnemo-anthropic

Mnemo helper for the Anthropic SDK. Wraps messages.create with a single memory tool (search + add), prompt caching on the system block, and optional extended thinking — the recommended setup for any long-lived Claude assistant.

Install

npm install getmnemo-anthropic @anthropic-ai/sdk

getmnemo (the core SDK) is pulled in automatically as a dependency. You only need @anthropic-ai/sdk because you construct the Anthropic client yourself and pass it in.

Get your Mnemo API key and workspace ID from app.mnemohq.com/settings/api-keys.

Quickstart (30 seconds)

import Anthropic from "@anthropic-ai/sdk";
import { Mnemo } from "getmnemo";
import { withMemoryTool } from "getmnemo-anthropic";

const claude = new Anthropic();
const memory = new Mnemo({
  apiKey: process.env.GETMNEMO_API_KEY!,
  workspaceId: process.env.GETMNEMO_WORKSPACE_ID!,
});

const agent = withMemoryTool({
  client: claude,
  getmnemo: memory,
  model: "claude-sonnet-4-6",
  thinkingBudgetTokens: 4000,
});

const result = await agent.run({
  system: "You are a personal assistant. Use memory before answering.",
  messages: [{ role: "user", content: "What did I tell you about my schedule?" }],
  metadata: { userId: "user-42" },
});

console.log(result.text);
console.log("memory tool calls:", result.memoryToolCalls);

What the wrapper does

  • Exposes one tool memory with action: "search" | "add" — the model decides when to recall and when to remember.
  • Runs the tool-use loop for you (default cap: 6 iterations).
  • Adds cache_control: { type: "ephemeral" } to the system prompt so long stable instructions hit the prompt cache.
  • Optionally enables extended thinking with a configurable token budget.
  • Returns the final transcript so you can persist it elsewhere.

API

withMemoryTool(options) returns a wrapper with a single run(input) method.

withMemoryTool(options)

| Option | Type | Default | Description | | --- | --- | --- | --- | | client | Anthropic | — | An @anthropic-ai/sdk client (anything with messages.create). | | getmnemo | Mnemo | — | A Mnemo instance from getmnemo. | | model | string | "claude-sonnet-4-6" | Default model; override per call. | | maxTokens | number | 1024 | Default max_tokens; override per call. | | searchLimit | number | 5 | Default top-k for memory search (clamped to 1–50). | | cacheSystem | boolean | true | Wrap the system prompt with cache_control: { type: "ephemeral" }. | | thinkingBudgetTokens | number | — | Enable extended thinking with this token budget. | | metadata | Record<string, unknown> | {} | Static metadata merged into every persisted memory. | | maxIterations | number | 6 | Hard cap on tool-use loop iterations. |

run(input)

| Field | Type | Description | | --- | --- | --- | | messages | ChatMessage[] | Conversation so far (required). | | system | string | Optional system prompt. | | model | string | Per-call model override. | | maxTokens | number | Per-call max_tokens override. | | metadata | Record<string, unknown> | Per-call metadata merged into persisted memories. |

Returns:

| Field | Type | Description | | --- | --- | --- | | text | string | Final assistant text, concatenated across blocks. | | responses | MessagesCreateResult[] | Every raw API response from the tool-use loop. | | memoryToolCalls | number | How many times the memory tool ran. | | messages | ChatMessage[] | Final messages array after the loop — store this as your transcript. |

The package also exports MEMORY_TOOL_NAME (the literal tool name, "memory") and the WithMemoryTool* / WithMemoryRun* types.

Links

License

MIT