Plugin Replicator
Overview
Primarily a developer machine tool. Use this when you have multiple local projects and want to keep plugin source code in sync between them without manual copying.
It is bidirectional — source and destination are just paths, so it works as both a push (distribute updates outward) and pull (pull latest into a consumer project):
PUSH (run from agent-plugins-skills): plugins/X -> /other-project/plugins/X
PULL (run from the consumer project): /agent-plugins-skills/plugins/X -> plugins/X
After replicating, run plugin-maintenance Sync in the target project to activate plugins in .agent/ , .claude/ , .gemini/ etc.
References
-
Overview: plugins/plugin-manager/skills/plugin-replicator/references/plugin_replicator_overview.md
-
Flow diagram: plugins/plugin-manager/skills/plugin-replicator/references/plugin_replicator_diagram.mmd
Modes
Mode Flag Behavior
Additive (default) Copies new/updated files only. Nothing deleted from dest.
Clean Sync --clean
Copies new/updated AND removes dest files missing from source.
Symlink --link
Creates a live symlink — always reflects source. Best for dev.
Preview --dry-run
Prints what would happen without making changes.
Execution Protocol
CRITICAL: Do not immediately generate bash commands. Operate as an interactive assistant.
Phase 1: Guided Discovery
Ask the user:
-
Source: Which plugin(s)? Single plugin or bulk sync of all?
-
Destination: What is the absolute path to the target project's plugins/ folder?
-
Mode: Additive update (safe default), Clean sync (also removes deleted files), or Symlink (dev)?
-
Preview first?: Recommend --dry-run for the first run.
Phase 2: Recap-Before-Execute
Proposed Replication Task
- Plugin(s): [name or ALL]
- Source:
plugins/<name>/(this repo) - Destination:
[absolute path] - Mode: [Additive / Clean / Symlink] [DRY RUN?]
Confirm to proceed.
Phase 3: Command Generation
Pull: From agent-plugins-skills into a consumer project (run FROM consumer project)
python3 plugins/plugin-manager/scripts/plugin_replicator.py
--source /Users/richardfremmerlid/Projects/agent-plugins-skills/plugins/<plugin-name>
--dest plugins/<plugin-name>
--clean
Push: From this repo to another project (run FROM this repo)
python3 plugins/plugin-manager/scripts/plugin_replicator.py
--source plugins/<plugin-name>
--dest /path/to/other-project/plugins/<plugin-name>
Bulk Push: All plugins
python3 plugins/plugin-manager/scripts/bulk_replicator.py
--source plugins/
--dest /path/to/other-project/plugins/
Filtered Bulk (e.g., only obsidian-* plugins)
python3 plugins/plugin-manager/scripts/bulk_replicator.py
--source plugins/
--dest /path/to/other-project/plugins/
--filter "obsidian-*" --clean
When to Use
-
New project setup: Bulk-replicate all plugins to get started fast.
-
Plugin update: Additive sync to push latest changes to a consumer project.
-
Removing a skill/file: Run with --clean to propagate deletions.
-
Active development: Use --link to work from source and test in target instantly.
Next Actions
After replicating, run plugin-maintenance Sync in the target project to activate the plugins in .agent/ , .claude/ , .gemini/ etc.