initial-frame-alist is a variable defined in `frame.el'.
Its value is

  • This variable may be risky if used as a file-local variable.

Alist of parameters for the initial X window frame.
You can set this in your init file; for example,

(setq initial-frame-alist
'((top . 1) (left . 1) (width . 80) (height . 55)))

Parameters specified here supersede the values given in

If the value calls for a frame without a minibuffer, and you have
not created a minibuffer frame on your own, a minibuffer frame is
created according to `minibuffer-frame-alist'.

You can specify geometry-related options for just the initial
frame by setting this variable in your init file; however, they
won't take effect until Emacs reads your init file, which happens
after creating the initial frame. If you want the initial frame
to have the proper geometry as soon as it appears, you need to
use this three-step process:
* Specify X resources to give the geometry you want.
* Set `default-frame-alist' to override these options so that they
don't affect subsequent frames.
* Set `initial-frame-alist' in a way that matches the X resources,
to override what you put in `default-frame-alist'.

You can customize this variable.