Skip to content

linggen/linggen-memory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

146 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.3.2 — prebuilt binaries available for macOS Apple Silicon and Linux (x86_64 + aarch64). Active development on main. The pre-refactor code-indexing tool is preserved at the v0-legacy git tag.


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.
  • Self-updating. ling-mem self-update --check reports the latest release; ling-mem start embeds the same probe in its JSON so the agent can prompt the user when a new version ships. self-update --yes swaps the binary atomically and restarts the daemon.
  • 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/skills repo at 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/skills
cd skills/ling-mem
./install.sh                  # auto-detects ~/.linggen and/or ~/.claude
./install.sh --host=both      # force install to both
LING_MEM_VERSION=v0.3.2 ./install.sh   # pin a specific version

Prebuilt binaries are available for macOS Apple Silicon 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
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/            # release.sh + Dockerfile.linux (multi-arch buildx)
├── assets/             # icon etc.
├── CHANGELOG.md        # release notes per version
├── LICENSE             # MIT
└── README.md           # you are here

The thin skill wrapper (SKILL.md + dashboard + install.sh + scan/extract scripts) lives in the linggen/skills repo at 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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors