OnWorks favicon

hh_client - Online in the Cloud

Run hh_client in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command hh_client that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



hh_client - Interface to Hack language typechecker




hh_client(1) is an interface to a static analysis tool which is what enforces most of the
Hack language's type system. Code must pass validation of this tool in order to be
considered valid code in the Hack language.

There are several possible MODEs for hh_client(1) (see below). By default, it will invoke
the check mode, with the current directory as DIRECTORY. These are reasonable defaults,
meaning that most users can simply invoke the command as


with no arguments to get a list of type errors across the entire project.

All of the MODEs accept a DIRECTORY as an optional final argument. This denotes the
project upon which to operate. hh_client(1) walks up the filesystem from the DIRECTORY
until it finds a file called .hhconfig and then operates on the body of Hack language code
rooted in this directory. If no DIRECTORY is specified, it uses the current directory by
default. This means you may run hh_client(1) in any subdirectory of your project and get
type errors for the whole project without ever specifying a DIRECTORY explicitly.

hh_client(1) implements very little logic itself, but rather serves as an interface to the
hh_server(1) daemon. The server will automatically be started and restarted as needed.


The default MODE if none is specified. With no OPTIONS specified, it prints a list of type
errors on standard output, or prints "No errors!" if there were none.

Many OPTIONS affect the output of check mode, sometimes causing it to do completely
different things. (Those can be considered "sub-modes" of check mode.) Many of these
options are undergoing considerable revision and so are not documented here; read the
source for a full list.

Widely-useful OPTIONS for check mode include:

--color FILE
Sub-mode which prints out information on what parts of FILE are actually
typechecked and which are not. Due to Hack's partial mode and PHP interoperability,
the type system may not know the types of parts of a program. In this case, it
trusts the programmer and carries on. The --color mode prints out a file with ANSI
terminal colors, where green code is actually fully checked, and red code cannot be
fully checked due to such missing type information.

--help Prints information about hh_client(1) and its command line options, and then exits.
Many of the options described there are experimental, especially if they are not
described in this man page.

--from EDITOR
Prints output in the format expected by a specific editor. Valid values of EDITOR
are emacs and vim. For usage by other tools, try --json instead.

--json Prints output in a JSON format intended for machine consumption, instead of the
output intended for human consumption that is output by default.

--retries NUM
If the typechecker daemon is busy, try NUM times to connect to it before giving up.
Set NUM to 0 to disable retries if the server is not immediately available.

Prints human-readable type error information to standard out and then exits. The
default sub-mode of check if none is specified. This output is not intended for
usage by tools, but only for human consumption. For output intended for tool usage,
see the --json and/or --from options.

Prints the current client version, including build ID and build date, and then

Autocompletes text on STDIN where the cursor is replaced with AUTO332. Returns a
newline-separated list.

--search STRING
Fuzzy search symbol definitions for STRING. Returns a newline-separated list.

Explicitly starts the hh_server(1) daemon if it is not already running. This is not
normally necessary, since check mode will start it as needed if it is not running.

Explicitly stops the hh_server(1) daemon if it is running. This is not normally necessary,
since the daemon will exit if it has not been used for an extended period of time.

Explicitly stops and then starts again the hh_server(1) daemon. Fails if the daemon is not
currently running. Restarting the daemon is not normally necessary, since it updates its
state in the background, and hh_client(1) will restart it automatically if the typechecker
binaries have been updated.


For check mode in the --status sub-mode, hh_client(1) returns 0 if there are no type
errors, and non-zero otherwise.

Exit statuses for any other invocations are currently undefined and subject to change.


USER Used in combination with the path to the project root in order to locate the socket
for communicating with the running hh_server(1) daemon. Normally set by your login
environment, but may be unset in some nonstandard setups.

Use hh_client online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands