durmem keeps your agents on track.

Security and privacy

Protect your credentials, understand who can access your data, and report security issues privately.

Your credentials#

~/.loom/stores.toml holds the connection details for your stores, including each store's store key: the secret credential that lets anyone holding it read and write that store. Treat the file as a credential:

  • never commit it to Git;
  • never paste it into an issue, chat, screenshot or log;
  • do not share it between unrelated people;
  • let durmem setup or durmem login write it rather than assembling it by hand.

Setup writes the file atomically and restricts access to your user (mode 0600 on Linux and macOS). On Windows, setup removes inherited permissions and grants full control only to your user before it writes any secret. An existing stores.toml can still inherit read access from its folder for another local account or group. Check the file with icacls %USERPROFILE%\.loom\stores.toml. It should show exactly one entry: your user with (F), with no entries marked (I). To rewrite an older file, run durmem login for the same account and server as the store you intend to use. For a private server, use durmem login --base https://durmem.ai; replace durmem.ai with the server's hostname and any nondefault port, not a full HTTPS URL. You can also remove inherited entries yourself.

Windows ACL behavior has not been verified in a native Windows run; the expected icacls output is based on code and a regression test only.

Setup hardens stores.toml but does not force permissions on the ~/.loom directory. Its mode depends on your umask and whether the directory already existed. On a shared machine, inspect it and use:

chmod 700 ~/.loom

Email codes, sign-in links, and enrollment grants are short-lived. Email codes last 10 minutes and are single-use; a one-time code issued by a private server's administrator can last up to three days. Enter them only at the hidden prompt. Before following any sign-in link, confirm that you started the request.

Logging out#

Use Manage stores to forget a store on this computer. Logout removes a local section, not the server key or data; credentials copied elsewhere remain valid. A result saying removed refers only to that local section. If other stores remain, choose a remaining default before logging out of the current default. To invalidate a copied key, use the revocation procedure above.

What is stored and where#

DataWhereNotes
Facts, relations, rules you saveThe store on the serverOne store per section in stores.toml.
Connection credentials~/.loom/stores.tomlThe signed-in Stores page can also display your account's connection bundle, including store keys. Protect any copy from that page as carefully as the local file.
Embedding model files~/.loom/cache/fastembed on your computerDownloaded on first save; no facts in it.
Model download cache~/.cache/huggingface/ on your computerCreated on first save (download logs and staging); no facts in it.
Embedding runtime device id~/.cache/Microsoft/DeveloperTools/.onnxruntime/Created by the embedding runtime.
Plugin update check cache~/.loom/plugin-update-check.jsonExists only when a Claude Code or Codex plugin is installed. Holds the marketplace's latest commit and version.

Do not save passwords, tokens or other secrets as facts.

What leaves your computer#

  • Facts, queries and keys go only to your durmem server: sign-in over HTTPS on the server's web port, memory over an encrypted connection on the gateway port.
  • The first save on a computer downloads the embedding model from huggingface.co and its CDN hosts. After that, embeddings are computed on your computer, and later saves and queries contact only your store gateway.
  • The embedding runtime (ONNX Runtime) sends a usage event to mobile.events.data.microsoft.com on that first run and writes a device id under ~/.cache/Microsoft/DeveloperTools/.onnxruntime/.
  • The Claude Code and Codex plugins check their installation marketplace for a newer plugin at most once every 24 hours. A plugin installed from the hosted marketplace checks durmem.ai, including a private install that fell back to it. A plugin installed from your private server's /loom-plugins.git checks your server. The check sends no memory data.
  • durmem setup contacts only the server it signs in to and installs plugins from that server. An explicit --base selects it; otherwise setup can reuse a recorded web_origin only when stores.toml contains exactly one store section and that section has a web_origin. If not, setup uses the configured server, or https://durmem.ai when none is configured. A private HTTPS server can serve the CLI bootstrap files from its selected release under /.well-known/cli/; the installer and discovery URLs use that origin. If those files are absent, use the hosted installer or a source checkout, then target setup at your server.

Who can read your data#

Keep your credentials strong and private. At-rest encryption does not replace credential security and cannot protect data while the service is using it.

Your client checks the server’s identity when it connects. For a private server, run durmem setup --base https://durmem.ai to sign in and install plugins from that server. If you need to sign in again or recover the connection, use durmem login --base https://durmem.ai. Replace durmem.ai with your server's hostname and any nondefault port, not a full HTTPS URL. For a self-signed certificate, follow setup to trust that server specifically; this does not change which certificates your computer trusts for public sites. Keep your local connection configuration private; it can enable access to your store.

Your browser session#

Support#

For hosted-install support, contact info@durmem.ai until public issue reporting opens. For private-install questions, contact your administrator first. For durmem software issues, use the private distribution repository's issues. Security reports always use the private route below.

Report a security issue#

Do not open a public issue for a vulnerability or credential exposure. Email info@durmem.ai with a short description and a reproduction that contains no live keys or personal data.