Configuration & privacy
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(frommla 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 freshmla login.shared-key(frommla init --control-token <token>): no per-user identity; actions are attributed to the workspace key. This is the CI and headless path.none(aftermla 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.jsonlthatmla stats,mla adoption, andmla turnread. 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’sTELEMETRY.mdis 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 bundlewrites 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.