A vault manager for Obsidian. Group your vaults into contexts, jump between them in one click, and keep everything organized — right next to Files, Search, and Bookmarks.
Polis (πόλις) was the ancient Greek city-state — a self-governing community with its own identity, holding together everything that belonged to it. That's the idea behind the plugin: each group is its own small polis, a self-contained context gathering the vaults that belong together, while still being part of the larger whole.
- Groups (contexts) — organize vaults into named groups, each with its own icon, color, and description (e.g. "Work", "Personal", "Writing").
- One-click vault switching — click any vault to open it via Obsidian's
obsidian://URI handler. - Drag-and-drop reordering — smooth, physics-based reordering (powered by SortableJS) for both groups and vaults, including moving a vault between groups.
- Edit mode — a dedicated mode dims the rest of Obsidian and reveals drag handles and edit affordances, so browsing and editing stay visually distinct.
- Auto-detects known vaults — when adding a vault, pick from vaults Obsidian already knows about (read from Obsidian's own vault list) instead of typing a path by hand.
- Import / export — back up all groups and vaults to a JSON file, or move your setup between different Obsidian installations. Import supports three merge strategies: replace everything, merge and overwrite matching groups, or merge while keeping existing groups untouched.
- Localized UI — English, Russian, and Japanese out of the box, with automatic detection based on Obsidian's own display language (or pick one manually in settings).
Polis isn't yet available in the Community Plugins directory. To install manually:
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Create a folder named
polisinside your vault's.obsidian/plugins/directory. - Copy the three files into that folder.
- In Obsidian, go to Settings → Community plugins, disable Safe mode if needed, and enable Polis.
- Click the brackets icon in the Polis panel header to create a group.
- Click the vault icon to add a vault to a group (disabled until at least one group exists).
- Click the pencil icon to toggle edit mode — drag groups and vaults to reorder them, or click a row to edit its name, icon, color, or description.
- Click the "i" icon on a group to read its description.
- Configure language, and export/import your data, from Settings → Polis.
Requires Node.js and npm.
npm install
npm run dev # watch mode — main.js rebuilds on every change to main.ts
npm run build # production build (type-check + minify)The easiest way is to symlink (or, on Windows, use a directory junction for) the whole project folder into a test vault's plugins directory, so npm run dev rebuilds are picked up without copying files manually:
# macOS / Linux
ln -s /path/to/obsidian-polis /path/to/TestVault/.obsidian/plugins/polis
# Windows (Command Prompt, no admin rights required)
mklink /J "C:\path\to\TestVault\.obsidian\plugins\polis" "C:\path\to\obsidian-polis"Then, in Obsidian: Settings → Community plugins → enable Polis. After changes rebuild, reload with Ctrl/Cmd+P → Reload app without saving, or toggle the plugin off and on.
main.ts — plugin entry point, view, data model, modals
i18n.ts — locale detection and the t() translation helper
locales/ — en.json, ru.json, ja.json translation dictionaries
styles.css — panel styling, using Obsidian's own CSS variables where possible
manifest.json — plugin metadata
- Community Plugins directory submission
- Additional languages
- Broader icon picker
Made by Mark.
MIT