docs/public/modes.mdx
Claude-Mem uses a flexible Mode System to adapt its behavior, observation types, and output language. This allows you to switch between different workflows (like coding vs. email investigation) or languages without reinstalling the plugin.
A "mode" is a configuration profile that defines:
Set the active mode using the CLAUDE_MEM_MODE setting in ~/.claude-mem/settings.json:
{
"CLAUDE_MEM_MODE": "code--es"
}
Or via environment variable:
export CLAUDE_MEM_MODE="code--fr"
The active mode is shown in the startup context injected into each new session, for example:
Mode: Code Development (code)
Run /mode-creator to design a domain-specific note system through an interactive interview. It helps choose observation types and concept tags, writes and validates the mode, installs it under ~/.claude-mem/modes/, activates it, optionally configures Telegram alerts, restarts the worker, and verifies the active mode in startup context.
Custom modes in the data directory are durable across plugin upgrades. The worker searches user modes before bundled modes, while inherited custom modes can still use a bundled parent such as code:
~/.claude-mem/modes/code--architecture-practice.json
Avoid editing files inside the plugin cache because a plugin update can replace them.
The standard mode for software development. Captures bug fixes, features, refactors, and architectural decisions.
ID: code
Behavioral variants that change how the code mode operates:
| Variant | Mode ID | Description |
|---|---|---|
| Chill | code--chill | Produces fewer observations. Only records things "painful to rediscover" - shipped features, architectural decisions, and non-obvious gotchas. Skips routine work and obvious changes. |
Inherits all behavior from Code Mode but instructs Claude to generate all memory artifacts (titles, narratives, facts, summaries) in the target language.
| Language | Mode ID | Native Name |
|---|---|---|
| Arabic | code--ar | العربية |
| Bengali | code--bn | বাংলা |
| Chinese | code--zh | 中文 |
| Czech | code--cs | Čeština |
| Danish | code--da | Dansk |
| Dutch | code--nl | Nederlands |
| Finnish | code--fi | Suomi |
| French | code--fr | Français |
| German | code--de | Deutsch |
| Greek | code--el | Ελληνικά |
| Hebrew | code--he | עברית |
| Hindi | code--hi | हिन्दी |
| Hungarian | code--hu | Magyar |
| Indonesian | code--id | Bahasa Indonesia |
| Urdu | code--ur | اردو |
| Italian | code--it | Italiano |
| Japanese | code--ja | 日本語 |
| Korean | code--ko | 한국어 |
| Norwegian | code--no | Norsk |
| Polish | code--pl | Polski |
| Portuguese (Brazil) | code--pt-br | Português Brasileiro |
| Romanian | code--ro | Română |
| Russian | code--ru | Русский |
| Spanish | code--es | Español |
| Swedish | code--sv | Svenska |
| Thai | code--th | ภาษาไทย |
| Turkish | code--tr | Türkçe |
| Ukrainian | code--uk | Українська |
| Vietnamese | code--vi | Tiếng Việt |
A specialized mode for analyzing email dumps (e.g., FOIA releases, corporate archives). Focuses on identifying entities, relationships, timeline events, and key topics.
ID: email-investigation
Observation Types:
entity: Person, organization, or email addressrelationship: Connection between entitiestimeline-event: Time-stamped event in communication sequenceevidence: Supporting documentation or proofanomaly: Suspicious pattern or irregularityconclusion: Investigative finding or determinationThe system supports inheritance using the -- separator. For example, code--es means:
code (Parent) configuration.code--es (Child) configuration.This allows for lightweight "remix" modes that only change specific aspects (like the language prompt) while keeping the core definitions intact.