thedotmack/claude-mem · warning

claude-mem does not appear to be installed.

Error message

claude-mem does not appear to be installed.

What it means

runUninstallCommand first checks isPluginInstalled(). If the claude-mem plugin is not registered/installed, it warns that nothing appears installed but still offers, on a TTY, to clean up any leftover registration data anyway.

Solutions

  1. If it was genuinely never installed, answer 'no' to the cleanup prompt (or it's safe to decline) and finish.
  2. Answer 'yes' to the 'Clean up any remaining registration data anyway?' prompt to remove stale registration artifacts.
  3. If you expected it to be installed, check you're running as the same user/HOME used at install time, then reinstall first if desired.
Defensive patterns

Strategy: validation

Validate before calling

const pluginDir = path.join(process.env.USERPROFILE || process.env.HOME, '.claude', 'plugins');
console.log(fs.existsSync(pluginDir) ? 'plugin dir exists' : 'plugin not installed; uninstall will only offer cleanup');

Prevention

When it happens

Trigger: Running `npx claude-mem uninstall` when `isPluginInstalled()` returns false — plugin never installed, already uninstalled, or installed under a different user/home so registration files are missing.

Common situations: Double uninstall after a prior successful removal; running uninstall with a different HOME or sudo than install; manual deletion of the plugin directory leaving the user unsure about leftovers.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of thedotmack/claude-mem@d8bc9755e7 (2026-09-17). Data as JSON: /api/errors/b0eaac900f4e6337. Report an issue: GitHub.

Appendix: source

Thrown at src/npx-cli/commands/uninstall.ts:243

  const pluginDataDir = join(home, '.claude', 'plugins', 'data', 'claude-mem-thedotmack');
  if (existsSync(pluginDataDir)) {
    try {
      rmSync(pluginDataDir, { recursive: true, force: true });
      removedCount++;
    } catch (error: unknown) {
      console.warn(`[uninstall] Could not remove ${pluginDataDir}:`, error instanceof Error ? error.message : String(error));
    }
  }

  return removedCount;
}

export async function runUninstallCommand(): Promise<void> {
  p.intro(styleText(['bgRed', 'white'], ' claude-mem uninstall '));

  if (!isPluginInstalled()) {
    p.log.warn('claude-mem does not appear to be installed.');

    if (process.stdin.isTTY) {
      const shouldCleanup = await p.confirm({
        message: 'Clean up any remaining registration data anyway?',
        initialValue: false,
      });

      if (p.isCancel(shouldCleanup) || !shouldCleanup) {
        p.outro('Nothing to do.');
        return;
      }
    } else {
      p.outro('Nothing to do.');
      return;
    }
  } else if (process.stdin.isTTY) {
    const shouldContinue = await p.confirm({
      message: 'Are you sure you want to uninstall claude-mem?',

View on GitHub (pinned to d8bc9755e7)