Grail ® Home Page

Welcome to the home page for the Grail Internet browser.

Grail is an extensible Internet browser written entirely in the interpreted object-oriented programming language Python. It runs on Unix, and, to some extent, on Windows and Macintosh. Grail is easily extended to support new protocols or file formats. Grail is distributed in source form, free of charge, and without warranties. It requires recent versions of Python and Tcl/Tk to run.


Grail development is now hosted on SourceForge. The project page provides links to information about accessing Grail repository on SourceForge. The CVS repository imported at SourceForge contains Grail 1.6 with a few minor patches. Two new mailing lists are being run from the SourceForge site as well: grail-interest list replaces the current list for announcements and general discussion, and grail-checkins list is for developers interested in receiving notifications of checkin activity in the source code repository.

Download Grail 0.6 now! A minor revision of Grail was released on 1 April 1999. This version requires Python 1.5 or newer, and Tcl/Tk 8.0 or newer. See the news bulletin.

If you are already a Grail user, this release will fix a few bugs and provide some minor feature enhancements. If you are not already a Grail user, please be aware that development is at a crawl and we cannot be particularly responsive to bug reports (though we'd be glad to know of any bugs you find!).

It is allowed to redistribute Grail and to use it for commercial purposes (within the terms of the license).

While Grail's main platform remains Unix, it also runs on Windows and Macintosh.


* On this page: introduction, features, applets, plug-ins.
* More about Grail (user help, tips, news, bugs, programming, tutorial, papers, etc.).
* Grail sources
* Applet Demo Collection
* Grail Mailing List


Grail is an extensible Internet browser. It supports the protocols and file formats commonly found on the World-Wide Web, such as HTTP, FTP, and HTML, but, unlike most browsers, it is also easily extended to support other protocols or file formats, such as CNRI's handle protocol. Grail is distributed by CNRI free of charge, and can be freely redistributed (within reason).

Grail is written and extensible in Python, a free object-oriented programming language. It also uses Tk, a free UI toolkit by John Ousterhout. Grail should run on any Unix system to which Python and Tk have been ported - i.e. almost all Unix systems supporting X11. In particular, Grail is one of the few web browsers that supports Solaris for Intel x86 processors. It now also runs on Windows and Macintosh, since there are now stable ports of Tk to those platforms. (You need a lot of RAM though.)


Grail lets you download Python programs that execute inside Grail on your local machine. These little applications ("applets") can do things like display animations, interact with the user in new ways, even create additional menus that pop up dialogs if you like. If you are using Grail now, visit our applet demo collection. Grail applets run in a restricted execution environment, so that broken or malicious applets ("Trojan Horses") can't erase your files or crash your computer. (However, see a security warning.)

Browser Features

Grail supports full HTML 2.0, including images, forms and imagemaps, and many HTML 3.2 features. It uses asynchronous document transfer, supports printing and saving documents, searching, bookmarks, history, and more. It also supports frames, client-side imagemaps, file upload in forms, support for JPEG, TIFF and XBM images, image printing, and tables (within the limitations of the Tk toolkit). It has preferences panels, an I/O status display, a remote control interface, and many, many other nifty features. For the full scoop, see "What's New" and "Grail Info".

Plug-in Modules

Apart from running applets, Grail is extensible in other areas, by writing so-called Grail plug-in modules. Grail Plug-ins can be written for the following areas:

* New protocols (e.g. CNRI's handle protocol)
* New file formats (e.g. for handling JPEG or sound directly)
* New HTML tags (e.g. tables)
* New preference panels

[Grail Home]