документация – How to write a good README?


I think everyone has seen README files. I would like a detailed guide on how to write an exceptional README with as little effort as possible.

  • What is a "README file"?
  • What should I write in it?
  • How should I format it?


The README should be simple and short. A good README can save time, especially if it's a README for something like a library that parses command line options.

Here's what it should include:

  • names of projects, all submodules and libraries (sometimes they are named differently and confuse new users)
  • description of each project, all submodules and libraries
  • 5-line snippet (code snippet) with usage example (if it's a library)
  • copyright and license information (or link to license)
  • instructions on how to find documentation
  • instructions for installation, configuration and launch
  • instructions for obtaining fresh sources and detailed assembly instructions (or a quick review and a link to installation instructions)
  • a list of developers or a link to a file with a description of the authors
  • instructions for submitting bug reports, feature requests, change requests, patches, and how to receive announcements, join a mailing list, or join the developer community in other forms
  • contact information (email address, website, company name, address, etc.)
  • a brief history of changes, if this is an update or a fork of another project
  • legal information (for cryptographic software)

The Apache HTTP Server has a simple but good README . Another good example is the README for GNU make available online.

About formatting:

stick to Unix tradition as much as possible, and/or use markdown, especially for projects on Github that render README.md to an html file.

  • Only ASCII characters if the README is in English
  • write it in English, if possible, and include the file with the translated version. Add a two-letter extension corresponding to the language to such a file, for example README.RU
  • no more than 80 characters per line
  • one blank line between paragraphs
  • underline the header line with minus characters
  • use spaces (0x20) for indentation, not tabs

Let's put it all together…


GNU make полностью документирован в справочнике по GNU make, который содержится
в этом дистрибутиве как файл make.texinfo. Вы также можете найти он-лайн,
PostScript и DVI версии на сайте FSF. Там же приведена информация о заказе 
документации в печатном виде.


Wikipedia defines the README as:

A README (or READ ME) file contains information about files in a folder or archive and is usually distributed with software.

Wikipedia lists parts of the README:

  • setup instructions
  • installation instructions
  • Operating Instructions
  • manifest file
  • copyright and licensing information
  • contact information for distributor or developers
  • known bugs
  • troubleshooting
  • credits and credits
  • List of changes
Scroll to Top