@sayless/chat and boot from a hook. The package queues commands before the per-app loader arrives, same as the vanilla JavaScript API.
identityToken can be a string or () => Promise<string>. Pass a function when the JWT is short-lived so the iframe can ask for a fresh one.
You can still queue window.Sayless('boot', …) yourself if you are not using React.
See Identity verification for signing.