Introducing ConsoleTools – a Lua framework to make Dorico scripts more accessible

As some may be aware, I have explored Dorico’s Lua capabilites in depth over the years. And to get the most out of scripting, I sometimes had to become creative, given its known limitations. A number of the approaches that I came up with seemed to lend themselves to be used generically, if only they were packaged in a way that made this possible.

So, I recently took the time to do just that – the result is the ConsoleTools Lua framework.

Succinctly put, it is a way of making Lua scripts accessible in a flexible and versatile way.

Among other things, it makes it possible:

  • to use scripts via keycommands¹ in a variety of ways
  • to conveniently re-arrange script-to-keycommand allocations on the fly, for example with workflow-dependent profiles
  • to organise and document scripts according to a user’s needs
  • to use scripts like Lua functions via the console, and to pass arguments to them
  • to use several instances of the same script, with different parameters, which can considerably increase the usefulness of an otherwise trivial script

It also includes a small auxiliary library aimed at facilitating script development and making custom scripts take advantage of the framework’s strengths.

What ConsoleTools is NOT capable of is getting around the current limitations of scripting. It does not have meaningful access to data from Dorico, because that kind of access simply does not exist for the Lua environment.

Nonetheless, I am confident that using ConsoleTools can make you use Dorico’s Lua scripting in a much more powerful way. Whether you just want to use scripts more, or you write Lua scripts for Dorico yourself, the framework offers a variety of tried approaches for doing that more conveniently.

ConsoleTools is available as a full version, for purchase, and as a limited free version. The differences between the versions are listed more fully in this overview document:
ConsoleTools – Overview.pdf (146.8 KB)

The framework comes with a tutorial for getting to know the basic functionality. While it is best experienced with the framework installed, you can read about what it does in this excerpt from the documentation:
ConsoleTools Tutorial (excerpt from user manual).pdf (237.5 KB)

The two versions of ConsoleTools, as well as its complete documentation, are available on my website.

Please note: to my ongoing frustration, there currently remain problems with the webshop that I ended up using for distribution. This means that you might receive a download link that fails to give you access to your files. In such a case, send me an email to the address that should be given in the same message that contained the defective link. I will then usually send you a replacement link within 24 hours.

If ConsoleTools did pique your interest, I would be delighted if you gave the free version a try. For feedback or further questions, feel free to contact me here, or via direct message.

¹ some JSON editing is involved in setting this up, which is facilitated during installation and explained in the user manual.


The Overview (PDF ) link on your website doesn’t work.

Sounds really interesting! Will check ist soon.

Habe die limitierte Version “gekauft”, der Download-Link in der E-Mail triggert aber keinen Download:

My apologies to everyone waiting for a valid download link – there seems to be some kind of problem with the settings of the online shop.

It’s the first time that I use such a system, so I have to investigate what is going on. I’ll look into it and hope to have it sorted out within the day.

Hope so - it is still not working. Not clear to me if this incorporates some form of LUA ide or not. Also not clear if the language in the tool itself of any interface aspects is in English or German.

Once more my aplogies to anyone who experienced problems with their order. I have sent out emails with replacement links which hopefully should enable you to start your download.

For the time being, I have disabled the automatic fulfillment of orders, meaning that I will handle each order manually for now. This also means that you may have to wait up to 24 hours until you receive a link.

ConsoleTools does not include an IDE. However, the included example lua scripts demonstrate ways of how to emulate script use in an external Lua environment, for development and testing. I myself do my development work mostly within the SciTE editor.

With the full version, tools will always be reloaded from their source files, so any ad hoc changes to tool scripts will take effect immediately. This makes it possible to work on scripts in an outside editor, and test the result in Dorico right away.

The interface of the framework is currently in English.

Technically, users can set a preferred language in the initialisation file (initialiseConsoletools.lua). In practise, however, this is a bit pointless right now: while, under the hood, there is a mechanism ready to change the language of the interface, I didn’t include any actual translations. But if there is demand in the future, it would be relatively simple to make the interface available in another language.

The preferred language would already apply for documentation of tools, if developers included translations.

Any news on this? Do I need a new download link?

You should have received an email yesterday. Maybe it went to the spam folder? In any case, I’ll send you a PM with the link.

Alex, would it be possible with this, perhaps with Dorico’s improved Scripting functionality, to create a script to export the current layout to a specified folder path? I know we tried our hand at it before and it didn’t work reliably. Just curious as to whether this would make it possible now.

[Answered via PM]

FYI Notepad++ supports the Lui script. I haven’t tried it yet, but I may give it a ride.