@synthetic-ai/premiere-mcp 2.1.0 β†’ 2.3.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +135 -123
  2. package/LICENSE +21 -21
  3. package/README.md +242 -242
  4. package/cep-plugin/.debug +8 -8
  5. package/cep-plugin/CSInterface.js +92 -92
  6. package/cep-plugin/host.jsx +7 -7
  7. package/cep-plugin/index.html +472 -472
  8. package/cep-plugin/main.js +6 -0
  9. package/cep-plugin/premiere.jsx +24947 -24947
  10. package/dist/bridge/script-builder.js +378 -378
  11. package/dist/index.js +103 -4
  12. package/dist/license.js +38 -0
  13. package/dist/server.js +60 -60
  14. package/dist/tools/advanced.js +357 -357
  15. package/dist/tools/audio-advanced.js +1049 -1049
  16. package/dist/tools/audio.js +42 -42
  17. package/dist/tools/captions.js +27 -27
  18. package/dist/tools/clipboard.js +214 -214
  19. package/dist/tools/color-advanced.js +253 -253
  20. package/dist/tools/discovery.js +291 -291
  21. package/dist/tools/effects.js +285 -285
  22. package/dist/tools/export-presets.js +206 -206
  23. package/dist/tools/export.js +255 -255
  24. package/dist/tools/health.js +10 -10
  25. package/dist/tools/inspection.js +885 -885
  26. package/dist/tools/keyframes.js +369 -369
  27. package/dist/tools/markers.js +89 -89
  28. package/dist/tools/media.js +178 -178
  29. package/dist/tools/metadata.js +94 -94
  30. package/dist/tools/multicam.js +50 -50
  31. package/dist/tools/playback.js +15 -15
  32. package/dist/tools/playhead.js +95 -95
  33. package/dist/tools/project-manager.js +21 -21
  34. package/dist/tools/project.js +149 -149
  35. package/dist/tools/scripting.js +319 -319
  36. package/dist/tools/selection.js +202 -202
  37. package/dist/tools/sequence-advanced.js +379 -379
  38. package/dist/tools/sequence-settings.js +564 -564
  39. package/dist/tools/sequence.js +167 -167
  40. package/dist/tools/source-monitor.js +68 -68
  41. package/dist/tools/text.js +58 -58
  42. package/dist/tools/timeline.js +312 -312
  43. package/dist/tools/track-management.js +446 -446
  44. package/dist/tools/track-targeting.js +635 -635
  45. package/dist/tools/tracks.js +87 -87
  46. package/dist/tools/transitions-motion.js +174 -174
  47. package/dist/tools/transitions.js +111 -111
  48. package/dist/tools/utility.js +606 -606
  49. package/dist/tools/workspace.js +29 -29
  50. package/package.json +66 -66
  51. package/scripts/build-chat-dmg.sh +210 -210
  52. package/scripts/build-chat-zip.sh +291 -291
  53. package/scripts/install-cep-windows.ps1 +99 -99
  54. package/scripts/install-cep.sh +66 -66
  55. package/scripts/install-chat-plugin.bat +67 -67
  56. package/scripts/install-chat-plugin.sh +85 -85
  57. package/scripts/install-windows.bat +95 -95
  58. package/scripts/package.mjs +254 -254
@@ -6,24 +6,24 @@ export function getWorkspaceTools(bridgeOptions) {
6
6
  description: "List all available workspace layouts in Premiere Pro",
7
7
  parameters: {},
8
8
  handler: async () => {
9
- const script = buildToolScript(`
10
- var list = [];
11
- try {
12
- if (typeof app.getWorkspaces === "function") {
13
- var workspaces = app.getWorkspaces();
14
- if (workspaces) {
15
- for (var i = 0; i < workspaces.length; i++) {
16
- list.push(workspaces[i]);
17
- }
18
- return __result({ workspaces: list, count: list.length });
19
- }
20
- }
21
- } catch (e) {}
22
- return __result({
23
- workspaces: list,
24
- count: 0,
25
- note: "Workspace enumeration is not available in this Premiere Pro version (app.getWorkspaces is undocumented and unsupported here)."
26
- });
9
+ const script = buildToolScript(`
10
+ var list = [];
11
+ try {
12
+ if (typeof app.getWorkspaces === "function") {
13
+ var workspaces = app.getWorkspaces();
14
+ if (workspaces) {
15
+ for (var i = 0; i < workspaces.length; i++) {
16
+ list.push(workspaces[i]);
17
+ }
18
+ return __result({ workspaces: list, count: list.length });
19
+ }
20
+ }
21
+ } catch (e) {}
22
+ return __result({
23
+ workspaces: list,
24
+ count: 0,
25
+ note: "Workspace enumeration is not available in this Premiere Pro version (app.getWorkspaces is undocumented and unsupported here)."
26
+ });
27
27
  `);
28
28
  return sendCommand(script, bridgeOptions);
29
29
  },
@@ -41,17 +41,17 @@ export function getWorkspaceTools(bridgeOptions) {
41
41
  required: ["name"],
42
42
  },
43
43
  handler: async (args) => {
44
- const script = buildToolScript(`
45
- try {
46
- if (typeof app.setWorkspace !== "function") {
47
- return __error("Setting the workspace is not available in this Premiere Pro version (app.setWorkspace is undocumented and unsupported here).");
48
- }
49
- var result = app.setWorkspace("${escapeForExtendScript(args.name)}");
50
- if (result === false) return __error("Failed to set workspace: ${escapeForExtendScript(args.name)}");
51
- return __result({ set: true, workspace: "${escapeForExtendScript(args.name)}" });
52
- } catch (e) {
53
- return __error("Failed to set workspace '${escapeForExtendScript(args.name)}': " + (e && e.message ? e.message : e));
54
- }
44
+ const script = buildToolScript(`
45
+ try {
46
+ if (typeof app.setWorkspace !== "function") {
47
+ return __error("Setting the workspace is not available in this Premiere Pro version (app.setWorkspace is undocumented and unsupported here).");
48
+ }
49
+ var result = app.setWorkspace("${escapeForExtendScript(args.name)}");
50
+ if (result === false) return __error("Failed to set workspace: ${escapeForExtendScript(args.name)}");
51
+ return __result({ set: true, workspace: "${escapeForExtendScript(args.name)}" });
52
+ } catch (e) {
53
+ return __error("Failed to set workspace '${escapeForExtendScript(args.name)}': " + (e && e.message ? e.message : e));
54
+ }
55
55
  `);
56
56
  return sendCommand(script, bridgeOptions);
57
57
  },
package/package.json CHANGED
@@ -1,66 +1,66 @@
1
- {
2
- "name": "@synthetic-ai/premiere-mcp",
3
- "version": "2.1.0",
4
- "description": "MCP server for controlling Adobe Premiere Pro via CEP/ExtendScript β€” 437 tools for AI-driven video editing",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "bin": {
8
- "premiere-mcp": "dist/index.js"
9
- },
10
- "files": [
11
- "dist/**/*.js",
12
- "dist/**/*.d.ts",
13
- "cep-plugin",
14
- "scripts",
15
- "README.md",
16
- "LICENSE",
17
- "CHANGELOG.md"
18
- ],
19
- "scripts": {
20
- "build": "tsc",
21
- "dev": "tsc --watch",
22
- "start": "node dist/index.js",
23
- "start:http": "node dist/http-server.js",
24
- "test": "vitest run",
25
- "test:watch": "vitest",
26
- "test:coverage": "vitest run --coverage",
27
- "install-cep": "bash scripts/install-cep.sh"
28
- },
29
- "repository": {
30
- "type": "git",
31
- "url": "git+https://github.com/matiasEltrece/premiere-pro-mcp.git"
32
- },
33
- "homepage": "https://synthetic.com.ar",
34
- "bugs": {
35
- "url": "https://synthetic.com.ar"
36
- },
37
- "author": "Synthetic",
38
- "keywords": [
39
- "mcp",
40
- "model-context-protocol",
41
- "adobe",
42
- "premiere-pro",
43
- "video-editing",
44
- "ai",
45
- "extendscript",
46
- "cep",
47
- "claude",
48
- "windsurf",
49
- "cursor",
50
- "automation"
51
- ],
52
- "license": "MIT",
53
- "engines": {
54
- "node": ">=18.0.0"
55
- },
56
- "dependencies": {
57
- "@modelcontextprotocol/sdk": "^1.12.1",
58
- "zod": "^3.23.0"
59
- },
60
- "devDependencies": {
61
- "@types/node": "^22.10.0",
62
- "javascript-obfuscator": "^4.2.2",
63
- "typescript": "^5.7.0",
64
- "vitest": "^4.0.18"
65
- }
66
- }
1
+ {
2
+ "name": "@synthetic-ai/premiere-mcp",
3
+ "version": "2.3.0-dev.0",
4
+ "description": "MCP server for controlling Adobe Premiere Pro via CEP/ExtendScript \u00e2\u20ac\u201d 437 tools for AI-driven video editing",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "premiere-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist/**/*.js",
12
+ "dist/**/*.d.ts",
13
+ "cep-plugin",
14
+ "scripts",
15
+ "README.md",
16
+ "LICENSE",
17
+ "CHANGELOG.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc",
21
+ "dev": "tsc --watch",
22
+ "start": "node dist/index.js",
23
+ "start:http": "node dist/http-server.js",
24
+ "test": "vitest run",
25
+ "test:watch": "vitest",
26
+ "test:coverage": "vitest run --coverage",
27
+ "install-cep": "bash scripts/install-cep.sh"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/matiasEltrece/premiere-pro-mcp.git"
32
+ },
33
+ "homepage": "https://synthetic.com.ar",
34
+ "bugs": {
35
+ "url": "https://synthetic.com.ar"
36
+ },
37
+ "author": "Synthetic",
38
+ "keywords": [
39
+ "mcp",
40
+ "model-context-protocol",
41
+ "adobe",
42
+ "premiere-pro",
43
+ "video-editing",
44
+ "ai",
45
+ "extendscript",
46
+ "cep",
47
+ "claude",
48
+ "windsurf",
49
+ "cursor",
50
+ "automation"
51
+ ],
52
+ "license": "MIT",
53
+ "engines": {
54
+ "node": ">=18.0.0"
55
+ },
56
+ "dependencies": {
57
+ "@modelcontextprotocol/sdk": "^1.12.1",
58
+ "zod": "^3.23.0"
59
+ },
60
+ "devDependencies": {
61
+ "@types/node": "^22.10.0",
62
+ "javascript-obfuscator": "^4.2.2",
63
+ "typescript": "^5.7.0",
64
+ "vitest": "^4.0.18"
65
+ }
66
+ }
@@ -1,210 +1,210 @@
1
- #!/usr/bin/env bash
2
- # Build a macOS DMG for the Premiere Pro AI Chat plugin.
3
- # The DMG contains the plugin folder + an installer script.
4
-
5
- set -e
6
-
7
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
9
- PLUGIN_SRC="$PROJECT_ROOT/chat-plugin"
10
- BUILD_DIR="$PROJECT_ROOT/build"
11
- DMG_NAME="Premiere-Pro-AI-Chat"
12
- DMG_VOLUME="Premiere Pro AI Chat"
13
- VERSION="1.0.0"
14
-
15
- echo "========================================"
16
- echo " Building DMG: $DMG_NAME v$VERSION"
17
- echo "========================================"
18
- echo ""
19
-
20
- # Clean previous DMG staging (preserve other build artifacts)
21
- rm -rf "$BUILD_DIR/dmg-staging"
22
- mkdir -p "$BUILD_DIR/dmg-staging"
23
-
24
- STAGING="$BUILD_DIR/dmg-staging"
25
-
26
- # ---- Copy plugin files ----
27
- echo "Copying plugin files..."
28
- mkdir -p "$STAGING/Premiere Pro AI Chat.cep"
29
- cp -R "$PLUGIN_SRC/"* "$STAGING/Premiere Pro AI Chat.cep/"
30
- echo "βœ“ Plugin files copied"
31
-
32
- # ---- Create installer script inside DMG ----
33
- cat > "$STAGING/Install Plugin.command" << 'INSTALLER_EOF'
34
- #!/usr/bin/env bash
35
- # Premiere Pro AI Chat β€” One-click Installer
36
-
37
- set -e
38
-
39
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
40
- PLUGIN_NAME="com.ppro.ai.chat"
41
- PLUGIN_SRC="$SCRIPT_DIR/Premiere Pro AI Chat.cep"
42
- CEP_DIR="$HOME/Library/Application Support/Adobe/CEP/extensions"
43
-
44
- echo ""
45
- echo "╔══════════════════════════════════════════╗"
46
- echo "β•‘ Premiere Pro AI Chat β€” Installer β•‘"
47
- echo "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"
48
- echo ""
49
-
50
- # Verify source
51
- if [ ! -d "$PLUGIN_SRC" ]; then
52
- echo "βœ— Error: Plugin files not found."
53
- echo " Make sure you're running this from the DMG."
54
- exit 1
55
- fi
56
-
57
- # Create CEP directory
58
- mkdir -p "$CEP_DIR"
59
-
60
- # Remove old installation
61
- if [ -d "$CEP_DIR/$PLUGIN_NAME" ] || [ -L "$CEP_DIR/$PLUGIN_NAME" ]; then
62
- echo "Removing previous installation..."
63
- rm -rf "$CEP_DIR/$PLUGIN_NAME"
64
- fi
65
-
66
- # Copy plugin
67
- echo "Installing plugin..."
68
- cp -R "$PLUGIN_SRC" "$CEP_DIR/$PLUGIN_NAME"
69
- echo "βœ“ Plugin installed to: $CEP_DIR/$PLUGIN_NAME"
70
-
71
- # Enable unsigned extensions
72
- echo "Enabling unsigned CEP extensions..."
73
- for ver in 9 10 11 12; do
74
- defaults write com.adobe.CSXS.$ver PlayerDebugMode 1 2>/dev/null || true
75
- done
76
- echo "βœ“ Debug mode enabled"
77
-
78
- echo ""
79
- echo "════════════════════════════════════════════"
80
- echo " βœ“ Installation complete!"
81
- echo ""
82
- echo " Next steps:"
83
- echo " 1. Restart Premiere Pro (if running)"
84
- echo " 2. Go to: Window β†’ Extensions β†’ AI Chat"
85
- echo " 3. Enter your Claude or Gemini API key"
86
- echo " 4. Start chatting!"
87
- echo "════════════════════════════════════════════"
88
- echo ""
89
- echo "Press any key to close..."
90
- read -n 1 -s
91
- INSTALLER_EOF
92
-
93
- chmod +x "$STAGING/Install Plugin.command"
94
- echo "βœ“ Installer script created"
95
-
96
- # ---- Create README ----
97
- cat > "$STAGING/README.txt" << 'README_EOF'
98
- Premiere Pro AI Chat Plugin
99
- ============================
100
-
101
- An embedded AI chat panel for Adobe Premiere Pro.
102
- Control your edits with natural language using Claude or Gemini.
103
-
104
- INSTALLATION
105
- ============
106
-
107
- Option 1: Double-click "Install Plugin.command"
108
- - This will copy the plugin to your Adobe CEP extensions folder
109
- - It will enable unsigned extensions automatically
110
-
111
- Option 2: Manual Install
112
- - Copy the "Premiere Pro AI Chat.cep" folder to:
113
- ~/Library/Application Support/Adobe/CEP/extensions/com.ppro.ai.chat
114
- - Enable unsigned extensions by running in Terminal:
115
- defaults write com.adobe.CSXS.11 PlayerDebugMode 1
116
-
117
- USAGE
118
- =====
119
-
120
- 1. Open Premiere Pro
121
- 2. Go to: Window β†’ Extensions β†’ AI Chat
122
- 3. Choose Claude or Gemini as your AI provider
123
- 4. Enter your API key
124
- 5. Start chatting! The AI can:
125
- - Query your project (clips, sequences, tracks)
126
- - Edit your timeline (add clips, effects, transitions)
127
- - Export sequences
128
- - And much more
129
-
130
- REQUIREMENTS
131
- ============
132
-
133
- - macOS 10.14+
134
- - Adobe Premiere Pro 2020 (v14.0) or later
135
- - Claude API key (console.anthropic.com) or
136
- Gemini API key (aistudio.google.com)
137
-
138
- SUPPORT
139
- =======
140
-
141
- GitHub: https://github.com/ppmcp/premiere-pro-mcp
142
- Issues: https://github.com/ppmcp/premiere-pro-mcp/issues
143
- README_EOF
144
-
145
- echo "βœ“ README created"
146
-
147
- # ---- Create Uninstaller ----
148
- cat > "$STAGING/Uninstall Plugin.command" << 'UNINSTALL_EOF'
149
- #!/usr/bin/env bash
150
- set -e
151
-
152
- PLUGIN_NAME="com.ppro.ai.chat"
153
- CEP_DIR="$HOME/Library/Application Support/Adobe/CEP/extensions"
154
-
155
- echo ""
156
- echo "Uninstalling Premiere Pro AI Chat..."
157
-
158
- if [ -d "$CEP_DIR/$PLUGIN_NAME" ] || [ -L "$CEP_DIR/$PLUGIN_NAME" ]; then
159
- rm -rf "$CEP_DIR/$PLUGIN_NAME"
160
- echo "βœ“ Plugin removed."
161
- else
162
- echo "Plugin not found β€” nothing to remove."
163
- fi
164
-
165
- echo ""
166
- echo "Press any key to close..."
167
- read -n 1 -s
168
- UNINSTALL_EOF
169
-
170
- chmod +x "$STAGING/Uninstall Plugin.command"
171
- echo "βœ“ Uninstaller created"
172
-
173
- # ---- Build DMG ----
174
- echo ""
175
- echo "Building DMG..."
176
-
177
- DMG_PATH="$BUILD_DIR/$DMG_NAME-v$VERSION.dmg"
178
- TEMP_DMG="$BUILD_DIR/temp.dmg"
179
-
180
- # Create a temporary DMG
181
- hdiutil create -srcfolder "$STAGING" \
182
- -volname "$DMG_VOLUME" \
183
- -format UDRW \
184
- -fs HFS+ \
185
- -size 20m \
186
- "$TEMP_DMG" \
187
- -quiet
188
-
189
- # Convert to compressed read-only DMG
190
- hdiutil convert "$TEMP_DMG" \
191
- -format UDZO \
192
- -imagekey zlib-level=9 \
193
- -o "$DMG_PATH" \
194
- -quiet
195
-
196
- rm -f "$TEMP_DMG"
197
-
198
- echo "βœ“ DMG built: $DMG_PATH"
199
-
200
- # Get file size
201
- DMG_SIZE=$(du -h "$DMG_PATH" | cut -f1 | xargs)
202
-
203
- echo ""
204
- echo "========================================"
205
- echo " βœ“ Build complete!"
206
- echo ""
207
- echo " File: $DMG_PATH"
208
- echo " Size: $DMG_SIZE"
209
- echo "========================================"
210
- echo ""
1
+ #!/usr/bin/env bash
2
+ # Build a macOS DMG for the Premiere Pro AI Chat plugin.
3
+ # The DMG contains the plugin folder + an installer script.
4
+
5
+ set -e
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
9
+ PLUGIN_SRC="$PROJECT_ROOT/chat-plugin"
10
+ BUILD_DIR="$PROJECT_ROOT/build"
11
+ DMG_NAME="Premiere-Pro-AI-Chat"
12
+ DMG_VOLUME="Premiere Pro AI Chat"
13
+ VERSION="1.0.0"
14
+
15
+ echo "========================================"
16
+ echo " Building DMG: $DMG_NAME v$VERSION"
17
+ echo "========================================"
18
+ echo ""
19
+
20
+ # Clean previous DMG staging (preserve other build artifacts)
21
+ rm -rf "$BUILD_DIR/dmg-staging"
22
+ mkdir -p "$BUILD_DIR/dmg-staging"
23
+
24
+ STAGING="$BUILD_DIR/dmg-staging"
25
+
26
+ # ---- Copy plugin files ----
27
+ echo "Copying plugin files..."
28
+ mkdir -p "$STAGING/Premiere Pro AI Chat.cep"
29
+ cp -R "$PLUGIN_SRC/"* "$STAGING/Premiere Pro AI Chat.cep/"
30
+ echo "βœ“ Plugin files copied"
31
+
32
+ # ---- Create installer script inside DMG ----
33
+ cat > "$STAGING/Install Plugin.command" << 'INSTALLER_EOF'
34
+ #!/usr/bin/env bash
35
+ # Premiere Pro AI Chat β€” One-click Installer
36
+
37
+ set -e
38
+
39
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
40
+ PLUGIN_NAME="com.ppro.ai.chat"
41
+ PLUGIN_SRC="$SCRIPT_DIR/Premiere Pro AI Chat.cep"
42
+ CEP_DIR="$HOME/Library/Application Support/Adobe/CEP/extensions"
43
+
44
+ echo ""
45
+ echo "╔══════════════════════════════════════════╗"
46
+ echo "β•‘ Premiere Pro AI Chat β€” Installer β•‘"
47
+ echo "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"
48
+ echo ""
49
+
50
+ # Verify source
51
+ if [ ! -d "$PLUGIN_SRC" ]; then
52
+ echo "βœ— Error: Plugin files not found."
53
+ echo " Make sure you're running this from the DMG."
54
+ exit 1
55
+ fi
56
+
57
+ # Create CEP directory
58
+ mkdir -p "$CEP_DIR"
59
+
60
+ # Remove old installation
61
+ if [ -d "$CEP_DIR/$PLUGIN_NAME" ] || [ -L "$CEP_DIR/$PLUGIN_NAME" ]; then
62
+ echo "Removing previous installation..."
63
+ rm -rf "$CEP_DIR/$PLUGIN_NAME"
64
+ fi
65
+
66
+ # Copy plugin
67
+ echo "Installing plugin..."
68
+ cp -R "$PLUGIN_SRC" "$CEP_DIR/$PLUGIN_NAME"
69
+ echo "βœ“ Plugin installed to: $CEP_DIR/$PLUGIN_NAME"
70
+
71
+ # Enable unsigned extensions
72
+ echo "Enabling unsigned CEP extensions..."
73
+ for ver in 9 10 11 12; do
74
+ defaults write com.adobe.CSXS.$ver PlayerDebugMode 1 2>/dev/null || true
75
+ done
76
+ echo "βœ“ Debug mode enabled"
77
+
78
+ echo ""
79
+ echo "════════════════════════════════════════════"
80
+ echo " βœ“ Installation complete!"
81
+ echo ""
82
+ echo " Next steps:"
83
+ echo " 1. Restart Premiere Pro (if running)"
84
+ echo " 2. Go to: Window β†’ Extensions β†’ AI Chat"
85
+ echo " 3. Enter your Claude or Gemini API key"
86
+ echo " 4. Start chatting!"
87
+ echo "════════════════════════════════════════════"
88
+ echo ""
89
+ echo "Press any key to close..."
90
+ read -n 1 -s
91
+ INSTALLER_EOF
92
+
93
+ chmod +x "$STAGING/Install Plugin.command"
94
+ echo "βœ“ Installer script created"
95
+
96
+ # ---- Create README ----
97
+ cat > "$STAGING/README.txt" << 'README_EOF'
98
+ Premiere Pro AI Chat Plugin
99
+ ============================
100
+
101
+ An embedded AI chat panel for Adobe Premiere Pro.
102
+ Control your edits with natural language using Claude or Gemini.
103
+
104
+ INSTALLATION
105
+ ============
106
+
107
+ Option 1: Double-click "Install Plugin.command"
108
+ - This will copy the plugin to your Adobe CEP extensions folder
109
+ - It will enable unsigned extensions automatically
110
+
111
+ Option 2: Manual Install
112
+ - Copy the "Premiere Pro AI Chat.cep" folder to:
113
+ ~/Library/Application Support/Adobe/CEP/extensions/com.ppro.ai.chat
114
+ - Enable unsigned extensions by running in Terminal:
115
+ defaults write com.adobe.CSXS.11 PlayerDebugMode 1
116
+
117
+ USAGE
118
+ =====
119
+
120
+ 1. Open Premiere Pro
121
+ 2. Go to: Window β†’ Extensions β†’ AI Chat
122
+ 3. Choose Claude or Gemini as your AI provider
123
+ 4. Enter your API key
124
+ 5. Start chatting! The AI can:
125
+ - Query your project (clips, sequences, tracks)
126
+ - Edit your timeline (add clips, effects, transitions)
127
+ - Export sequences
128
+ - And much more
129
+
130
+ REQUIREMENTS
131
+ ============
132
+
133
+ - macOS 10.14+
134
+ - Adobe Premiere Pro 2020 (v14.0) or later
135
+ - Claude API key (console.anthropic.com) or
136
+ Gemini API key (aistudio.google.com)
137
+
138
+ SUPPORT
139
+ =======
140
+
141
+ GitHub: https://github.com/ppmcp/premiere-pro-mcp
142
+ Issues: https://github.com/ppmcp/premiere-pro-mcp/issues
143
+ README_EOF
144
+
145
+ echo "βœ“ README created"
146
+
147
+ # ---- Create Uninstaller ----
148
+ cat > "$STAGING/Uninstall Plugin.command" << 'UNINSTALL_EOF'
149
+ #!/usr/bin/env bash
150
+ set -e
151
+
152
+ PLUGIN_NAME="com.ppro.ai.chat"
153
+ CEP_DIR="$HOME/Library/Application Support/Adobe/CEP/extensions"
154
+
155
+ echo ""
156
+ echo "Uninstalling Premiere Pro AI Chat..."
157
+
158
+ if [ -d "$CEP_DIR/$PLUGIN_NAME" ] || [ -L "$CEP_DIR/$PLUGIN_NAME" ]; then
159
+ rm -rf "$CEP_DIR/$PLUGIN_NAME"
160
+ echo "βœ“ Plugin removed."
161
+ else
162
+ echo "Plugin not found β€” nothing to remove."
163
+ fi
164
+
165
+ echo ""
166
+ echo "Press any key to close..."
167
+ read -n 1 -s
168
+ UNINSTALL_EOF
169
+
170
+ chmod +x "$STAGING/Uninstall Plugin.command"
171
+ echo "βœ“ Uninstaller created"
172
+
173
+ # ---- Build DMG ----
174
+ echo ""
175
+ echo "Building DMG..."
176
+
177
+ DMG_PATH="$BUILD_DIR/$DMG_NAME-v$VERSION.dmg"
178
+ TEMP_DMG="$BUILD_DIR/temp.dmg"
179
+
180
+ # Create a temporary DMG
181
+ hdiutil create -srcfolder "$STAGING" \
182
+ -volname "$DMG_VOLUME" \
183
+ -format UDRW \
184
+ -fs HFS+ \
185
+ -size 20m \
186
+ "$TEMP_DMG" \
187
+ -quiet
188
+
189
+ # Convert to compressed read-only DMG
190
+ hdiutil convert "$TEMP_DMG" \
191
+ -format UDZO \
192
+ -imagekey zlib-level=9 \
193
+ -o "$DMG_PATH" \
194
+ -quiet
195
+
196
+ rm -f "$TEMP_DMG"
197
+
198
+ echo "βœ“ DMG built: $DMG_PATH"
199
+
200
+ # Get file size
201
+ DMG_SIZE=$(du -h "$DMG_PATH" | cut -f1 | xargs)
202
+
203
+ echo ""
204
+ echo "========================================"
205
+ echo " βœ“ Build complete!"
206
+ echo ""
207
+ echo " File: $DMG_PATH"
208
+ echo " Size: $DMG_SIZE"
209
+ echo "========================================"
210
+ echo ""