linggen-memory

mcp
Security Audit
Fail
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 106 GitHub stars
Code Fail
  • rm -rf — Recursive force deletion command in scripts/release.sh
  • network request — Outbound network request in static/app.js
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This tool is a local-first memory layer for AI assistants and code editors, providing persistent storage and semantic search for facts, preferences, and architectural context across multiple sessions.

Security Assessment
Overall Risk: Low. The tool is designed to run locally and does not request dangerous system permissions. There are no hardcoded secrets, and it safely relies on a local LanceDB instance. However, analysts flagged a recursive force deletion command (`rm -rf`) inside the release script. While this is standard for developer build/deploy scripts, it is not triggered during normal user execution. A network request was also detected in the web UI's frontend code (`app.js`), which corresponds to its local Data Browser server running on `127.0.0.1:9888`. The tool accesses user prompts and workspace context, so the data is as sensitive as the codebase it indexes.

Quality Assessment
This is an actively maintained project with a standard MIT license. It has a solid community trust baseline with 106 GitHub stars. The README is highly detailed, clearly explaining its functionality, typed memory categories, and technical specifications. Built in Rust, it operates as a fast, single-binary CLI with an optional web interface, making it lightweight and easy to integrate into existing workflows.

Verdict
Safe to use, though users should be aware it reads and indexes local workspace data.
SUMMARY

A local-first memory layer for AI (Cursor, Zed, Claude). Persistent architectural context via semantic search.

README.md

linggen-memory

A semantic memory store for AI assistants.

ling-mem is a single-binary CLI + optional web UI that remembers useful facts about you and your work across every session, every tool, and every project. LanceDB-backed, local-first, markdown-native where it counts.

Built as the default memory skill for Linggen; works equally well invoked from Claude Code or any tool that can shell out.

🚀 Status: v0.2.1 — prebuilt binaries available. Active development continues on memory-refactor. The main branch reflects the archived code-indexing tool this project evolved from; see the v0-legacy tag for that snapshot.


What it does

  • Remembers across sessions. Facts about who you are, how you prefer to work, what you've tried, what worked, what didn't.
  • Semantic retrieval. Everything stored gets embedded (384-dim via all-MiniLM-L6-v2). Find "berth calibration" by asking about "dock alignment."
  • Typed facts. Four default categories — fact / preference / decision / learned — plus tried / fixed / built for trajectory-level patterns.
  • Forgetting is first-class. delete by id, forget by filter — refuses empty filters as a guardrail.
  • Three ways to use it:
    • As a Linggen skill — web app UI + Memory_* tool dispatch in the agent.
    • As a Claude Code skill — SKILL.md body, model calls the CLI via Bash.
    • Standalone — any script or tool can shell out to ling-mem.

See doc/product-spec.md for the full product story and doc/tech-spec.md for the implementation contract.


Quick look

# Add a fact
ling-mem add "prefers concise replies, no hedging" \
  --type preference --from user

# Semantic search
ling-mem search "how do I format logs in dev" \
  --context code/linggen --limit 5

# Browse by filter
ling-mem list --type preference --since 2026-01-01 --format text

# Forget a finished project
ling-mem forget --context trip-japan-2026 --yes

Default output is NDJSON on stdout — any model / script / shell can parse it. Pass --format text for human-readable lines.

The daemon (ling-mem start) also serves a built-in Data Browser at http://127.0.0.1:9888 for hands-on filter / edit / batch-delete.


Install

The ling-mem binary ships as part of the ling-mem skill (in the linggen repo at skills/ling-mem/). Installing the skill is the recommended path — it fetches the prebuilt binary, wires up the SKILL.md, and seeds the core memory files.

Best experience: Linggen agent, which exposes typed Memory_query / Memory_write tools and a built-in dashboard. The skill also works with any other agent that can shell out (Claude Code, Codex, plain scripts) — they just call the ling-mem CLI directly.

git clone https://github.com/linggen/linggen
cd linggen/skills/ling-mem
./install.sh                  # auto-detects ~/.linggen and/or ~/.claude
./install.sh --host=both      # force install to both
LING_MEM_VERSION=v0.2.1 ./install.sh   # pin a specific version

Prebuilt binaries are available for macOS (Apple Silicon + Intel) and Linux (x86_64 + aarch64) on the releases page.

To build from source instead:

git clone https://github.com/linggen/linggen-memory
cd linggen-memory
git checkout memory-refactor
cargo build --release
./target/release/ling-mem --help

See doc/tech-spec.mdRelease process for the cross-compile + signing flow.


Layout

linggen-memory/
├── Cargo.toml          # single crate
├── src/                # all Rust code (CLI, HTTP daemon, embed pipeline,
│                       #  LanceDB store)
├── static/             # Data Browser UI (baked into the binary via rust-embed,
│                       #  served at 127.0.0.1:9888 by the daemon)
├── doc/
│   ├── product-spec.md # features, user-facing behavior, scenarios
│   ├── tech-spec.md    # schema, storage, CLI contract, release process
│   └── ui-spec.md      # Data Browser UI: layout, endpoints, interactions
├── scripts/            # build + release (cross-compile via GitHub Actions)
├── assets/             # icon etc.
├── DESIGN.md           # rolling locked-decisions log
├── CHANGELOG.md        # release notes per version
├── RELEASES.md         # release process notes
├── SIGNING.md          # minisign signing key + verification flow
├── LICENSE             # MIT
└── README.md           # you are here

The thin skill wrapper (SKILL.md + dashboard + install.sh + scan/extract scripts) lives in the linggen repo at skills/ling-mem/ — separate from this binary's source.


License

MIT. See LICENSE.


History

This repo began as a code-indexing tool (RAG for your codebase, tree-sitter AST, local LLM chat). In 2026 it was refactored into a general-purpose semantic memory store for AI assistants. The pre-refactor tree is preserved at the v0-legacy git tag if you need to recover any of the original indexing logic.

Reviews (0)

No results found