# Rainbow ## How To Use Rainbow

If you are using an Okapi Tool after the M9 release, you should be using the wiki online help:
http://www.opentag.com/okapi/wiki/index.php?title=Rainbow

- Common Usage
- Command Line
- Using Projects Across Platforms

## Common Usage

The main function of Rainbow is to launch utilities. The usual steps to run a Rainbow utility are the following:

1. Add the input documents to process to the input file lists.
2. Make sure each input document is associated with its relevant filter configuration.
3. Make sure the common parameters needed by the utility are set properly (e.g. languages, encoding, output filenames, etc.)
4. In the Utilities menu, select the utility to execute.
5. In the utility's options dialog box (if there is any), set the options specific to the given utility.
6. Execute the utility.
7. Review any warning or error message in the Log window.

You can save all your input files settings and options in a Rainbow project file (`.rnb` extension) with the Save or Save As command in the File menu. Use the Open command to load an existing project.

Rainbow offers a set of pre-defined utilities, but you can also build and run your own pipelines. To do this, use the Edit / Execute Pipeline command in the Utilities menu.

## Command Line

You can also use Rainbow from the command line. See the Command Line section for more details.

## Using Projects Across Platforms

You can use projects between platforms. For example save a project in Windows, copy the project file and its dependencies to Linux and use it there. There are, however, a certain number of restrictions for such projects.

While when saving the project file Rainbow converts all file separators in relative paths as '/' and convert them back to whatever the normal separator is for the given platform is when loading the project file back. But it falls to the use to take the following steps:

- All input root references should be set to use the automated root (where the project is located).
- The filter parameters folder should be set to use the automated path as well.
- Utilities paths and folder data should use the `${ProjDir}` variable if possible, and use the '/' file separator.

Most projects following those guidelines should be portable from one platform to the other.