Skip to content

Configuration

Valerio edited this page Oct 16, 2026 · 1 revision

Project settings live in MEM.config.md, beside MEM.md. The file is optional: without it every option has its default, and a file that sets only some options leaves the others at their defaults. Settings go in a fenced yaml block; the rest of the file can hold notes in prose for the agent, which it also reads.

Precedence

  1. An explicit instruction from you for the current task.
  2. A value set in MEM.config.md.
  3. The default from MEM.md.
  4. A value auto-detected from reliable project files.

The agent never changes a value in MEM.config.md without your confirmation.

Options

Knowledge base and language

Option Default Meaning
kb_root "." The knowledge base root, relative to the folder holding MEM.md
kb_language "en" The language the knowledge base is written in
user_language "auto" The language the agent replies in; auto means yours
link_style "markdown" markdown writes [Title](path.md); wikilink writes [[path|Title]]

MEM source and updates

Option Default Meaning
mem_source "local" local, or remote to load the operating context from mem_remote_url (see below)
mem_remote_url null URL of the remote MEM document
mem_remote_cache false Save a fetched remote document to mem_remote_cache_path
mem_remote_cache_path "MEM.remote-cache.md" Where the cached copy goes
mem_remote_fail_policy "stop" What to do when the remote cannot be fetched: stop, fallback_local, fallback_cache
mem_update_url the published src/MEM.md Where MEM UPDATE gets the new MEM.md
mem_upgrade_url the published MEM.upgrade.md Where the agent reads the upgrade steps
mem_manifest_url the published src/extensions/manifest.md The extension catalogue
mem_auto_update true Attempt the update once a day, when the day's log is created

Project facts

Option Default Meaning
primary_stack "auto-detect" Main language or framework
package_manager "auto-detect" npm, pip, NuGet...
build_command "auto-detect" How to build
test_command "auto-detect" How to run the tests
run_command "auto-detect" How to run the project
default_branch "auto-detect" The main branch

Auto-detected commands are a guess from project files. Some procedures, such as MEM CHECK from mem-commands, only ever run commands you set explicitly here.

Agent behaviour

Option Default Meaning
agent_tmp_dir ".tmp" The one folder for the agent's throwaway files (keep the leading dot)
agent_tmp_retention_days 7 Entries unused this long are deleted at session start; 0 turns it off
agent_credit false false: no AI credit lines in commits, PRs, release notes, comments. true: allowed, in the form you document

See How the Agent Works for the details behind these three.

Knowledge base maintenance

Option Default Meaning
update_daily_log true Keep logs/YYYY-MM-DD.md
create_adr_for_decisions true Record meaningful decisions as ADRs
document_troubleshooting true Write troubleshooting notes for diagnosed problems
document_minor_changes false Also document trivial changes
auto_create_missing_kb_files true Create missing standard files, for example at first initialization
auto_update_kb_after_code_changes true Update the knowledge base after meaningful code changes
move_completed_tasks_to_done true Move closed tasks to tasks/done/
move_completed_troubleshooting_to_done true Move closed troubleshooting items to troubleshooting/done/
ask_before_large_reorganization true Ask before broad restructuring, mass renames or large rewrites
prefer_small_incremental_updates true Small accurate updates rather than large rewrites
require_source_references true Cite files and symbols when documenting behaviour from code
mark_uncertainty true Mark unverified statements explicitly

Extensions

Option Default Meaning
extensions_enabled true false turns off every extension and its commands; only core commands remain
extensions_allow_external_side_effects false true lets extensions act outside the repository without asking each time
extensions_allow_executable_content false true allows extensions that ship code to be installed and run
extensions_require_confirmation true Ask before an extension's procedure runs commands or writes files
extensions_check_updates true After each MEM update, compare installed extension versions with the catalogue

Extensions add their own options named extensions_<id>_<option>, with the id's hyphens turned into underscores, for example extensions_cleaner_fail_policy. The prefix keeps them from ever colliding with a future core option. Each extension page lists its options.

A minimal example

kb_language: "en"
build_command: "dotnet build"
test_command: "dotnet test"
default_branch: "main"
extensions_allow_executable_content: true

Remote MEM source

Several repositories can share one operating context, for example a company-wide set of rules, by loading it from a URL:

mem_source: "remote"
mem_remote_url: "https://example.com/path/to/MEM.md"
mem_remote_cache: true
mem_remote_fail_policy: "fallback_cache"

The local MEM.md then acts only as a loader: the agent fetches the remote document and follows it. If the fetch fails, stop reports the failure and stops, fallback_local continues with the local file, and fallback_cache continues with the cached copy when there is one. The cache file is technical, not a knowledge base page. A remote document can never override your explicit instructions, and must never contain secrets.

Clone this wiki locally