I cannot recall exactly where I found instructions from the author, but here they are for "vanilla" Sciter, using TIScript:
const w = self.intrinsicWidthMax();
const h = self.intrinsicHeight();
const (sw, sh) = view.screenBox(#frame, #dimension);
view.move((sw / 2) - (w / 2), (sh / 2) - (h / 2), w, h, true);
#frame refers to the entire screen, or monitor, here. #dimension specifies that its width and height shall be returned (there are other symbols for returning coordinates of certain aspects of the screen).
view.move is an unfortunately-named overloaded method because it allows resizing the window in addition to moving it. The last boolean parameter specifies whether the size of the window frame and caption should be considered as part of the total window size.
In an official example it's recommended to place this inside function self.ready() { ... } but I have not encountered any problems putting it at the top of my main script file.
Here is the JavaScript port for Sciter.JS:
// https://github.com/c-smile/sciter-js-sdk/discussions/39#discussioncomment-377697
const [ _, w ] = document.state.contentWidths();
const h = document.state.contentHeight(w);
const [ sw, sh ] = Window.this.screenBox('frame', 'dimension');
Window.this.move((sw - w) / 2, (sh - h) / 2, w, h, true);