cgps - curses terminal client for gpsd


cgps [OPTIONS] [server[:port[:device]]]

cgps -h

cgps -V


cgps is an ncurses based gpsd client. It is able to run on a serial terminal or terminal emulator. It resembles xgps(1), but without the pictorial satellite display and does not require X or other windowing system.

cgps does not require root privileges. It will also run fine as root. Running under sudo will cause loss of functionality.

None of the error estimates provided by gpsd, and displayed by cgps, should be taken as anything other than "goodness" levels. GNSS receiver manufactures often do not document the basis for their estimates. Those that do document their estimates are inconsistent about what they mean.


-?, -h, --help

Print a summary of options and then exit.

-D LVL, --debug LVL

Sets the debug level; it is primarily for use by GPSD developers. It enables various progress messages to standard error.

-i, --imu

Show IMU instead of fix and satellite data.

-l FMT, --llfmt FMT

Sets the format of latitude and longitude reports. The value 'd' produces decimal degrees and is the default. The value 'm' produces degrees and decimal minutes. The value 's' produces degrees, minutes, and decimal seconds.

-m, --magtrack

Display tracks as magnetic, not true.

-m, --magtrack

Display your magnetic track (as opposed to your true track). This is a calculated value, not a measured value. Magnetic variation is always potentially subject to large errors, but is usually better than two degrees.

-s, --silent

Prevents cgps from displaying the raw data coming from the daemon. This display can also be toggled with the s command.

-u UNITS, --units UNITS

Set the system units for display; follow the keyword with 'i' for 'imperial' for American units (International Feet in altitude and error estimates, miles per hour in speeds), 'n' for 'nautical' (feet in altitude and error estimates, knots in speed) or 'm' for 'metric' (meters in altitude and error estimates, kilometers per hour in speeds).

Note: The USA Survey Foot is not supported.

-V, --version

Print the package version and exit.


By default, clients collect data from the local gpsd daemon running on localhost, using the default GPSD port 2947. The optional argument to any client may override this behavior: [server[:port[:device]]]

For further explanation, and examples, see the ARGUMENTS section in the gps(1) man page


cgps terminates when you send it a SIGHUP or SIGINT; given default terminal settings this will happen when you type Ctrl-C at it.

cgps will accept a few single letter commands while running:


Clear the bottom window.


Show lat/lon dd.dddddddd, dd mm.mmmmmm and dd mm ss.ssss


Popup a help window.


Use imperial units.


Use metric units.


Use nautical units.


Clear screen and exit


Toggle showing raw JSON data in the bottom window.


Toggle true/magnetic track.


The environment variable GPSD_UNITS is checked if no unit system is specified on the command line. It may be set to 'i'. 'imperial', 'm', 'metric', or 'n', 'nautical'.

LC_MEASUREMENT and then LANG are checked if no unit system has been specified on the command line, or in GPSD_UNITS. If the value is 'C', 'POSIX', or begins with 'en_US' the unit system is set to imperial. The default if no system has been selected defaults to metric.



on success.


on failure


gegps(1), gpsctl(1), gps(1), gpsprof*(1), gpsfake(1), gpscat(1), gpspipe(1), gpsmon(1), xgps*(1). xgpsspeed(1)

libgps(3), libgpsmm(3)



Project web site: <>;


This file is Copyright 2013 by the GPSD project
SPDX-License-Identifier: BSD-2-clause