The Gifa program is designed for processing, displaying and analysing 1D, 2D and 3D NMR data sets. It has been constructed in a modular fashion, based on three independent modules: a set of commands that perform all the basic processing operations such as apodisation functions, a complete set of Fourier Transforms, phasing and baseline correction, peak-picking and line fitting, linear prediction and maximum entropy processing; a set of command language primitives that permit the execution of complex macro commands; and a set of graphic commands that permit to build a complete graphic user interface, allowing the user to interact easily with the program. We have tried to create a versatile program that can be easily extended according to the user's requirements and that is adapted to a novice as well as an experienced user. The program runs on any UNIX computer, with or without graphic display, in interactive or batch mode.