Mirror of the upstream git repository
Shell Perl Groff Makefile
Failed to load latest commit information.
debian Applied Lucas Hoffmann's whitespace fixes Oct 5, 2014
elvi Updated searx author details Feb 28, 2016
examples Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
test New elvis: searx Aug 23, 2015
.gitignore new elvi: f5 and cisco, by Shain Singh <shain.singh@gmail.com> Oct 10, 2011
AUTHORS Updated searx author details Feb 28, 2016
COPYING update copyright years to 2013 Oct 6, 2013
ChangeLog Use awk instead of sed for listing elvi. Sep 13, 2015
HACKING HACKING, README, test/README: document autotools and test suite changes. Mar 2, 2010
INSTALL Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
Makefile.am Debian packaging now included in release Oct 6, 2013
NEWS Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
README New elvis: searx Aug 22, 2015
STYLE Add STYLE guide. Oct 11, 2014
TODO Merged NAMESPACE changes back onto HEAD Feb 6, 2004
banner Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
configure.in bump master version number to 2.2.9 May 4, 2013
elvi.1sr.IN update copyright years to 2013 Oct 6, 2013
install-sh Merged NAMESPACE changes back onto HEAD Feb 6, 2004
links.IN New elvis: searx Aug 22, 2015
missing Merged NAMESPACE changes back onto HEAD Feb 6, 2004
mkinstalldirs Merged NAMESPACE changes back onto HEAD Feb 6, 2004
opensearch-discover opensearch-discover: fix man page synopsis typo Jan 13, 2011
opensearch-genquery Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
prebuild prebuild: try and find a sane set of autotools, then call autoreconf -vi Mar 1, 2010
surfraw-bash-completion.IN Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
surfraw-update-path.IN Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
surfraw.1.IN Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014
surfraw.IN Use awk instead of sed for listing elvi. Sep 14, 2015
surfraw.bookmarks Merged NAMESPACE changes back onto HEAD Feb 6, 2004
surfraw.conf.IN Default to $BROWSER if no listed ones found Jan 12, 2016
surfraw.lsm.in sunonesearch (replaces sunsolve). Feb 14, 2008
surfraw.spec.in Applied Lucas Hoffmann's whitespace fixes Oct 4, 2014


        Surfraw - Shell Users' Revolutionary Front Rage Against the Web

Home Page: http://surfraw.alioth.debian.org

        ______  _     _  ______   _______  ______   _______  _  _  _
       / _____)(_)   (_)(_____ \ (_______)(_____ \ (_______)(_)(_)(_)
      ( (____   _     _  _____) ) _____    _____) ) _______  _  _  _
       \____ \ | |   | ||  __  / |  ___)  |  __  / |  ___  || || || |
       _____) )| |___| || |  \ \ | |      | |  \ \ | |   | || || || |
      (______/  \_____/ |_|   |_||_|      |_|   |_||_|   |_| \_____/

   Surfraw - Shell Users' Revolutionary Front Rage Against the Web
		 New: http://surfraw.alioth.debian.org
		 Old: http://surfraw.sourceforge.net/

			       Oh Baybe
			     I need some
			     Deep Linking
			      Let us go
			 Surfin' in the raw!

  Surfraw provides a fast unix command line interface to a variety of
  popular WWW search engines and other artifacts of power. It reclaims
  google, altavista, babelfish, dejanews, freshmeat, research index,
  slashdot and many others from the false-prophet, pox-infested heathen
  lands of html-forms, placing these wonders where they belong, deep in
  unix heartland, as god loving extensions to the shell.

  Surfraw abstracts the browser away from input. Doing so lets it get on
  with what it's good at. Browsing. Interpretation of linguistic forms
  is handed back to the shell, which is what it, and human beings are
  good at. Combined with netscape-remote or incremental text browsers,
  such as links (http://artax.karlin.mff.cuni.cz/~mikulas/links/), w3m
  (http://www.w3m.org/), and screen(1) a Surfraw liberateur is capable
  of navigating speeds that leave GUI tainted idolaters agape with fear
  and wonder.

  Surfraw consists of a collection of elvi, each of which knows how
  to search a specific web site.
  To see the list of elvi type:

   surfraw -elvi

  Note that sr is an alias for surfraw, so that could equally be

   sr -elvi

  To search using an elvis use:

   sr elviname [options] search terms..

  For example, to search google for information on Debian ports,
  using the "I'm feeling lucky" option:

   sr google -l debian ports

  Note that putting quotes round arguments works now, so you can do,
  for example:

   sr google foo "bar baz" bam

  and the quoting is passed on to the search engine.


  If you are a regular user of surfraw, you will probably get sick
  of typing sr or surfraw each time. You can regain the old
  behaviour of running the elvi directly by adding the elvi
  directory (usually /usr/lib/surfraw or /usr/local/lib/surfraw/) to
  your path, either manually or using surfraw-update-path(1).


  Surfraw implements the XDG basedir spec

  Essentially this means global config will be in /etc/xdg/surfraw/
  and local config will be in $HOME/.config/surfraw/.
  This can be modified by setting $XDG_CONFIG_DIRS and $XDG_CONFIG_HOME,
  see the spec for more details.

  If your system has a different sysconfdir set during configure, that
  will be used instead of /etc (for instance, /usr/local/etc).

  In the documentation below, only the default paths will be referred to.


  Surfraw can use your own private elvi, store them in

  Local elvi will be listed separately at the end of
  'surfraw -elvi'.

  Use existing elvi (e.g. google) as a template. If you think your
  elvi may be useful to others, consider submitting them to


  Surfraw now supports bookmarks. To add a bookmark, add it to to the
  global bookmark list in /etc/xdg/surfraw/bookmarks or to your
  personal bookmark list in $HOME/.config/surfraw/bookmarks

  The format of the bookmarks file is simple, each bookmark is on a
  separate line, with the bookmark and URL separated by whitespace,

   ntk   http://www.ntk.net/

  To invoke a bookmark, use "surfraw bookmark" or "sr bookmark",
  and if an elvis of that name doesn't exist, it searches for a
  bookmark of that name instead.

  There are some example bookmarks in /etc/xdg/surfraw/bookmarks


Several elvi use a search engine with site: and inurl: keywords.
The search engine used can be customized by setting
the environment variable SURFRAW_customsearch_provider
or using the command-line argument -customsearch=
Currently google and duckduckgo are supported


SURFRAW_customsearch_provider=duckduckgo sr mysqldoc -v=5.5 select
sr pgdoc -customsearch=google -v=9.1 select

The default is to use duckduckgo.

Currently affected elvi:

mdn mysqldoc netbsd openbsd pgdoc slinuxdoc


  Surfraw is installed with the standard ./configure; make; make install
  procedure. See INSTALL for more details. If you obtained surfraw
  direct from the git repository rather than a release tarball, run
  ./prebuild to generate the autotools build files *before* running

  Note that the opensearch elvis depends on the perl libraries
  WWW::OpenSearch, HTML::Parser and LWP (libwww-perl). If you don't
  want to install opensearch, use ./configure --disable-opensearch.

  Surfraw supports the following options to ./configure:

    --with-text-browser=BROWSER       Use BROWSER as text-mode browser
    --with-graphical-browser=BROWSER  Use BROWSER as graphical-mode browser
    --with-elvidir=DIR                Use DIR as location for storing elvi
    --disable-opensearch              Disable OpenSearch support
    --disable-sr                      Disable installing sr alias

    By default, the text and graphical browsers are detected from a
    list of installed browsers at configure time. elvidir defaults
    to $(libdir)/surfraw (probably /usr/local/lib/surfraw).


         $ surfraw google -results=100 RMS, GNU, which is sinner, which is sin?
         $ sr wikipedia surfraw
         $ sr austlii -method=phrase dog like
         $ /usr/lib/surfraw/rhyme -method=perfect Julian


  Global options are common to all Surfraw elvi (clients). You can
  get a list of the currently installed elvi by just typing `surfraw -elvi'.
  For example:

  $ surfraw -elvi
W               -- Activate Surfraw defined web-browser
acronym         -- Look for acronyms definitions (www.acronymfinder.com)
ads             -- Search SAO/NASA Astrophysics Data System
alioth          -- Search Alioth (alioth.debian.org)
amazon          -- Search the amazon.com bookstore
archpkg         -- Search Arch Linux Packages (www.archlinux.org/packages/)
archwiki        -- Search the Arch Linux Wiki
arxiv           -- Search arXiv E-Print Archive for articles
ask             -- Question the web using Ask Jeeves (www.ask.com)
aur             -- Search aur.archlinux.org for PKGBUILDs
austlii         -- Search Australian Law docs (www.austlii.edu.au)
bbcnews         -- Search BBC News (news.bbc.co.uk)
bing            -- Search the web using Microsoft's Bing (www.bing.com)
bookfinder      -- Search for books using www.bookfinder.com
bugmenot        -- Bypass compulsory web registration with bugmenot.com
bugzilla        -- Search for bugs on Bugzilla bugtrackers
cablesearch     -- search for leaked diplomatic communications
cia             -- Search CIA documents at www.cia.gov
cisco           -- Search Cisco documentation (www.cisco.com)
cite            -- Search computer science papers (citeseerx.ist.psu.edu)
cliki           -- Search the common lisp wiki
cnn             -- Search on CNN (cnn.com)
comlaw          -- Search Australian Law using Comlaw (www.comlaw.gov.au)
commandlinefu   -- Search on www.commandlinefu.com
ctan            -- Search the Comprehensive TeX Archive Network (ctan.org)
currency        -- Convert currencies with the Universal Currency Converter (www.xe.net/ucc)
cve             -- Search for CAN assignments in CVE
debbugs         -- Search the debian BTS (bugs.debian.org)
debcodesearch   -- Search debian source code
debcontents     -- Search contents of debian/ubuntu packages (packages.debian.org/packages.ubuntu.com)
deblists        -- Search debian mailing lists (lists.debian.org/search.html)
deblogs         -- Show changelogs for a package in Debian main (changelogs.debian.net)
debpackages     -- Search debian/ubuntu packages (packages.debian.org/packages.ubuntu.com)
debpkghome      -- Visit the home page for a Debian package
debpts          -- Search the Debian Package Tracking System (packages.qa.debian.org)
debsec          -- Search the Debian Security Tracker for CVE ids or package names
debvcsbrowse    -- Browse the VCS repository for a Debian package
debwiki         -- Search the Debian Wikis (wiki.debian.org & women.debian.org/wiki)
deja            -- Search usenet using Google Groups (groups.google.com)
deli            -- Search Delicious bookmarks
discogs         -- Search the Discogs database of music information (www.discogs.com)
dmoz            -- Search the Open Directory Project web directory (dmoz.org)
duckduckgo      -- Securely search the web using duckduckgo (www.duckduckgo.com)
ebay            -- Search the Ebay auction site
etym            -- Look up word origins at www.etymonline.com
excite          -- Search on Excite (www.excite.com)
f5              -- Search F5 related information (www.f5.com)
finkpkg         -- Search Fink packages (pdb.finkproject.org)
foldoc          -- The Free On-Line Dictionary Of Computing (foldoc.org)
freebsd         -- Search FreeBSD related information (www.freebsd.org)
freedb          -- Search for cd track listings in FreeDB (www.freedb.org)
freshmeat       -- Search Freshmeat (www.freshmeat.net)
fsfdir          -- Search the FSF/UNESCO Free Software Directory (directory.fsf.org)
gcache          -- Search the web using Google cache (www.google.com)
genbugs         -- Search the Gentoo bug tracker (bugs.gentoo.org)
genportage      -- Search gentoo-portage.com for packages
github          -- Search GitHub (https://github.com)
gmane           -- Search mailing list with gmane (gmane.org)
google          -- Search the web using Google (www.google.com)
gutenberg       -- Search for books on Project Gutenberg (gutenberg.org)
imdb            -- Search the Internet Movie Database (www.imdb.com)
ixquick         -- Search the web using ixquick [HTTPS] (www.ixquick.com)
jamendo         -- Search Jamendo: free music with Creative Commons licenses (www.jamendo.com)
javasun         -- Search Java API docs (java.sun.com)
jquery          -- Search the jQuery documentation (api.jquery.com)
l1sp            -- Search lisp documentation
lastfm          -- Search last.fm
leodict         -- Search Leo's German <-> English dictionary (dict.leo.org)
lsm             -- Search the Linux Software Map
macports        -- Search macports packages (macports.org)
mathworld       -- Search Wolfram MathWorld
mdn             -- Search the mozilla developer network (developer.mozilla.org)
mininova        -- Search the mininova bittorent source.
musicbrainz     -- Search MusicBrainz (musicbrainz.org)
mysqldoc        -- Search mysql documentation (dev.mysql.com)
netbsd          -- Search NetBSD related information (www.netbsd.org)
nlab            -- Search the nLab wiki (http://ncatlab.org)
ntrs            -- Search the NASA Technical Report Server
openbsd         -- Search OpenBSD related information (www.openbsd.org)
openports       -- search openports for OpenBSD packages
opensearch      -- Search an OpenSearch-enabled website
oraclesearch    -- Search an OpenSearch-enabled website
pasearch        -- Search the unofficial Penny Arcade archives (pipefour.org/pa)
pgdoc           -- Search postgres documentation (www.pgdoc.com)
pgpkeys         -- Search the PGP key database
phpdoc          -- Search php documentation (php.net)
pin             -- Search Pinboard bookmarks (http://pinboard.in)
piratebay       -- Search The Pirate Bay (http://thepiratebay.org)
priberam        -- Look up word in Priberam online dictionary (www.priberam.pt/dlpo)
pubmed          -- Search medical/molbio databases (www.ncbi.nlm.nih.gov)
rae             -- Busca en el diccionario de la Real Academia de la Lengua Española (Spanish Dictionary)
rfc             -- Search RFCs (internet standards documents)
rhyme           -- Search for rhymes et al using Lycos Rhyme (rhyme.lycos.com)
rpmsearch       -- Search for RPMs in various distros
scholar         -- Search Google Scholar (scholar.google.com)
scicom          -- Search Scientific Commons
scirus          -- Search for science using Scirus (scirus.com)
scpan           -- Search the Comprehensive Perl Archive Network (search.cpan.org)
searx           -- Search using searx metasearch engine instances (searx.me)
slashdot        -- Search stories on Slashdot (www.slashdot.org)
slinuxdoc       -- Search entries in LDP (www.linuxdoc.org)
sourceforge     -- Search SourceForge (www.sourceforge.net)
springer        -- Search Springer for Books and Articles
stack           -- Search Stack Overflow
stockquote      -- Get a single stock quote (multiple providers)
thesaurus       -- Look up word in Merriam-Webster's Thesaurus (www.m-w.com)
translate       -- Translate human languages
urban           -- Search urbandictionary.com for a definition
w3css           -- Validate a CSS URL with the w3c CSS validator (jigsaw.w3.org/css-validator)
w3html          -- Validate a web page URL with the w3c validator (validator.w3.org)
w3link          -- Check web page links with the w3c linkchecker (validator.w3.org/checklink)
w3rdf           -- Validate a RDF URL with the w3c RDF validator (validator.w3.org)
wayback         -- Search The Internet Archive's Wayback Machine for a URL (archive.org)
webster         -- Look up word in Merriam-Webster's Dictionary (www.m-w.com)
wetandwild      -- Real time weather information (many sources)
wikipedia       -- Search the free encyclopedia wikipedia
woffle          -- Search the web using Woffle (localhost:8080)
wolfram         -- Ask questions of the computational knowledge engine
worldwidescience -- Search for science with www.worldwidescience.org
yacy            -- Search YaCy P2P search, including ScienceNet
yahoo           -- Search Yahoo categories (www.yahoo.com)
yandex          -- Search the web using Yandex (yandex.ru)
youtube         -- Search YouTube (www.youtube.com)
yubnub          -- Use the social command-line for the web (yubnub.org)

  All elvi have useful low calorie help, for example:

Usage: rhyme [options] [search words]...
  Surfraw search for rhymes and other word correlations using
  Lycos Rhyme (rhyme.lycos.com)
  $ rhyme Julian
  $ rhyme -method=rel surfer
  Hurclean St. Julien.
  surfboarder, bather, natator, swimmer
Local options:
  -method=                      Type of word correlation to search for
          prefect       |       Perfect rhyme
          syn           |       Synonyms
          hom           |       Homophones
          cons          |       Consonsant rhymes only
          rel           |       Semantically related words
          sub           |       Phrases
          spell         |       Similar spellings
          pic           |       Pictures
          shake         |       Match with Shakespeare archives
          def                   Find wordnet definition
                                Default: perfect
                                Environment: SURFRAW_rhyme_method
Global options:
  -browser=EXECUTABLE           Set browser
                                Default: sensible-browser
  -elvi                         List Surfraw mechanisms for conquering evil
  -escape-url-args=yes|no       Apply url escaping to arguments
                                Default: yes
                                Environment: SURFRAW_escape_url_args
  -g | -graphical               Get some windowed sin
                                Default: yes
                                Environment: SURFRAW_graphical
  -help                         What you're reading now, dude
  -lh | -local-help             Just show elvi-specific help, not the global options
  -p | -print                   Just print search URL, don't pass to browser
  -o | -o=FILE                  Fetch URL and dump to stdout or FILE.
  -new[=yes|no]                 Start in a new window
                                Default: no
                                Environment: SURFRAW_new_window
  -t | -text                    Back to the yellow brick road
  -q | -quote                   Quote arguments with " characters
                                Default: no
                                Environment: SURFRAW_quote_args
  -version                      Display Surfraw version (2.2.7)
  --                            End of options
  Copyright (c) 2003-2013 The Surfraw-Devel Team
  Copyright (c) 2000-2001 Julian Assange <proff@iq.org>
  Copyright (c) 2001 Australian Institute for Collaborative Research
  Copyright (c) 2000 Melbourne Institute for Advanced Study

  If you just want to see the elvi-specific help, use
  elvi -lh or -local-help.

  The system wide configuration file can usually be found in
  /etc/xdg/surfraw/conf (but see 'Config files' above). This can be
  overridden by setting the environment variable SURFRAW_global_conf.

  Each user can also specify their own overrides, usually in
  $HOME/.config/surfraw/conf (again, see 'Config files' above).  This
  can be overridden by setting SURFRAW_conf, either in the environment
  or the global config file.




  There is a browser plugin for Pentadactyl (a vimperator fork) at
  For details, see:

  Code to integrate with uzbl is in


  Read HACKING. Surfrawize the soul of your favourite internet wonder.
  Join the Shell Users' Revolutionary Front Against the WWW by
  submitting code. Reclaim heathen lands. Bear witness to the
  truth. Its love will set you free.

  Join us on surfraw-devel@lists.alioth.debian.org

README originally by Julian Assange
Updated by Ian Beckwith

See NEWS, and ChangeLog for a summary of changes.