Commit the accumulated infrastructure work that was living only in the working tree: monitoring stack, emergency access/bot, gyro allocator, grimmory, adguard, backup audit and the OpenCode agent definitions. Also ignore Python bytecode, local archives and Nix/direnv artifacts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTocXkGUUazHdKKd3r9k71
Grimmory OpenCode MCP
Read-only Grimmory v3.2.4 API integration with manual synchronization to
individual Obsidian book notes.
Security
- Grimmory mutations are not implemented.
- Authentication uses the current user's local login because annotations and reading progress are user-scoped.
- The password is read from a mode
0600file and is never passed in argv. - Access and refresh tokens remain in process memory only.
Configure
cd tools/grimmory-mcp
npm install
npm run configure
The default password file is:
~/.config/opencode/secrets/grimmory_password
Obsidian behavior
- Notes:
90 Library/Books/<title> — grimmory-<id>.md - Covers:
99 System/Export/Grimmory/Covers/<id>.<ext> - Existing notes are matched by
grimmory_id, so title changes rename instead of duplicate the note. - Text between
grimmory:user:startandgrimmory:user:endis preserved. - Generated metadata, progress, annotations and sessions are replaced from Grimmory on every sync.
99 System/INDEX.mdis rebuilt after a successful manual sync.
OpenCode
Restart OpenCode after changing its MCP configuration. Run /grimmory-sync to
synchronize the complete accessible library manually.