# OpenClaw updates USER.md instead of my Obsidian note

**URL:** <https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44>\
**Category:** Troubleshooting\
**Tags:** configuration, memory, persistence, tools, troubleshooting\
**Created:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44 "2026-09-14T22:30:46Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ArchivedMember](https://avatars.discourse-cdn.com/v4/letter/a/e56c9b/32.png) [@ArchivedMember](https://community.openclaw.ai/u/ArchivedMember)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/1 "2026-09-14T22:30:46Z")

</div>

> **Adapted community discussion:** Paraphrased and condensed from an anonymized public OpenClaw Discord support conversation from August 2026. Technical guidance was reviewed for OpenClaw 2026.9.3.

I indexed an Obsidian vault and told OpenClaw to use it as my knowledge base. Search can find the notes, but when I ask it to update a learning-progress note, it sometimes writes the information into `USER.md` instead. How do I make the vault note the reliable write target?

---

<div class="post-metadata">

**Author:** ![OpenClawSupport](https://avatars.discourse-cdn.com/v4/letter/o/49beb7/32.png) [@OpenClawSupport](https://community.openclaw.ai/u/OpenClawSupport)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/2 "2026-09-14T22:30:47Z")

</div>

Indexing makes the vault searchable. It does not decide which file the agent should edit. `USER.md` is a special user-model file loaded into eligible sessions, so a request about personal progress can look like a profile update.

Put a clear routing rule in the active workspace’s `AGENTS.md`: name the vault as the canonical project knowledge base, direct learning progress to the existing vault note, reserve `USER.md` for stable profile directives, and require the agent to ask when the target is ambiguous. After an edit, have it report and reread the exact file it changed.

---

<div class="post-metadata">

**Author:** ![ArchivedMember](https://avatars.discourse-cdn.com/v4/letter/a/e56c9b/32.png) [@ArchivedMember](https://community.openclaw.ai/u/ArchivedMember)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/3 "2026-09-14T22:30:47Z")

</div>

I added the routing rule and started a fresh chat. This time OpenClaw updated the Obsidian note, but it also updated `USER.md`.

---

<div class="post-metadata">

**Author:** ![OpenClawSupport](https://avatars.discourse-cdn.com/v4/letter/o/49beb7/32.png) [@OpenClawSupport](https://community.openclaw.ai/u/OpenClawSupport)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/4 "2026-09-14T22:30:47Z")

</div>

That suggests the same fact already exists in `USER.md`, which leaves two plausible destinations. First locate the active workspace, then inspect only the relevant lines rather than sharing the whole file:

```bash
openclaw config get agents.defaults.workspace
grep -n -i -E 'learning|progress' ~/.openclaw/workspace/USER.md

```

Adjust the path if your configured workspace differs. Keep private profile details out of public logs and forum posts.

---

<div class="post-metadata">

**Author:** ![ArchivedMember](https://avatars.discourse-cdn.com/v4/letter/a/e56c9b/32.png) [@ArchivedMember](https://community.openclaw.ai/u/ArchivedMember)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/5 "2026-09-14T22:30:47Z")

</div>

I found the same progress fact in `USER.md`. That explains why OpenClaw kept treating it as profile information.

---

<div class="post-metadata">

**Author:** ![OpenClawSupport](https://avatars.discourse-cdn.com/v4/letter/o/49beb7/32.png) [@OpenClawSupport](https://community.openclaw.ai/u/OpenClawSupport)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/6 "2026-09-14T22:30:47Z")

</div>

Back up `USER.md`, remove only that competing project-progress entry, and leave stable profile directives intact. Keep the stronger vault-routing rule in `AGENTS.md`, then start a fresh session with `/new` so the updated instructions are loaded. Test one small edit and verify that only the intended Obsidian file changed.

---

<div class="post-metadata">

**Author:** ![ArchivedMember](https://avatars.discourse-cdn.com/v4/letter/a/e56c9b/32.png) [@ArchivedMember](https://community.openclaw.ai/u/ArchivedMember)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/7 "2026-09-14T22:30:47Z")

</div>

That fixed it. The next request updated the Obsidian note and left `USER.md` alone.

---

<div class="post-metadata">

**Author:** ![OpenClawSupport](https://avatars.discourse-cdn.com/v4/letter/o/49beb7/32.png) [@OpenClawSupport](https://community.openclaw.ai/u/OpenClawSupport)\
**Post date:** [September 14, 2026, 10:30pm UTC](https://community.openclaw.ai/t/openclaw-updates-user-md-instead-of-my-obsidian-note/44/8 "2026-09-14T22:30:47Z")

</div>

That confirms the issue was ambiguous write routing. It does not mean `USER.md` mechanically overrides every vault note. `USER.md` is loaded directly as profile context, while vault notes are retrieved when relevant, so duplicate facts can make both files look appropriate. One canonical location plus an explicit routing rule removes that ambiguity.
