XCF, short for eXperimental Computing Facility, is the native image format of the GIMP image-editing program. It saves all of the data the program handles related to the image, including among others each layer, the current selection, channels, transparency, paths and guides.
The saved image data are compressed only by a simple RLE algorithm, but GIMP supports compressed files, using either gzip or bzip2. The compressed files can be opened as normal image files.
The XCF file format is backward compatible (all versions of GIMP can open earlier versions' files) and in some cases, forward compatible. For example, GIMP 2.0 can save text in text layers while GIMP 1.2 can not. Text layers saved in GIMP 2.0 will open as ordinary image layers in GIMP 1.2. However, XCF files containing layer groups, a feature introduced in GIMP 2.7, can't be opened with GIMP 2.6.
The use of XCF as a data interchange format is not recommended by the GIMP developers, since the format reflects the GIMP's internal data structures, and there may be minor format changes in future versions. The source code of GIMP itself (which is freely available) is the reference documentation of the format. Henning Makholm (see XCFTools below) has written a specification which has been adopted by the GIMP developers. In addition, a collaborative effort between the GIMP developers and Krita developers is underway to design a raster file format called OpenRaster, modelled on the OpenDocument format, for use in both applications in a future version.
As of GIMP version 2.8 images are loaded and imported in XCF format. The GIMP only supports saving in XCF format; other formats have been moved to the Export dialog.
XCF is used as a file format in other programs besides the GIMP:
CinePaint is a fork of the GIMP with support for 16 bit and 32 bit floating point channels, and 16 bit integer channels. There are plans for CinePaint to move away from XCF as a file format. The XCF file format used in CinePaint has diverged from the GIMP's native format, so XCF files created in the GIMP cannot be opened in Cinepaint, and vice versa.
Some image viewers and conversion software can read the format with varying degrees of success:
DBGallery displays multi-layer non-indexed images and allows indexing, searching and other photo database operations.
ImageMagick has an XCF reader module that can read single-layer non-indexed images.
Project Dogwaffle including PD Pro, PD Particles and PD Artist imports XCF files using the ImageMagick library.
Krita imports XCF files using the GraphicsMagick library.
Kolourpaint can read XCF files using KDE's image I/O library plugin, like any other KDE program.
ShowImg can display multi-layer non-indexed images.
Gwenview can display multi-layer non-indexed images.
GImageView  can display multi-layer non-indexed images.
Digikam can display multi-layer non-indexed images.
Imagine can display single-layer non-indexed images.
XnView can display single-layer non-indexed images.
Inkscape added support for XCF export in the 0.44 release.
XCFTools  by Henning Makholm is a set of utilities which deformats and composes XCF images. It allows extraction of individual layers, or an entire composed image, as PNG or PNM.
IrfanView can display multi-layer images (composite image and individual layers).
Paint.NET can load and save multi-layer .xcf/.xcfgz/.xcfbz2 images (via ImXCF.FileType plugin)
Chasys Draw IES can load and save multi-layer .xcf/.xcfgz/.xcfbz2 images (from version 3.71.02)