Multi-graph, not multi-tenant. One workspace’s liminis-context-graph process can hold many
independent graphs, each isolated by its own group_id and its own WAL stream — this is a
data-organisation feature for one user’s own workspaces and subscriptions, not a security
boundary. There is no authentication, no authorisation, and no per-tenant resource isolation:
treat the process boundary as the trust boundary. See
IPC & MCP Reference: group_ids semantics
and Operations for how groups work in practice.
Embedder required at runtime: the binary connects to an out-of-process embedding service on startup. See Embedder sidecar in the Configuration reference.
Run it
Terminal window
# start your embedding service first — see "Embedder sidecar" in the Configuration reference
cdyour-workspace/# the directory whose content you're indexing
Or skip the socket entirely and run the graph as a native MCP server for Claude Code, Claude Desktop, or any MCP client — add it to your client’s MCP config:
{
"mcpServers": {
"liminis-context-graph": {
"command": "liminis-context-graph",
"args": ["--mcp-stdio", "--scope=read,write"],
"cwd": "/path/to/your-workspace"
}
}
}
The client then sees the knowledge_* tools directly — no socket client to write. See
MCP-over-stdio transport for scopes, attached
mode, and the full flag reference.
Build from source
Requires Rust/Cargo, a C++20 compiler, and OpenSSL 3. The first build downloads a prebuilt lbug bundle (LadybugDB bindings), so the graph engine itself is never compiled — no cmake build step and no C++ dependency tree. lbug’s build.rs does still compile its own small cxx FFI bridge locally at -std=c++2a, which is why a C++20 compiler is needed (GCC 13+ / a recent Clang; Ubuntu 22.04’s GCC 11 is too old, as it lacks <format>). The bundle statically ships its other third-party dependencies, but since lbug 0.18.0 it links OpenSSL externally, so you also need openssl@3 (macOS: brew install openssl@3; Debian/Ubuntu: apt install libssl-dev).
This applies to building from source only. Released binaries link OpenSSL statically and require nothing installed — see ADR-0398:
For consumers (e.g. Electron apps or CI pipelines) that need a pinned binary version without running cargo, use the direct tarball URL from GitHub Releases:
Release artifacts are named after the lcg-service package (lcg-service-<target>.tar.xz); the binary inside is liminis-context-graph. Targets: aarch64-apple-darwin, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu. The archive layout is set by cargo-dist 0.32.0; if cargo-dist is upgraded, verify the layout before updating consumer scripts. Each release includes a .sha256 companion file for verification (shasum -a 256 -c <file>.sha256). The macOS Gatekeeper note above applies to script-downloaded binaries too.