#lang cli doesn't work or no longer is part of Racket

I followed an example in the doc:

In order to use the language to write a command line script, simply declare the module as #lang cli at the top of the file.

#lang cli
 
(program (hello name)
  (displayln (string-append "Hello " name "!")))
 
(run hello)

This doesn't work at all. Here is my trivial version:

#lang cli

(program (square n)
    (displayln (* ( ->number n) ( ->number n))))

(run square)

The error message contained an [install] button so I clicked it. About 4 minutes later, "cli" was installed. What is "cli": a DSL for command line programs? Surely, there is something built-in that doesn't bring in a pretty big dependency.

I got it to work after creating the executable. I could do this with the command line support, this "language" incorporates and simplifies using the libraries.

But the executable is objectionably HUGE!

#lang cli is not a part of Racket, so that’s why you need to additionally install it. Yes, it appears to be a DSL for writing a command-line program.

Racket already has a standard library for command-line parsing. Take a look at https://docs.racket-lang.org/reference/Command-Line_Parsing.html. Without using #lang cli, your program size may be reduced by a bit.