The Python console can actually allow you to do that in a couple lines of screen directly, without creating a script -
for img in gimp.image_list():
img.scale(int(img.width * 0.66), int(img.height*0.66))
tmp = pdb.gimp_image_duplicate(img)
pdb.gimp_image_merge_visible_layers(tmp, CLIP_TO_IMAGE)
pdb.gimp_file_save(tmp, tmp.layers[0], img.filename, img.filename)
pdb.gimp_image_delete(tmp)
What takes more line than it should is that GIMP really wants to "save" the image as is - so, one needs the steps of duplicating (internally), merging to a single layer, and deleting (just removing it from GIMP's memory, not from disk) - if all your images are a single layer already, that may be reduced to this 3 lines:
for img in gimp.image_list():
img.scale(int(img.width * 0.66), int(img.height*0.66))
pdb.gimp_file_save(img, img.layers[0], img.filename, img.filename)
To type these (or simply copy and paste directly from here into there), go to Filters->Python->Console
and type or paste the snippets above to the >>>
prompt.
WHile you are at it, if you want to automate any other operation, take your time to click the "browse" button on the Python console dialog, and check all available operations. Hitting the "apply" button will paste a template of the call to that function on your prompt (don't forget to prefix spaces to that pasted template,so that this call is aligned inside the for
block - and to replace the template suggested variable names for actual parameters)