The kabaret.script_view package let you add a "Script View" to your GUI sessions.
The executed script can use self as the current object (selected by the view navigation bar or drag'n'drop from another view).
Every relations and methods defined in the current object are usable there so you can inspect and edit your project's Objects as well batch run anything.
Did you ever dream about writing something like this ?
[ shot.anim.bake() for shot in self.shots if shot.lighting.status.get() == 'Waiting' ]