My Obsidian plugin ecosystem. Each plugin lives as an independent repository, linked here as submodules. Your tools should fit your thinking, not the other way around.
| Plugin | Description |
|---|---|
| obsidian-eagle-plugin | Upload and manage images via Eagle integration |
| Metadata-Auto-Classifier | AI-powered automatic metadata generation for notes |
| Open-smart-connections | Semantic search and related notes using local embeddings |
| obsidian-boiler-template | Seed template for new plugins — fork this to start |
git clone --recurse-submodules https://github.com/GoBeromsu/obsidian-workspace.git
cd obsidian-workspace
# Set your vault path
cp .env.example .env
# Edit .env → OBSIDIAN_VAULT_PATH=/path/to/your/vault
# Work on a specific plugin
cd obsidian-eagle-plugin
pnpm install
pnpm devpnpm dev # Watch mode + hot reload into vault
pnpm build # Production build
pnpm test # Vitest
pnpm lint # ESLint
pnpm ci # build + lint + test- Fork the repository
- Create your branch (
git checkout -b feature/your-feature) - Commit with Conventional Commits (
git commit -m 'feat: add something') - Push and open a Pull Request against
main
Branch naming: feature/<name>, fix/<name>, refactor/<name> — no direct commits to main.
Releases are CI-only. Do not run git tag or gh release locally — this is enforced at the tooling level, not by convention.
Native-first. Every UI element uses Obsidian's own component system. No raw HTML, no external frameworks.
Structural over advisory. Rules that matter get enforced at the tooling level — hooks, permission deny lists, CI gates. Not just documented.
Minimal impact. Changes touch only what they need to. The right amount of code is the minimum that solves the problem.
Closed verification loop. After every code change: build → reload → error check → screenshot → eval. No manual testing cycle.
MIT — see LICENSE for details.