# Meta Memory Settings

> Use to view, change, or reset how the bitranox layered memory behaves - on "/memory-settings", "memory settings", "change dream mode", "turn off nudges", "stop promoting to global", "forget less/more", or when the user wants to see or reset these preferences. Reads/writes the one machine-local config the memory hooks and skills obey.

- Skill: `bitranox/meta-memory-settings` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add bitranox/meta-memory-settings`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bitranox/meta-memory-settings/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bitranox (https://skillmd.com/u/bitranox)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bitranox/meta-memory-settings

---


# meta-memory-settings

The layered memory has a few habit-dependent choices with no single right answer for everyone. Each
has a recommended default; the user can change any of them, the choice is RECORDED, and it is applied
automatically thereafter (never re-asked). All knobs live in one machine-local file,
`~/.claude/.bitranox-memory.json`; this skill is the front door to it.

## Use the CLI
- **View:** `python3 <this-skill-dir>/settings.py view`
- **Set one knob:** `python3 <this-skill-dir>/settings.py set <key> <value>`
- **Reset all to recommended defaults:** `python3 <this-skill-dir>/settings.py reset`

When the user is deciding, state the option's consequence and the recommendation in one line, set it,
then confirm. Do not edit the JSON by hand - the CLI validates the key AND the value, and
refuses an unknown one (exit 2) naming the legal choices, so a typo like `dream_mode of`
cannot reach the file.

## The knobs (recommended default in brackets)

| Key                    | Values                                | What it controls / consequence                                                                                                                                                                                                                                                                                                                                                                                                                     |
|------------------------|---------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `dream_mode`           | `propose` [default], `auto`, `off`    | propose: apply CLAUDE.md consolidation (backed up, reported per file, only where an ancestor covers the rule), self-PR skills. auto: also ship skill changes without asking. off: no nudges, memory-only.                                                                                                                                                                                                                                          |
| `privacy`              | `open` [default], `walled`            | open: a secret/PII scrub only (memory is machine-local, not committed). walled: also keep promotion/gather within one privacy domain. Consequence: a global rule (at the topmost-CLAUDE.md-ancestor tier) is recalled into EVERY session under that tree, including public repos.                                                                                                                                                                  |
| `promotion`            | `corroborated` [default], `eager`     | corroborated: a model-inferred rule must be sighted in >= 2 DISTINCT PROJECTS before it reaches the global layer at the topmost-CLAUDE.md ancestor (recalled into every session under that tree). Re-dreaming ONE project never corroborates: the dwell store is idempotent per project, so a second run there adds no evidence. user-stated rules promote eagerly either way. eager: promote inferred rules on first sight (higher blast radius). |
| `skill_placement`      | `lowest` [default], `user`, `project` | ADVISORY - no shipped code reads this knob; it records your preference, and the authoring skills follow the same rule by convention: a newly created skill goes to the LOWEST scope that fits (a repo's own `.claude/skills/` extension before user scope `~/.claude/skills/`). Setting it to another value changes nothing today. Proposing a skill to the public marketplace is ALWAYS ask-first, regardless.                                    |
| `nudges`               | `true` [default], `false`             | session-start nudges (consolidation-due, new-project bootstrap). Switch off if they are noise.                                                                                                                                                                                                                                                                                                                                                     |
| `track_private`        | `false` [default], `true`             | git-track the memory (the `CLAUDE.local.md` pointer block + the anchor's `.claude-memory/` central bodies) on a PRIVATE repo (portable/shared memory). Public/default ALWAYS gitignore `CLAUDE.local.md` + `.claude-memory/` (this knob does not override that).                                                                                                                                                                                   |
| `mcp_search`           | `auto` [default], `off`               | `auto`: if a memory MCP (e.g. `basic-memory`, correctly configured read-only over the local files) is present, use it as a full-text+graph index to sharpen CROSS-project recall; else fall back to the keyword scan. `off`: keyword scan only.                                                                                                                                                                                                    |
| `cross_tree_search`    | `true` [default], `false`             | may the per-prompt recall hook scan OTHER knowledge trees (machine-global over `discovery_roots`)? `false` walls recall into the CURRENT tree (its own projects + tree top only; the machine-local native tier counts as outside); cross-tree knowledge then moves only via the explicit paths (`bitranox:meta-collect-knowledge` import, dream-global). Use `false` when independent trees (e.g. two clients) must not see each other's notes.    |
| `context_window`       | `0` [default -> detect]               | the session's total token budget, used to decide when a handover is due. `0` DETECTS it from the model. Set a real token count ONLY to override a wrong detection - the symptom is a percentage that cannot be right (a 1M-context model left on a 200k default). `bitranox:meta-context-watcher` sends you here for exactly this.                                                                                                                 |
| `context_handover_pct` | `70` [default]                        | the PERCENTAGE leg of the handover threshold. The trigger is `min(context_handover_pct` of the window, `context_handover_cap)`, so on a large window the cap usually wins and this one does nothing. Lower it to be warned earlier.                                                                                                                                                                                                                |
| `context_handover_cap` | `400000` [default]                    | the ABSOLUTE leg of the same threshold, in tokens, set at the measured onset of context rot. On a 1M window this is what actually fires, at 40 percent rather than 70. Raise it only with a reason - past it, accuracy is already falling.                                                                                                                                                                                                         |
| `discovery_roots`      | `[]` [default -> derived]             | filesystem roots to walk when DISCOVERING knowledge trees (ensure-all-trees, cross-tree gather/recall) and other projects' curated stores (each level's `CLAUDE.local.md` pointer block + the anchor's `.claude-memory/` bodies) (JSON list or comma-separated). Empty -> derive `$HOME`. Never ship absolute maintainer paths in the tracked default.                                                                                             |

## Notes
- A reset restores every knob to the recommended default above.

