Skip to content

Full PremiereRemote UXP Rewrite - #44

Draft
sebinside wants to merge 79 commits into
mainfrom
uxp
Draft

sebinside wants to merge 79 commits into
mainfrom
uxp

Conversation

@sebinside

@sebinside sebinside commented Jun 22, 2026 •

Copy link
Copy Markdown
Owner

This PR contains a full rewrite of PremiereRemote from scratch to support the modern UXP environment. This means a full replacement of any PremiereRemote logic, basically a new product.

New architecture, new Premiere API, more usage possibilities. Supporting HTTP, WS, and MCP servers. This PR is finished once the client/server architecture has been implemented and documented. Detailed action implementations will follow in a subsequent PR.

Progress:

  • Build & Generator for UXP actions
    • ts-morph-based action scanner
    • OpenAPI spec generation
    • Registry generation w/ param validation
    • Tests
  • UXP Plugin / Client
    • Project Setup
    • Panel UI (status dots, counters)
    • WS client
    • Tests
  • Server & Interfaces
    • HTTP server with Swagger UI
    • WS Server
    • MCP server
    • WS bridge to UXP
  • DevOps & Tooling
    • Dockerfile, compose, devcontainer
    • Docker smoke test
    • GitHub Actions CI
    • Dependabot
  • Human Review
    • Client code (first pass)
    • Server code
    • Client code (second pass)
    • Client tests
    • Server tests
    • e2e tests
  • Finalization
    • Fix bug: Server nodemon should restart server when new function is registered in openapi.json
    • Add sync utilities to copy mounted client build folder from WSL to a windows dir (which is then added to UXP Tools)
    • Plugin UI should show last/next reconnection attempt when being disconnected
    • Minimal production-ready actions (complete implementation follows in a separate PR)
    • New README showing the new capablities + linking legacy CEP version of PremiereRemote
    • User instructions, getting started, installation and usage instructions (WSL+Docker, Docker, manual)
    • Developer instructions for quick debugging and also manual and skill-based action implementation
    • Real E2E test against running Premiere (offline-only)
    • Investigate root-level monorepo build script (package.json at repo root missing)

@sebinside sebinside changed the title UXP Rewrite Full PremiereRemote UXP Rewrite Sep 18, 2026
@sebinside

Copy link
Copy Markdown
Owner Author

@Tomshiii Besides a lot of missing documentation, some human review, and some finalization and quality of life improvements (see progress list in the PR description) the new implementation in this PR is ready to be used already. All servers (HTTP with swagger, WS, and MCP) are functional. With half-decent AI-support, this should already be totally usable. Just tested it against Premiere 26.5.1.

@Tomshiii

Copy link
Copy Markdown

I should be able to have a play around next week. I'll let you know how I go 🫡

@Tomshiii

Tomshiii commented Sep 22, 2026 •

Copy link
Copy Markdown

Have been able to get it up and running on two machines without a hitch (also 26.5.1). I'll keep using it and keep my eyes open but so far so good.

Additionally I wanted to recommend a change to the usage instructions (for when you get that far) - at least for the ahk portion.
Instead of only showing a curl using run, ie;

Run('curl "http://localhost:8081/isPanelOpen"')

I think it would be beneficial to also show usage using a comobject;

v := httpGet("http://localhost:8081/isPanelOpen")

httpGet(url) {
    static cobj := ComObject("WinHttp.WinHttpRequest.5.1")
    cobj.Open("GET", url, false)
    cobj.Send()
    return cobj.ResponseText
}

I say this for two reasons;

  1. this way the user can quite easily get the response back from the extension (which I think is somewhat glossed over currently)
  2. doing it this way is much faster than trying to retrieve the response back from a spawned curl process using something like a named pipe - knocked 40-50ms off for me and ultimately requires far less code. (obvs won't have any noticeable difference in the two examples above)

Just wanted to send that over as a consideration! I figured it might be useful to those that aren't aware of how to retrieve a response back using ahk but having the ability to do so obviously opens up a lot more possibilities in scripting things together.

Thank you as always, this has come together great so far

edit: also, random question, is installing via a ccx ever going to be possible? or does the whole docker situation make it a bit too complicated?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants