# A Simple Nix Expression

This section shows how to add and test the GNU Hello package to the Nix Packages collection. Hello is a program that prints out the text “Hello, world!”.

To add a package to the Nix Packages collection, you generally need to do three things:

1. Write a Nix expression for the package. This is a file that describes all the inputs involved in building the package, such as dependencies, sources, and so on.

2. Write a builder. This is a shell script that builds the package from the inputs. (In fact, it can be written in any language, but typically it's a `bash` shell script.)

3. Add the package to the file `pkgs/top-level/all-packages.nix`. The Nix expression written in the first step is a function; it requires other packages in order to build it. In this step you put it all together, i.e., you call the function with the right arguments to build the actual package.