diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e5281f9fb8241f6fb6329438d2b20f0b950a89f6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,109 @@
+# GRIB Processor
+
+Ingest grib files and publish metadata on those files to RabbitMQ servers.
+
+## Description
+
+Watch a directory for new or updated grib files and publish an AMQP payload for each message in the file. This event processor was made for use by the Satellite Data Services at the SSEC. To see the format of the AMQP payloads please check out [payload.md](/payload.md).
+
+### Limitations
+
+Currently, this package can only process GRIB2 files, GRIB1 files will be ignored.
+
+## Installation
+
+### Requirements
+
+* Python >= 3.8
+* [NCEPLIBS-g2c](https://github.com/NOAA-EMC/NCEPLIBS-g2c)
+  * This is the C library used to read GRIB files.
+
+To install, simply clone the git repo:
+
+```bash
+git clone https://gitlab.ssec.wisc.edu/mdrexler/grib_rmq_stream.git --depth 1
+cd grib_rmq_stream
+./grib_processor --help
+```
+
+## Setup
+
+This will show you how to set up a virtual environment to run the processor with. It assumes that you've installed the grib processor and are in the `grib_rmq_stream` directory.
+
+There are a couple of ways to get your environment working based on your environment manager. See [anaconda](#anaconda) if you want to use anaconda or [virtualenv](#virtualenv) if you just want to use virutalenv.
+
+### Anaconda
+
+Create the environment/install the requirements.
+
+```bash
+conda create -n {env_name} python={py_version} --file requirements.txt -c conda-forge
+```
+
+Replaec {env_name} with the name of your environment, and {py_version} with a version larger than 3.8.
+
+Activate environment.
+
+```bash
+conda activate {env_name}
+```
+
+### Virtualenv
+
+Check the system python version.
+
+```bash
+python3 --version
+```
+
+If the version is less than 3.8, you're kind of out of luck. I recommend using [anaconda](#anaconda) to get a more up-to-date version of python.
+
+Create an environment (this might ask you to install a package on linux).
+
+```bash
+python3 -m venv .venv
+```
+
+Activate the environment.
+```bash
+source .venv/bin/activate
+```
+
+Install the requirements.
+
+```bash
+python3 -m pip install -r requirements.txt
+```
+
+If you get an error during installation about not finding a library, set the environment variable `G2C_DIR` to be the path to the folder containing the 'lib' folder for [NCEPLIBS-g2c](https://github.com/NOAA-EMC/NCEPLIBS-g2c). e.g.
+
+If `libg2c.so` is under `/home/user/.conda/envs/lib-env/lib/`, you could install using:
+
+```bash
+G2C_DIR=/home/user/.conda/envs/lib-env/ python3 -m pip install -r requirements.txt
+```
+
+## Usage
+
+Once you've [setup](#setup) an environment, you can start the event processor simply by calling `./grib_processor {dir}`. Where {dir} is the directory to watch for grib files. See [configuration](#configuration) for more information about how to change the behavior of the processor.
+
+
+### Configuration
+
+There are two ways to configure the grib_processer script: through a .env file and through the CLI. The .env file contains secret information that you might not want in the command name, and the CLI has all other configuration.
+
+#### .env File
+
+The .env file can have two keys: `RMQ_USER` and `RMQ_PASS` which specify the RabbitMQ username and password respectively.
+
+#### CLI Options
+
+Use `./grib_processor --help` for a full list of command line arguments and what they do.
+
+## Author
+
+Created by [Max Drexler](mailto:mndrexler@wisc.edu).
+
+## License
+
+This software can be freely distributed and/or modified without consent of the original author. For more information, see the [LICENSE](/LICENSE) file.