Lynx is a fully-featured World Wide Web (WWW) client for users running
cursor-addressable, character-cell display devices (e.g., vt100 terminals,
vt100 emulators running on Windows 95/NT or Macintoshes, or any other
"curses-oriented" display). It will display hypertext markup
language (HTML) documents containing links to files residing on the local
system, as well as files residing on remote systems running Gopher, HTTP, FTP,
WAIS, and NNTP servers. Current versions of Lynx run on Unix, VMS,
Windows 95/NT, 386DOS and OS/2 EMX.

Lynx can be used to access information on the World Wide Web, or to build
information systems intended primarily for local access. For example,
Lynx has been used to build several Campus Wide Information Systems
(CWIS). In addition, Lynx can be used to build systems isolated within
a single LAN.

At start up, Lynx will load any local file or remote URL specified at the
command line. For help with URLs, press "?" or
"H" while running Lynx. Then follow the link titled,
"Help on URLs."

If more than one local file or remote URL is listed on the command line,
Lynx will open only the last interactively. All of the names (local
files and remote URLs) are added to the G)oto history.

Lynx uses only long option names. Option names can begin with double dash
as well, underscores and dashes can be intermixed in option names (in the
reference below options are with one dash before them and with underscores).

Lynx provides many command-line options. Some options require a value
(string, number or keyword). These are noted in the reference below. The other
options set boolean values in the program. There are three types of boolean
options: set, unset and toggle. If no option value is given, these have the
obvious meaning: set (to true), unset (to false), or toggle (between
true/false). For any of these, an explicit value can be given in different
forms to allow for operating system constraints, e.g.,

-center:off-center=off-center-

Lynx recognizes "1", "+", "on" and
"true" for true values, and "0", "-",
"off" and "false" for false values. Other option-values
are ignored.

The default boolean, number and string option values that are compiled into
Lynx are displayed in the help-message provided by lynx -help.
Some of those may differ according to how Lynx was built; see the help
message itself for these values. The -help option is processed in the
third pass of options-processing, so any option which sets a value, as well as
runtime configuration values are reflected in the help-message.

-

If the argument is only '-', then Lynx expects to receive the arguments
from the standard input. This is to allow for the potentially very long
command line that can be associated with the -get_data or
-post_data arguments (see below). It can also be used to avoid
having sensitive information in the invoking command line (which would be
visible to other processes on most systems), especially when the
-auth or -pauth options are used.

-accept_all_cookies

accept all cookies.

-anonymous

apply restrictions for anonymous account, see also
-restrictions.

-assume_charset=MIMEname

charset for documents that don't specify it.

-assume_local_charset=MIMEname

charset assumed for local files, i.e., files which Lynx creates
such as internal pages for the options menu.

-assume_unrec_charset=MIMEname

use this instead of unrecognized charsets.

-auth=ID:PASSWD

set authorization ID and password for protected documents at startup. Be
sure to protect any script files which use this switch.

forces high intensity background colors for color mode, if available and
supported by the terminal. This applies to the slang library (for a
few terminal emulators), or to OS/2 EMX with ncurses.

-book

use the bookmark page as the startfile. The default or command line
startfile is still set for the Main screen command, and will be used if
the bookmark page is unavailable or blank.

-buried_news

toggles scanning of news articles for buried references, and converts them
to news links. Not recommended because email addresses enclosed in angle
brackets will be converted to false news links, and uuencoded messages can
be trashed.

-cache=NUMBER

set the NUMBER of documents cached in memory. The default is 10.

-case

enable case-sensitive string searching.

-center

Toggle center alignment in HTML TABLE.

-cfg=FILENAME

specifies a Lynx configuration file other than the default lynx.cfg.

-child

exit on left-arrow in startfile, and disable save to disk and associated
print/mail options.

-child_relaxed

exit on left-arrow in startfile, but allow save to disk and associated
print/mail options.

-cmd_log=FILENAME

write keystroke commands and related information to the specified
file.

-cmd_script=FILENAME

read keystroke commands from the specified file. You can use the data
written using the -cmd_log option. Lynx will ignore other
information which the command-logging may have written to the logfile.
Each line of the command script contains either a comment beginning with
"#", or a keyword:

exit

causes the script to stop, and forces Lynx to exit
immediately.

key

the character value, in printable form. Cursor and other special keys are
given as names, e.g., "Down Arrow". Printable 7-bit ASCII codes
are given as-is, and hexadecimal values represent other 8-bit codes.

set

followed by a "name=value" allows one to override values set in
the lynx.cfg file.

-color

forces color mode on, if available. Default color control sequences which
work for many terminal types are assumed if the terminal capability
description does not specify how to handle color. Lynx needs to be
compiled with the slang library for this flag, it is equivalent to
setting the COLORTERM environment variable. (If color support is
instead provided by a color-capable curses library like ncurses,
Lynx relies completely on the terminal description to determine whether
color mode is possible, and this flag is not needed and thus unavailable.)
A saved show_color=always setting found in a .lynxrc file at startup has
the same effect. A saved show_color=never found in .lynxrc on startup is
overridden by this flag.

-connect_timeout=N

Sets the connection timeout, where N is given in seconds.

-cookie_file=FILENAME

specifies a file to use to read cookies. If none is specified, the default
value is ~/.lynx_cookies for most systems, but ~/cookies for MS-DOS.

-cookie_save_file=FILENAME

specifies a file to use to store cookies. If none is specified, the value
given by -cookie_file is used.

-cookies

toggles handling of Set-Cookie headers.

-core

toggles forced core dumps on fatal errors. Turn this option off to ask
Lynx to force a core dump if a fatal error occurs.

-crawl

with -traversal, output each page to a file. with -dump,
format output as with -traversal, but to the standard output.

-curses_pads

toggles the use of curses "pad" feature which supports
left/right scrolling of the display.

-debug_partial

separate incremental display stages with MessageSecs delay

-delay

add DebugSecs delay after each progress-message

-display=DISPLAY

set the display variable for X rexec-ed programs.

-display_charset=MIMEname

set the charset for the terminal output.

-dont_wrap_pre

inhibit wrapping of text in <pre> when -dump'ing and
-crawl'ing, mark wrapped lines in interactive session.

-dump

dumps the formatted output of the default document or those specified on
the command line to standard output. Unlike interactive mode, all
documents are processed. This can be used in the following way:

This flag is not available on all systems, Lynx needs to be compiled with
HAVE_SIGACTION defined. If available, this flag may cause Lynx to
react more immediately to window changes when run within an
xterm.

-nonumbers

disable link- and field-numbering. This overrides -number_fields
and -number_links.

-nopause

disable forced pauses for statusline messages.

-noprint

disable most print functions.

-noredir

prevents automatic redirection and prints a message with a link to the new
URL.

-noreferer

disable transmissions of Referer headers.

-noreverse

disable reverse video-attribute.

-nosocks

disable SOCKS proxy usage by a SOCKSified Lynx.

-nostatus

disable the retrieval status messages.

-notitle

disable title and blank line from top of page.

-nounderline

disable underline video-attribute.

-number_fields

force numbering of links as well as form input fields

-number_links

force numbering of links.

-partial

toggles display partial pages while loading.

-partial_thres=NUMBER

number of lines to render before repainting display with partial-display
logic

-passive-ftp

toggles passive ftp connections.

-pauth=ID:PASSWD

set authorization ID and password for a protected proxy server at startup.
Be sure to protect any script files which use this switch.

-popup

toggles handling of single-choice SELECT options via popup windows or as
lists of radio buttons.

-post_data

properly formatted data for a post form are read in from the standard
input and passed to the form. Input is terminated by a line that starts
with '---'.

-preparsed

show HTML source preparsed and reformatted when used with -source
or in source view.

-prettysrc

show HTML source view with lexical elements and tags in color.

-print

enable print functions. (default)

-pseudo_inlines

toggles pseudo-ALTs for inline images with no ALT string.

-raw

toggles default setting of 8-bit character translations or CJK mode for
the startup character set.

-realm

restricts access to URLs in the starting realm.

-read_timeout=N

Sets the read-timeout, where N is given in seconds.

-reload

flushes the cache on a proxy server (only the first document
affected).

-restrictions=[option][,option][,option]...

allows a list of services to be disabled selectively. Dashes and
underscores in option names can be intermixed. The following list is
printed if no options are specified.

all - restricts all options listed below.

bookmark - disallow changing the location of the bookmark file.

bookmark_exec - disallow execution links via the bookmark file.

change_exec_perms - disallow changing the eXecute permission on files
(but still allow it for directories) when local file management is
enabled.

default - same as command line option -anonymous. Disables
default services for anonymous users. Set to all restricted, except for:
inside_telnet, outside_telnet, inside_ftp, outside_ftp, inside_rlogin,
outside_rlogin, inside_news, outside_news, telnet_port, jump, mail, print,
exec, and goto. The settings for these, as well as additional goto
restrictions for specific URL schemes that are also applied, are derived
from definitions within userdefs.h.

outside_news - disallow USENET news reading and posting for people
coming from outside your domain (utmp required for selectivity). This
restriction applies to "news", "nntp",
"newspost", and "newsreply" URLs, but not to
"snews", "snewspost", or "snewsreply" in
case they are supported.

toggles forced resubmissions (no-cache) of forms with method POST when the
documents they returned are sought with the PREV_DOC command or from the
History List.

-rlogin

disable recognition of rlogin commands.

-scrollbar

toggles showing scrollbar.

-scrollbar_arrow

toggles showing arrows at ends of the scrollbar.

-selective

require .www_browsable files to browse directories.

-session=FILENAME

resumes from specified file on startup and saves session to that file on
exit.

-sessionin=FILENAME

resumes session from specified file.

-sessionout=FILENAME

saves session to specified file.

-short_url

show very long URLs in the status line with "..." to represent
the portion which cannot be displayed. The beginning and end of the URL
are displayed, rather than suppressing the end.

-show_cfg

Print the configuration settings, e.g., as read from "lynx.cfg",
and exit.

-show_cursor

If enabled the cursor will not be hidden in the right hand corner but will
instead be positioned at the start of the currently selected link. Show
cursor is the default for systems without FANCY_CURSES capabilities. The
default configuration can be changed in userdefs.h or lynx.cfg. The
command line switch toggles the default.

-show_rate

If enabled the transfer rate is shown in bytes/second. If disabled, no
transfer rate is shown. Use lynx.cfg or the options menu to select
KB/second and/or ETA.

-soft_dquotes

toggles emulation of the old Netscape and Mosaic bug which treated '>'
as a co-terminator for double-quotes and tags.

-source

works the same as dump but outputs HTML source instead of formatted text.
For example

lynx -source . >foo.html

generates HTML source listing the files in the current directory. Each
file is marked by an HREF relative to the parent directory. Add a trailing
slash to make the HREF's relative to the current directory:

lynx -source ./ >foo.html

-stack_dump

disable SIGINT cleanup handler

-startfile_ok

allow non-http startfile and homepage with -validate.

-stderr

When dumping a document using -dump or -source, Lynx
normally does not display alert (error) messages that you see on the
screen in the status line. Use the -stderr option to tell Lynx to
write these messages to the standard error.

-stdin

read the startfile from standard input (UNIX only).

-syslog=text

information for syslog call.

-syslog-urls

log requested URLs with syslog.

-tagsoup

initialize parser, using Tag Soup DTD rather than SortaSGML.

-telnet

disable recognition of telnet commands.

-term=TERM

tell Lynx what terminal type to assume it is talking to. (This may be
useful for remote execution, when, for example, Lynx connects to a remote
TCP/IP port that starts a script that, in turn, starts another Lynx
process.)

-timeout=N

For win32, sets the network read-timeout, where N is given in
seconds.

-tlog

toggles between using a Lynx Trace Log and stderr for trace output from
the session.

traverse all http links derived from startfile. When used with -crawl,
each link that begins with the same string as startfile is output to a
file, intended for indexing. See CRAWL.announce for more information.

-trim_input_fields

trim input text/textarea fields in forms.

-underline_links

toggles use of underline/bold attribute for links.

-underscore

toggles use of _underline_ format in dumps.

-use_mouse

turn on mouse support, if available. Clicking the left mouse button on a
link traverses it. Clicking the right mouse button pops back. Click on the
top line to scroll up. Click on the bottom line to scroll down. The first
few positions in the top and bottom line may invoke additional functions.
Lynx must be compiled with ncurses or slang to support this
feature. If ncurses is used, clicking the middle mouse button pops
up a simple menu. Mouse clicks may only work reliably while Lynx is idle
waiting for input.

In addition to various "standard" environment variables such as
HOME, PATH, USER, DISPLAY, TMPDIR,
etc, Lynx utilizes several Lynx-specific environment variables,
if they exist.

Others may be created or modified by Lynx to pass data to an external
program, or for other reasons. These are listed separately below.

See also the sections on SIMULATED CGI SUPPORT and NATIVE LANGUAGE
SUPPORT, below.

Note: Not all environment variables apply to all types of platforms supported by
Lynx, though most do. Feedback on platform dependencies is solicited.

Environment Variables Used By Lynx:

COLORTERM

If set, color capability for the terminal is forced on at startup time.
The actual value assigned to the variable is ignored. This variable is
only meaningful if Lynx was built using the slang
screen-handling library.

LYNX_CFG

This variable, if set, will override the default location and name of the
global configuration file (normally, lynx.cfg) that was defined by
the LYNX_CFG_FILE constant in the userdefs.h file, during installation.
See the userdefs.h file for more information.

LYNX_HELPFILE

If set, this variable overrides the compiled-in URL and configuration file
URL for the Lynx help file.

LYNX_LOCALEDIR

If set, this variable overrides the compiled-in location of the locale
directory which contains native language (NLS) message text.

LYNX_LSS

This variable, if set, specifies the location of the default Lynx
character style sheet file. [Currently only meaningful if Lynx was
built using experimental color style support.]

LYNX_SAVE_SPACE

This variable, if set, will override the default path prefix for files
saved to disk that is defined in the lynx.cfg SAVE_SPACE:
statement. See the lynx.cfg file for more information.

LYNX_TEMP_SPACE

This variable, if set, will override the default path prefix for temporary
files that was defined during installation, as well as any value that may
be assigned to the TMPDIR variable.

MAIL

This variable specifies the default inbox Lynx will check for new
mail, if such checking is enabled in the lynx.cfg file.

NEWS_ORGANIZATION

This variable, if set, provides the string used in the
Organization: header of USENET news postings. It will
override the setting of the ORGANIZATION environment variable, if it is
also set (and, on UNIX, the contents of an /etc/organization file,
if present).

NNTPSERVER

If set, this variable specifies the default NNTP server that will be used
for USENET news reading and posting with Lynx, via news:
URL's.

ORGANIZATION

This variable, if set, provides the string used in the
Organization: header of USENET news postings. On
UNIX, it will override the contents of an /etc/organization file,
if present.

PROTOCOL_proxy

Lynx supports the use of proxy servers that can act as firewall
gateways and caching servers. They are preferable to the older gateway
servers (see WWW_access_GATEWAY, below). Each protocol used by
Lynx, (http, ftp, gopher, etc), can be mapped separately by setting
environment variables of the form PROTOCOL_proxy (literally: http_proxy,
ftp_proxy, gopher_proxy, etc), to
"http://some.server.dom:port/". See Lynx Users Guide for
additional details and examples.

SSL_CERT_DIR

Set to the directory containing trusted certificates.

SSL_CERT_FILE

Set to the full path and filename for your file of trusted
certificates.

WWW_access_GATEWAY

Lynx still supports use of gateway servers, with the servers
specified via "WWW_access_GATEWAY" variables (where
"access" is lower case and can be "http",
"ftp", "gopher" or "wais"), however most
gateway servers have been discontinued. Note that you do not include a
terminal '/' for gateways, but do for proxies specified by PROTOCOL_proxy
environment variables. See Lynx Users Guide for details.

WWW_HOME

This variable, if set, will override the default startup URL specified in
any of the Lynx configuration files.

Environment Variables Set or Modified By Lynx:

LYNX_PRINT_DATE

This variable is set by the Lynx p(rint) function, to the
Date: string seen in the document's " Information
about" page (= cmd), if any. It is created for use by an external
program, as defined in a lynx.cfg PRINTER: definition statement. If
the field does not exist for the document, the variable is set to a null
string under UNIX, or "No Date" under VMS.

LYNX_PRINT_LASTMOD

This variable is set by the Lynx p(rint) function, to the Last
Mod: string seen in the document's " Information
about" page (= cmd), if any. It is created for use by an external
program, as defined in a lynx.cfg PRINTER: definition statement. If
the field does not exist for the document, the variable is set to a null
string under UNIX, or "No LastMod" under VMS.

LYNX_PRINT_TITLE

This variable is set by the Lynx p(rint) function, to the
Linkname: string seen in the document's " Information
about" page (= cmd), if any. It is created for use by an external
program, as defined in a lynx.cfg PRINTER: definition statement. If
the field does not exist for the document, the variable is set to a null
string under UNIX, or "No Title" under VMS.

LYNX_PRINT_URL

This variable is set by the Lynx p(rint) function, to the
URL: string seen in the document's " Information
about" page (= cmd), if any. It is created for use by an external
program, as defined in a lynx.cfg PRINTER: definition statement. If
the field does not exist for the document, the variable is set to a null
string under UNIX, or "No URL" under VMS.

LYNX_TRACE

If set, causes Lynx to write a trace file as if the -trace
option were supplied.

LYNX_TRACE_FILE

If set, overrides the compiled-in name of the trace file, which is either
Lynx.trace or LY-TRACE.LOG (the latter on the DOS platform). The trace
file is in either case relative to the home directory.

LYNX_VERSION

This variable is always set by Lynx, and may be used by an external
program to determine if it was invoked by Lynx. See also the
comments in the distribution's sample mailcap file, for notes on
usage in such a file.

TERM

Normally, this variable is used by Lynx to determine the terminal
type being used to invoke Lynx. If, however, it is unset at startup
time (or has the value "unknown"), or if the -term
command-line option is used (see OPTIONS section above),
Lynx will set or modify its value to the user specified terminal
type (for the Lynx execution environment). Note: If set/modified by
Lynx, the values of the LINES and/or COLUMNS
environment variables may also be changed.

If built with the cgi-links option enabled, Lynx allows access to
a cgi script directly without the need for an http daemon.

When executing such "lynxcgi scripts" (if enabled), the following
variables may be set for simulating a CGI environment:

CONTENT_LENGTH

CONTENT_TYPE

DOCUMENT_ROOT

HTTP_ACCEPT_CHARSET

HTTP_ACCEPT_LANGUAGE

HTTP_USER_AGENT

PATH_INFO

PATH_TRANSLATED

QUERY_STRING

REMOTE_ADDR

REMOTE_HOST

REQUEST_METHOD

SERVER_SOFTWARE

Other environment variables are not inherited by the script, unless they are
provided via a LYNXCGI_ENVIRONMENT statement in the configuration file. See
the lynx.cfg file, and the (draft) CGI 1.1 Specification
<http://Web.Golux.Com/coar/cgi/draft-coar-cgi-v11-00.txt> for the
definition and usage of these variables.

The CGI Specification, and other associated documentation, should be consulted
for general information on CGI script programming.

If configured and installed with Native Language Support, Lynx
will display status and other messages in your local language. See the file
ABOUT_NLS in the source distribution, or at your local GNU site,
for more information about internationalization.

The following environment variables may be used to alter default settings:

LANG

This variable, if set, will override the default message language. It is
an ISO 639 two-letter code identifying the language. Language codes
are NOT the same as the country codes given in ISO
3166.

LANGUAGE

This variable, if set, will override the default message language. This is
a GNU extension that has higher priority for setting the message
catalog than LANG or LC_ALL.

LC_ALL

and

LC_MESSAGES

These variables, if set, specify the notion of native language formatting
style. They are POSIXly correct.

LINGUAS

This variable, if set prior to configuration, limits the installed
languages to specific values. It is a space-separated list of two-letter
codes. Currently, it is hard-coded to a wish list.

NLSPATH

This variable, if set, is used as the path prefix for message
catalogs.

This is the Lynx v2.8.7 Release; development is in progress for 2.8.8.

If you wish to contribute to the further development of Lynx, subscribe
to our mailing list. Send email to <lynx-dev-request@nongnu.org> with
"subscribe lynx-dev" as the only line in the body of your message.

Unsubscribe by sending email to <lynx-dev-request@nongnu.org> with
"unsubscribe lynx-dev" as the only line in the body of your message.
Do not send the unsubscribe message to the lynx-dev list, itself.

Note that man page availability and section numbering is somewhat platform
dependent, and may vary from the above references.

A section shown as (GNU), is intended to denote that the topic may be available
via an info page, instead of a man page (i.e., try "info subject",
rather than "man subject").

A section shown as (?) denotes that documentation on the topic exists, but is
not part of an established documentation retrieval system (see the
distribution files associated with the topic, or contact your System
Administrator for further information).

Lynx has incorporated code from a variety of sources along the way. The earliest
versions of Lynx included code from Earl Fogel of Computing Services at the
University of Saskatchewan, who implemented HYPERREZ in the Unix environment.
HYPERREZ was developed by Niel Larson of Think.com and served as the model for
the early versions of Lynx. Those versions also incorporated libraries from
the Unix Gopher clients developed at the University of Minnesota, and the
later versions of Lynx rely on the WWW client library code developed by Tim
Berners-Lee and the WWW community. Also a special thanks to Foteos Macrides
who ported much of Lynx to VMS and did or organized most of its development
since the departures of Lou Montulli and Garrett Blythe from the University of
Kansas in the summer of 1994 through the release of v2.7.2, and to everyone on
the net who has contributed to Lynx's development either directly (through
patches, comments or bug reports) or indirectly (through inspiration and
development of other systems).