Repository navigation
Releases: Brainferno/brainferno-mcp-bridge
Release list
v0.3.3
- Doc-drift guard (X-03):
tool-counts.test.tscounts the live tool registry under the
default config and fails, printing the right number, when a tool count inREADME.mdor
docs/HANDOFF.mddisagrees. Fixed the stale counts it caught (After Effects 33 → 34, total
124 → 127, and the per-prefix table), plus a stale env-var name and handshake path in the
spike docs and a done item inBUILD_PLAN.md. - After Effects test coverage (X-03): every exported script builder is now classified
(read-only / undo-wrapped / app-level), so a new mutating tool can't silently skip the
__undoand ES3 checks;ae_queue_rendermoved from an inline script to the exported
queueRenderScriptbuilder so it joins those checks. - Repo guide (G1): added
CLAUDE.md— a short front-door note (commands, non-negotiables,
where the spikes/quirks/feature-requests live) that importsCONTRIBUTING.mdand
docs/HANDOFF.md. Added thedocs/feature-requests/pack (one prompt file per feature,
starting from00_PREAMBLE.md). CONTRIBUTING.mdbrought in line with the code (G2): script values go through
jsStringLiteral(with the U+2028/U+2029 note), the actual-message error contract (no
planned code prefix),timeoutClass+runOrQueue/cc_job_waitfor long work, the two
deliberate tool gates (raw-script escape hatches, Illustrator delegate), and a note that
tool-counts.test.tsenforces the counts.- Durable quirks moved into the repo (G4): five notes under
docs/quirks/— AE layer styles,
AE mogrt export, AE PSD/AI import, AE shapes/masks, and panel packaging — so every clone
carries the hard-won gotchas instead of them living only in one machine's memory. CLAUDE.mdaccuracy (G8): the workspace list was missing thebridge-clientpackage; added
it (found via theclaude-md-improveraudit).
Install: npm install -g brainferno-mcp-bridge@0.3.3 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.3.3
v0.3.2
- After Effects
ae_add_shape: create a shape layer with a parametric rectangle, ellipse,
star, or polygon plus an optional fill and stroke (hex colors, stroke width, corner
roundness, star/polygon points and radii). Verified live. - After Effects
ae_add_mask: add a rectangle or ellipse mask to a layer in the layer's
coordinates, with mode (add/subtract/intersect/lighten/darken/difference/none), feather,
opacity, and expansion; ellipse masks use proper bezier handles. Verified live. (Solids
and text layers were already available viaae_add_layer.)
Install: npm install -g brainferno-mcp-bridge@0.3.2 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.3.2
v0.3.1
- Codex CLI and Gemini CLI are first-class clients. The installer registers the
server with every MCP client CLI it finds (Claude Code, Codex CLI, Gemini CLI; filter
with--clients), each with the env defaults that suit it. Three new env vars carry
the differences:BRAINFERNO_MCP_DEFAULT_WAIT(false = long tools return a jobId at
once, for Codex's 60-second tool timeout — the advertisedwaitparameter now states
the live default),BRAINFERNO_MCP_PREVIEW(pathreturns previews as file paths for
clients that cannot show the model images;inline,both), and
BRAINFERNO_MCP_JOB_WAIT_SECONDS(the defaultcc_job_waittimeout, set to 50 for
Codex so each poll returns inside its limit). Claude Code keeps exactly the old
behavior. In shared mode the installer prints per-client connection snippets — Codex
reads the bearer token from an env var, Gemini from a headers block. - Panel versions can no longer drift.
npm run panels:stampwrites the package
version into the three panel manifests and each panel'sPANEL_VERSION, and a test
fails when a bump forgets it. v0.3.0 shipped with its panels still reporting 0.2.0
(Photoshop, After Effects/Audition) and 0.1.0 (Premiere); from this release on they
carry the package version.
Found while building a lower-third .mogrt skill end to end (Illustrator → Photoshop →
After Effects → Premiere):
- After Effects
ae_apply_effecttakes an optionalnameand renames the effect once
applied. Essential Graphics labels a control with its effect name, so a Slider Control
namedSpeednow shows as "Speed" in Premiere instead of "Slider Control". - After Effects
ae_import_as_comptakes optionaldurationandframeRate. Without them
the imported comp came in at the project default (241 s) and every layer with it.
Giving a duration also trims the layers to it, so outPoint-anchored outros land at the end. - New After Effects tool
ae_set_comp_props: name, duration, frameRate, width, height on an
existing comp; a shorter duration trims layers the same way. - After Effects
ae_add_layer(text) andae_set_texttakeanchor: "center" | "origin".
The default keeps the anchor at the text's visual centre;originleaves it at [0, 0] so
position is the left baseline — what a left-justified lower third wants. (Before, text
placed by its left edge rendered half its width too far left.) - After Effects
ae_add_layer_styleretries the Layer Styles menu command up to three times
with a short pause, reselecting the layer each time. Seen live: the command did not take
when other scripts were queued behind it and the tool failed with "menu command did not
take". - Known limit, not fixed: Premiere
pp_set_effect_paramcannot set a .mogrt text field
(Graphic Parameters→ text control); the UXP API rejects strings ("Illegal Parameter
type") and reads the value back as null. Numbers (sliders) work.
Install: npm install -g brainferno-mcp-bridge@0.3.1 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.3.1
v0.3.0
- After Effects
ae_import_as_comp: import a layered Photoshop (.psd) or Illustrator (.ai)
file as a composition — each source layer becomes its own AE layer, keeping blend modes,
positions, and (for PSD) editable layer styles.croppedchooses Composition - Cropped
Layers. Verified live: a PSD came in as three layers with its drop shadow editable in AE.
(Illustrator maps top-level layers to AE layers, so put objects on separate layers to keep
them separate; the file must be RGB and saved PDF-compatible.) - After Effects Essential Graphics:
ae_add_to_essential_graphicsexposes a layer property
(transform channel, a text layer's source text, or any property via propertyPath) as a
control, andae_export_mogrtexports the composition as a Motion Graphics template
(.mogrt). Verified live against AE 26.3. - Photoshop gradient overlay:
ps_set_layer_stylenow takesstyle: "gradientOverlay"with
colors(two or more hex stops),gradientStyle(linear/radial/angle/reflected/diamond),
angle,scale,reverse,alignWithLayer, anddither. - After Effects
ae_set_expressionnow rolls the property back to its previous expression
when the new one fails to compile (it used to leave the broken source assigned). - Layer styles for Photoshop and After Effects. Photoshop:
ps_set_layer_style(add or edit
a drop shadow, inner shadow, glow, bevel & emboss, satin, color overlay, or stroke — other
styles on the layer are kept),ps_get_layer_styles,ps_remove_layer_style. After
Effects:ae_add_layer_style,ae_set_layer_style_param,ae_get_layer_styles,
ae_remove_layer_style— friendly names map to AE's match names (satin →chromeFX,
colorOverlay →solidFill, stroke →frameFX). - New Premiere Pro tool
pp_insert_mogrt: drop a Motion Graphics template (.mogrt) on the
timeline at a time, like dragging it from the Essential Graphics panel. Without
videoTrackIndexit lands on the first track above every video clip playing at that time,
so the graphic sits over the picture.
Install: npm install -g brainferno-mcp-bridge@0.3.0 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.3.0
v0.2.2
- The server reported itself as 0.1.0 to every MCP client and every panel, whatever
version was actually installed — the string was typed out in four files and never bumped,
so a 0.2.1 install still announcedserverInfo: 0.1.0and the panels logged
welcome: server 0.1.0. It now comes frompackage.jsonat runtime, in one place, and a
test fails the build if a literal version reappears in the source. Found by installing
0.2.1 from npm and speaking MCP to it. - The Photoshop and After Effects/Audition panel manifests claimed 0.1.0 while the panels
themselves reported 0.2.0; each manifest now matches the panel it describes.
Install: npm install -g brainferno-mcp-bridge@0.2.2 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.2.2
v0.2.1
Housekeeping on top of 0.2.0: no new tools, nothing changed for an existing Windows or macOS
install.
- The installer now checks the platform before it does anything and exits saying that the
Adobe applications this bridge drives run on Windows and macOS only. Previously it worked
partway through and invented acep-extensions-unsupportedfolder under the user's home;
pp_list_export_presetslikewise stopped offering a~/Documents/Adoberoot on platforms
where Adobe cannot be installed. npm publishno longer warns that thebinentries were "invalid and removed" — the paths
lost their./prefix, which is the rewrite npm was doing silently. Both commands worked
before and still do; the warning was noise on every release.- Documentation names Windows and macOS as the supported platforms throughout, and the README
status line and hand-off notes catch up with the 0.2 release.
Install: npm install -g brainferno-mcp-bridge@0.2.1 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.2.1
v0.2.0
macOS brought up and verified live (Adobe 2026 apps). Windows behaviour is unchanged; CI now
runs the suite on macOS as well as Ubuntu and Windows. Details: docs/spikes/13-macos-live.md.
- After Effects: fixed the
aerenderpath on macOS —Folder.appPackageis the.app
bundle itself there, andaerendersits beside it.ae_render_compand the render pipelines
failed with "aerender not found" before. - Media Encoder on macOS: find the console inside its nested bundle; read (and create)
ame_webservice_config.iniin the app bundle'sContents/Resources, which is the only place
the console looks — Adobe ships none, so the service used to start and never listen. The
installer writes the file through Finder, since macOS "App Management" refuses bundle writes
even undersudo, andame_servernow fails fast naming the path instead of timing out. - Media Encoder on macOS: stop the hidden renderer the service starts. It runs in its own
process group, so the previous group kill missed it and every idle stop leaked one; the driver
now tracks only the renderer it caused and never touches an instance that was already running. - Illustrator on macOS: pick which Illustrator the
ai_*tools drive. The release and the
Beta both ship a bundle namedAdobe Illustrator.app, so an AppleScript name followed whichever
was running. NewillustratorAppconfig /BRAINFERNO_MCP_ILLUSTRATOR_APPaccepts a name,
bundle id or.apppath; the installer detects both and asks. - Bridge: the handshake file is no longer deleted by a second server instance that does not
own it, and a server taking it over from a live one says so in the log. Panels reloading after
an unrelated instance exited used to find no handshake at all.
Install: npm install -g brainferno-mcp-bridge@0.2.0 then brainferno-mcp-bridge-install.
npm: https://www.npmjs.com/package/brainferno-mcp-bridge/v/0.2.0
v0.1.0 — first public release
Changelog
v0.1.0 — 2026-08-28
First public release.
- MCP server (stdio; optional token-protected Streamable HTTP for other computers) with a
hardened loopback hub for the in-app panels. - Panels: Photoshop and Premiere Pro (UXP), After Effects and Audition (CEP), each with a
live log and a kill switch. - Tools: Photoshop 18 · After Effects 24 · Premiere Pro 28 · Illustrator 7 (+ pass-through to
Adobe's 46 Illustrator MCP tools) · Audition 12 · Media Encoder 6 (headless web service) ·
audio/ffmpeg 9 · pipelines 4 · jobs 4. - Job registry with progress, cancel, per-job work folders, and failure reports naming the
step and its recovery tool. - Installer: choose apps, local vs shared-on-network, Illustrator key, panel setup, Claude
Code registration. - Verified live on Windows 11 with the Adobe 2026 applications; macOS paths written but not yet
run.