unlock
Skill1 starsChanged 7 months agoApache-2.0View on GitHub
Lift the single-vault lock and restore normal multi-vault routing. Pass "persist" to ALSO lift the lock where a restart reads it from — the `locked` flag on this workspace's binding in the user's router config — and to remove the `OBSIDIAN_ROUTER_LOCKED` hint from the workspace `.env`. Without it, a lock recorded on the binding comes back at the next start; a leftover `.env` line on its own does not, since a lock named only by a project file is no longer applied.
- Reads credentials
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Ryan-M-Frank/volleytheir own version, first seen Oct 13, 2026
- chris-santiago/ml-wikitheir own version, first seen Jul 16, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- Ryan-M-Frank/volley★ 2same name
- chris-santiago/ml-wiki★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- auto-modeSkill
- autoresearchSkill
- bind-workspaceSkill
- build-search-indexSkill
- canvasSkill
- conventionsSkill
- decision-consolidateSkill
- defuddleSkill
- discover-list-filesSkill
- discover-list-vaultsSkill
- force-new-port-startSkill
- hot-compactSkill
- lockSkill
- manage-deleteSkill
- manage-moveSkill
- meta-attach-vaultSkill
- meta-audit-bridge-readinessSkill
- meta-setupSkill
- meta-statusSkill
- meta-sync-templateSkill
- obsidian-basesSkill
- obsidian-markdownSkill
- read-frontmatterSkill
- read-getSkill
- read-searchSkill
- read-search-smartSkill
- saveSkill
- sync-from-githubSkill
- template-executeSkill
- who-is-speakingSkill
- wiki-boundarySkill
- wiki-exportSkill
- wiki-foldSkill
- wiki-graphSkill
- wiki-ingestSkill
- wiki-lintSkill
- wiki-neighborsSkill
- wiki-pathSkill
- wiki-querySkill
- wiki-refresh-digestsSkill
- wikiSkill
- wiki-tourSkill
- write-appendSkill
- write-bundleSkill
- write-create-or-replaceSkill
- write-frontmatter-mergeSkill
- write-frontmatter-setSkill
- write-patchSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
After a successful unlock, confirm to the user: previous lock target (if any), whether the .env was cleaned, and that the router is back in …
- Distinctive: line 27
If the router wasn't locked, the tool returns a no-op message.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
unlock
Invoke the unlock_vaults MCP tool.
Argument parsing from $ARGUMENTS
- empty →
persist=false(in-memory only) - "persist" / "permanently" / "de manière permanente" / "et nettoie le .env" →
persist=true persist=true/persist=false— explicit
Always
- After a successful unlock, confirm to the user: previous lock target (if any), whether the
.envwas cleaned, and that the router is back in normal multi-vault mode. - If the router wasn't locked, the tool returns a no-op message. Surface that gently — no need to be dramatic.
- If the user said "persist" but the
.envdidn't haveOBSIDIAN_ROUTER_LOCKED, the tool reportspersistRemoved: false— surface that as an info ("nothing to clean up in .env"). The field that matters isbindingLifted: true means no lock is recorded for this workspace in the router config any more — either it was lifted, or there never was one — so nothing comes back at the next start. False means the router config could not be written, so a lock recorded there (if any) WILL come back; say that plainly and point at the config's permissions. Do not report a lock as "still recorded" on a false: the tool cannot see whether one existed when the write failed. One field overrides all of that:hostReimposes: truemeans the lock came from the host'sOBSIDIAN_ROUTER_LOCKED(the MCP declaration or the shell), which no persist can lift — say plainly that it WILL come back at the next start until that variable is removed where it is set, and do not promise otherwise even thoughbindingLiftedis true.
Push back if
- The user wants to unlock and switch to a different vault in the same breath — that's two operations. Suggest
/obsidian-router:lock <new-vault>directly (lock_vaultoverrides the previous lock without needing an unlock).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

