What is MIME type "text/x-common-lisp"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

text/x-common-lisp is a MIME type for files written in the Lisp family. It tells systems these plain text files use Lisp syntax.

This type uses the non‐standard x- prefix. It is common in environments that work with Common Lisp and its variants. Tools like text editors, integrated development environments, and compilers use it to apply the correct syntax coloring and formatting automatically.


Files declared as text/x-common-lisp are usually Lisp source or related scripts. They include files for Common Lisp (for example, CL, LISP, LSP), Emacs Lisp (EL, EMACS), and other dialects.

Some files may also include related template or configuration formats—like those used by KiCad layouts (KICAD_PCB, KICAD_MOD, KICAD_WKS)—or even files with S-expression syntax from other domains (WAT, WAST).

This MIME type streamlines development workflows by ensuring the appropriate handling of Lisp code across various tools and platforms.

For additional insight, consider checking out resources from the Common Lisp community or the GNU Emacs project.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: text/x-common-lisp    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="text/x-common-lisp">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'text/x-common-lisp');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

How do I configure Apache or Nginx to serve Lisp files correctly?

For Apache, add the directive AddType text/x-common-lisp .lisp .cl .lsp to your configuration or .htaccess file. For Nginx, include text/x-common-lisp lisp cl lsp; within the types block of your mime.types file to ensure the correct headers are sent.

Why are my KiCad files detected as text/x-common-lisp?

KiCad files, such as .kicad_pcb and .kicad_mod, store data using S-expressions (nested parenthetical lists). Because this is the fundamental syntax of Lisp, MIME detectors often classify these design files as Lisp source code.

Can web browsers execute code served with this MIME type?

No, standard web browsers do not have built-in Lisp interpreters. If a browser encounters text/x-common-lisp, it will usually display the file as plain text or prompt the user to download it. To run Lisp on the web, code is typically transpiled to JavaScript.

What does the "x-" prefix indicate in this MIME type?

The x- prefix signifies that text/x-common-lisp is a non-standard type that has not been officially registered with the IANA. Despite this, it is widely recognized by Linux systems, text editors, and IDEs for identifying Common Lisp and Emacs Lisp (.el) files.

Is text/x-common-lisp used for WebAssembly files?

Yes, it is sometimes associated with the WebAssembly Text format (.wat) and .wast files. Like KiCad, these formats utilize S-expression syntax, leading systems to categorize them under the generic Lisp MIME type.

What is the difference between text/x-common-lisp and text/plain?

While both types indicate the file is human-readable text, text/x-common-lisp specifically signals that the content follows Lisp syntax rules. This allows compatible editors to automatically apply syntax highlighting and indentation rules specific to Lisp dialects like .cl or .lsp.

Are files with this MIME type safe to open?

Generally, yes, as they are plain text files. However, they often contain executable source code (e.g., .asd system definitions). You should view them in a text editor safely, but avoid executing or loading them into a Lisp environment unless you trust the source.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.