---
order: 4
---
# CLI
Ema apps have a basic CLI argument structure that takes two kinds of input:
1. `-C
`: specifies the "input directory" (current working directory by default)
2. `gen` subcommand: generates the static site, instead of starting up the dev server
Ema (`runEma`) will change the [current working directory](https://hackage.haskell.org/package/directory-1.3.6.1/docs/System-Directory.html#v:getCurrentDirectory) to the "input directory" before running your application code. It, along with the "gen" subcommand (if used), is passed as the `Ema.CLI.Action` type to your `render` function. You can also use `runEmaWith` if you are manually handling the CLI arguments yourself.