claude-launchpad 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -72,7 +72,7 @@ Init generates all three. Doctor checks for them. `--fix` creates any that are m
72
72
  | `claude-launchpad init` | Detect stack, generate config + hooks + permissions | Locally, free |
73
73
  | `claude-launchpad doctor --fix` | Auto-fix issues found by doctor | Locally, free |
74
74
  | `claude-launchpad eval` | Run Claude against test scenarios, score results | Via Claude CLI |
75
- | `claude-launchpad memory` | Optional persistent memory system | Locally |
75
+ | `claude-launchpad memory` | Optional knowledge base that persists across sessions | Locally |
76
76
  | `/lp-enhance` (skill) | Claude reads your code and completes CLAUDE.md | Inside Claude Code |
77
77
 
78
78
  ## Doctor
@@ -193,7 +193,7 @@ Results save to `.claude/eval/` as structured markdown. Feed them back to Claude
193
193
 
194
194
  ## Memory
195
195
 
196
- Optional persistent memory that replaces Claude Code's built-in flat-file system. Memories decay naturally, so stale knowledge fades and relevant context stays.
196
+ Claude maintains a personal knowledge base about your project. It learns what matters, forgets what doesn't, and gets smarter every session.
197
197
 
198
198
  ```bash
199
199
  claude-launchpad memory
@@ -201,14 +201,9 @@ claude-launchpad memory
201
201
 
202
202
  If memory is not installed, it runs interactive setup. If installed, it shows stats. Requires native deps first: `npm install better-sqlite3 sqlite-vec`.
203
203
 
204
- **What it does:**
205
- - **Smart session injection** loads the most relevant memories at session start
206
- - **Stop hook** extracts facts from the conversation when you finish
207
- - **Decay model** fades memories naturally (episodic: 30 days, semantic: 18 months, procedural: 2 years)
208
- - **Self-tuning retrieval** promotes memories Claude searches for, demotes ones injected but never used
209
- - **Project-scoped** with no cross-contamination between projects
210
- - **TUI dashboard** (`--dashboard`) with vim navigation, filtering, and search
211
- - **Cross-device sync** pushes and pulls memories between machines via private GitHub Gist
204
+ Every session, Claude loads what it needs to know and extracts new knowledge when you finish. Stale facts fade on their own. Knowledge Claude actually uses gets reinforced. Each project has its own isolated memory, and you can sync it across machines via private GitHub Gist.
205
+
206
+ Browse everything with `--dashboard` -- a terminal UI with vim navigation, filtering, and search.
212
207
 
213
208
  Data stays in `~/.agentic-memory/memory.db`. Sync requires the [GitHub CLI](https://cli.github.com/) (`gh`).
214
209
 
package/dist/cli.js CHANGED
@@ -2666,10 +2666,10 @@ function isMemoryInstalled() {
2666
2666
  }
2667
2667
  }
2668
2668
  function createMemoryCommand() {
2669
- const memory = new Command4("memory").description("Persistent memory system for Claude Code sessions").option("--dashboard", "Open the memory dashboard").action(async (opts) => {
2669
+ const memory = new Command4("memory").description("Knowledge base that Claude maintains across sessions").option("--dashboard", "Open the memory dashboard").action(async (opts) => {
2670
2670
  if (opts.dashboard) {
2671
2671
  if (!isMemoryInstalled()) {
2672
- log.error("Memory system is not installed. Run `claude-launchpad memory` first.");
2672
+ log.error("Knowledge base not set up yet. Run `claude-launchpad memory` first.");
2673
2673
  return;
2674
2674
  }
2675
2675
  const { requireMemoryDeps } = await import("./require-deps-NKRCPVAO.js");
@@ -2680,23 +2680,22 @@ function createMemoryCommand() {
2680
2680
  }
2681
2681
  if (!isMemoryInstalled()) {
2682
2682
  log.blank();
2683
- log.step("Agentic memory is not set up for this project.");
2683
+ log.step("Claude doesn't have a knowledge base for this project yet.");
2684
2684
  log.blank();
2685
- log.info("This will (skipping what's already in place):");
2686
- log.info(" - Set up SQLite database at ~/.agentic-memory/");
2687
- log.info(" - Add SessionStart + Stop hooks to .claude/settings.json");
2688
- log.info(" - Register the MCP server with Claude Code (global)");
2689
- log.info(" - Add memory guidance to CLAUDE.md");
2685
+ log.info("After setup, Claude will:");
2686
+ log.info(" - Remember decisions, gotchas, and learnings across sessions");
2687
+ log.info(" - Automatically recall relevant context when you start a session");
2688
+ log.info(" - Save important facts as you work, so nothing gets lost");
2690
2689
  log.blank();
2691
2690
  const proceed = await confirm2({
2692
- message: "Install agentic-memory?",
2691
+ message: "Set up knowledge base?",
2693
2692
  default: true
2694
2693
  });
2695
2694
  if (!proceed) {
2696
2695
  log.info("Skipped.");
2697
2696
  return;
2698
2697
  }
2699
- const { runInstall } = await import("./install-C5XDWATE.js");
2698
+ const { runInstall } = await import("./install-H6GW4P6K.js");
2700
2699
  await runInstall({});
2701
2700
  } else {
2702
2701
  const { requireMemoryDeps } = await import("./require-deps-NKRCPVAO.js");
@@ -2742,7 +2741,7 @@ function createMemoryCommand() {
2742
2741
  }
2743
2742
 
2744
2743
  // src/cli.ts
2745
- var program = new Command5().name("claude-launchpad").description("CLI toolkit that makes Claude Code setups measurably good").version("0.13.0", "-v, --version").action(async () => {
2744
+ var program = new Command5().name("claude-launchpad").description("CLI toolkit that makes Claude Code setups measurably good").version("0.13.1", "-v, --version").action(async () => {
2746
2745
  const hasConfig = await fileExists(join11(process.cwd(), "CLAUDE.md")) || await fileExists(join11(process.cwd(), ".claude", "settings.json"));
2747
2746
  if (hasConfig) {
2748
2747
  await program.commands.find((c) => c.name() === "doctor")?.parseAsync([], { from: "user" });