# Run script on Designer launch?

**URL:** <https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827>\
**Category:** Ignition\
**Created:** [June 3, 2026, 2:35pm UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827 "2026-06-03T14:35:14Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [June 3, 2026, 2:35pm UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/1 "2026-06-03T14:35:14Z")

</div>

I'm developing some dev tools to use in the Designer in Java and i'm trying to get it to run a function when the designer first launches so that I can add an icon button to the toolbar to launch my dev tools, rather than having to run it manually through the script console, but not sure how to do it...

Possible?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 3, 2026, 2:41pm UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/2 "2026-06-03T14:41:35Z")

</div>

I have a `@system.util.runInClient` decorator in an upcoming toolkit release that you could leverage to do this. Basically, the inverse of `@..runInGateway`, but can target specific client IDs. You'd use a gateway timer event to keep track of designer session IDs, and fire a target function for each new session.

Soon. 😁

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 3, 2026, 11:00pm UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/3 "2026-06-03T23:00:55Z")

</div>

Sure, just write a module 😃

I actually think I've convinced myself I want to add some project library script hooks that run in the designer - I was thinking of things like running tests/linting, but it could probably be extended to cover this too.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 4, 2026, 2:13am UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/4 "2026-06-04T02:13:35Z")

</div>

> [@paul-griffith](#):
>
> project library script hooks

I mulled that approach, too, but `runInClient` offers an effective superset of features possible. Just a bit of extra jython glue. Of particular note is that, like `runScript`, the designer's preview vs. design mode is ignored. As well as working without the need of a client message handler, which won't work in the designer at all.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [June 4, 2026, 2:30am UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/5 "2026-06-04T02:30:42Z")

</div>

This is trivial if you have the Vision module installed. Here's the approach I developed for adding functionality to my designer: [Run script at designer startup](https://forum.inductiveautomation.com/t/component-scripting-window-default-size/68548/16)

I use this for quite a few things that improve my design environment to include adding an icon button to the script editors and adding additional options to the tool bar dropdowns.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 4, 2026, 3:58am UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/6 "2026-06-04T03:58:21Z")

</div>

> [@justinedwards.jle](#):
>
> if you have the Vision module

I'll have to test my `runInClient` decorator in the absence of Vision.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [June 4, 2026, 6:50am UTC](https://forum.inductiveautomation.com/t/run-script-on-designer-launch/115827/7 "2026-06-04T06:50:56Z")

</div>

I considered going down the module path, but I want them to be accessible to more projects, and installing a module seemed less so given you need to restart the gateway to install them, and also restart all vision clients and designers. You might want to use them ad-hoc including on-site, so I settled on just a collection of script libraries.

> [@justinedwards.jle](#):
>
> Here's the approach I developed for adding functionality to my designer: [Run script at designer startup](https://forum.inductiveautomation.com/t/component-scripting-window-default-size/68548/16)

I actually thought I'd seen this post before as I remembered you talking about dark mode around the same time. It'd be nice not to need vision installed, but this looks easy at least! I'll go with this method for now, cheers
