Skip to content

Configuration & privacy

Available today

Meetless Agent is local-first by design. This page explains where its state lives, how it authenticates, and what does and does not leave your machine. If you are evaluating the product, this is the page to read closely.

Where state lives

Local state lives under ~/.meetless: your CLI configuration and credentials, the capture queue, the installed hooks, and local logs. Configuration and the current auth mode are recorded in ~/.meetless/cli-config.json. Local usage events are written to ~/.meetless/events.jsonl.

Removing the footprint is one command: mla uninstall clears ~/.meetless, the Claude Code hook and MCP entries, and the /mla skill, and tells you how to remove the binary. It does not touch server-side data or other repositories’ workspace markers.

Authentication modes

The CLI records how it authenticates in cli-config.json. There are two working modes and one terminal state:

  • user-token (from mla login): a real Console user via browser sign-in. Every action is audited as that human. This is the default for interactive operators. The session refreshes on its own with normal use; only long dormancy forces a fresh mla login.
  • shared-key (from mla init --control-token <token>): no per-user identity; actions are attributed to the workspace key. This is the CI and headless path.
  • none (after mla logout, or before any sign-in): the terminal state. Control and intel calls fail fast with “not logged in.”

Privacy posture: local-first

The defaults are built so that nothing has to leave your machine for the product to work:

  • Injection is client-side. Placing your decisions in the agent’s context is a local read. It does not require a network call or a model call.
  • Local usage stats stay local. Adoption and usefulness signals are written to a local ~/.meetless/events.jsonl that mla stats, mla adoption, and mla turn read. Nothing about that file requires upload.
  • Telemetry defaults differ per plane, and one of them is on. Crash reporting is off (open-source builds bake no DSN) and run traces are off unless your own server opts in. Product-health analytics is on by default and opt-out, and carries ids, counts, rates, enums, booleans, durations, and one-way hashes. Your prompt text, command arguments, and document contents are not in it. It has exactly one content-bearing exception, and it goes to your own control: when one of your governance rules blocks a write, the event carries that rule’s text and the repo-relative path it blocked, so your review queue can adjudicate the block. Neither is on the onward analytics mirror’s allowlist. Turn every plane off with MEETLESS_TELEMETRY=off. The CLI’s TELEMETRY.md is authoritative on the exact fields and defaults for the release you are running.
  • Secrets are kept out of anything that leaves your machine. A credential denylist screens uploads and fails closed, so a captured secret is withheld rather than sent on ambiguity.
  • Debug bundles never upload. mla debug bundle writes a local, inspectable zip. Raw payloads (prompts, bodies, diffs) are excluded by default and require an explicit confirm to include.

Overriding backends

The backend and intel service URLs can be overridden by environment for self-hosted or staging setups; those overrides are honored in every auth mode. Consult mla help for the current variable names.