Automatic Plugin Manager
pendingby Konstantin Volobuev
Automatically install, enable, and configure community plugins from a simple JSON file. Perfect for syncing plugin setups across devices or sharing vault configurations with predefined plugins and settings.
Automatic Plugin Manager
Automatically install, enable, and configure Obsidian community plugins from simple JSON configuration files. Perfect for syncing plugin setups across devices or sharing vault configurations.
โจ Overview
Automatic Plugin Manager is a powerful Obsidian plugin that automates the installation, enabling, and configuration of community plugins. Simply define your desired plugins in a JSON file, and the plugin handles the restโdownloading, installing, enabling, and applying settings automatically.
Perfect for:
- ๐ Syncing plugin setups across multiple devices
- ๐ฅ Sharing vault configurations with team members
- ๐ Quick environment setup for new vaults
- ๐ฆ Reproducible plugin configurations for development workflows
๐ง Features
- โ Automatic Installation - Installs missing plugins from the Obsidian Community Plugins registry
- โ Auto-Enable Plugins - Automatically enables installed plugins after installation (configurable)
- โ Smart Plugin Detection - Refreshes plugin list to ensure newly installed plugins are recognized
- โ Settings Synchronization - Applies predefined plugin settings from configuration files
- โ UI Auto-Refresh - Automatically updates the Obsidian UI to show newly installed plugins
- โ Error Handling - Comprehensive error handling with detailed logging
- โ Flexible Configuration - Simple JSON-based configuration system
โ ๏ธ Security Warning
IMPORTANT: This plugin automatically downloads and installs plugins from the Obsidian Community Plugins registry. Please be aware of the following security considerations:
- Only use with trusted vaults: Only install this plugin in vaults where you trust the source of the
community-plugins-list.jsonfile - Review plugin lists: Always review the
community-plugins-list.jsonfile before enabling this plugin - Plugin permissions: Installed plugins may have access to your vault data and file system
- Automatic updates: This plugin installs the latest version of each plugin, which may include breaking changes
- Use at your own risk: The plugin author is not responsible for any issues caused by automatically installed plugins
Recommendation: Review the community-plugins-list.json file in your vault's .obsidian folder before enabling this plugin.
๐ Installation
Manual Installation
- Download the latest release from the GitHub repository
- Extract the archive to your vault's
.obsidian/plugins/folder - Rename the extracted folder to
automatic-installation-of-plugins - Open Obsidian Settings
- Go to Community plugins
- Make sure Safe mode is off
- Find "Automatic Plugin Manager" in the installed plugins list
- Click the toggle to Enable the plugin
๐ Configuration Files
This plugin uses two simple JSON configuration files located in your vault's .obsidian folder:
.vault/
โโโ .obsidian/
โ โโโ plugins/
โ โโโ community-plugins-list.json โ Plugin IDs to install
โ โโโ community-plugins-settings.json โ Plugin settings
community-plugins-list.json
A simple array of plugin IDs to install and enable:
[
"advanced-tables",
"templater-obsidian",
"obsidian-linter",
"obsidian-git"
]
community-plugins-settings.json
An object mapping plugin IDs to their configuration settings:
{
"templater-obsidian": {
"templates_folder": "Templates",
"trigger_on_file_open": true,
"command_timeout": 5
},
"obsidian-linter": {
"auto_format_on_save": true,
"lint_on_load": false
},
"obsidian-git": {
"pullInterval": 60,
"autoPullInterval": 0
}
}
๐ง Use Cases
Sync Plugins Across Devices
- Set up your plugins on one device
- Export your
community-plugins-list.jsonandcommunity-plugins-settings.json - Copy these files to other devices
- Enable the plugin on each deviceโyour plugin setup will be automatically synchronized
Share Vault Configurations
Create a vault template with predefined plugins and settings. Anyone who opens the vault will automatically get the same plugin configuration.
Quick Environment Setup
Set up a new vault with your favorite plugins in seconds by copying your configuration files.
Development Workflows
Maintain consistent plugin configurations across development environments.
๐๏ธ Example Workflow
-
Create your plugin list:
[ "obsidian-git", "templater-obsidian", "obsidian-linter" ] -
Configure plugin settings (optional):
{ "obsidian-git": { "pullInterval": 60 }, "templater-obsidian": { "templates_folder": "Templates" } } -
Enable the plugin in Obsidian settings
-
Restart Obsidian - The plugin will automatically:
- Install missing plugins
- Enable installed plugins
- Apply configured settings
- Refresh the UI
โ๏ธ Settings
The plugin provides the following settings (accessible via Settings โ Community plugins โ Automatic Plugin Manager):
| Setting | Description |
|---|---|
| Auto install plugins on startup | If enabled, plugins from community-plugins-list.json will be automatically installed on Obsidian startup |
| Auto enable plugins after installation | If enabled, all installed plugins will be automatically enabled after installation. The plugin list will be refreshed first |
| Load plugin settings on install | If enabled, plugin configuration will be loaded from community-plugins-settings.json after installation |
| Load plugin settings on startup | If enabled, plugin configuration will be loaded from community-plugins-settings.json into installed plugins' data.json on each startup |
๐ How It Works
- On Obsidian startup, the plugin checks for
community-plugins-list.jsonin your vault's.obsidianfolder - If the file exists and contains plugin IDs, the plugin attempts to install any missing plugins from the Obsidian Community Plugins registry
- After installation, if enabled, the plugin:
- Refreshes the plugin list to ensure newly installed plugins are recognized
- Automatically enables all installed plugins
- Updates the Obsidian UI to show the changes
- Settings application: If
community-plugins-settings.jsonexists and contains settings for installed plugins, those settings are applied to each plugin'sdata.jsonfile - On each startup, if enabled, the plugin can re-apply settings from
community-plugins-settings.jsonto already installed plugins
๐ Finding Plugin IDs
To find the ID of a plugin you want to install:
- Go to the Obsidian Community Plugins website
- Search for the plugin you want
- The plugin ID is usually visible in the URL or plugin page
- Alternatively, check the plugin's GitHub repository - the ID is often in the repository name
Common plugin IDs:
obsidian-git- Git plugintemplater-obsidian- Templaterobsidian-linter- Lintercalendar- Calendardataview- Dataview
๐ Troubleshooting
Plugins not installing
- Check that
community-plugins-list.jsonexists and contains valid plugin IDs - Verify plugin IDs are correct (they're case-sensitive)
- Check the console (Ctrl/Cmd + Shift + I) for error messages
- Ensure you have an internet connection
Plugins not enabling
- Check the "Auto enable plugins after installation" setting is enabled
- Check the console for any errors during the enable process
- Try manually reloading plugins (Settings โ Community plugins โ Reload)
Settings not applying
- Verify
community-plugins-settings.jsonexists and is valid JSON - Check that plugin IDs in the settings file match the installed plugin IDs
- Ensure the "Load plugin settings on install" or "Load plugin settings on startup" setting is enabled
๐ Links
- Author: Konstantin Volobuev
- GitHub Repository: obsidian-automatic-installation-of-plugins
- Report Issues: GitHub Issues
๐ License
This plugin is licensed under the MIT License. See the LICENSE file for details.
๐ Acknowledgments
Thanks to the Obsidian community for creating amazing plugins and to all contributors who help improve this plugin.
Made with โค๏ธ for the Obsidian community
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.