[Home](./index.md) > [@keymanapp/kmc-model-info](./kmc-model-info.md) > [ModelInfoCompiler](./kmc-model-info.modelinfocompiler.md)
## ModelInfoCompiler class
Compiles source data from a lexical model project to a .model\_info. The compiler does not read or write from filesystem or network directly, but relies on callbacks for all external IO.
**Signature:**
```typescript
export declare class ModelInfoCompiler implements KeymanCompiler
```
**Implements:** KeymanCompiler
## Constructors
| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)()](./kmc-model-info.modelinfocompiler._constructor_.md) | | Constructs a new instance of the ModelInfoCompiler class |
## Methods
| Method | Modifiers | Description |
| --- | --- | --- |
| [init(callbacks, options)](./kmc-model-info.modelinfocompiler.init.md) | | Initialize the compiler. Copies options. |
| [run(inputFilename, outputFilename)](./kmc-model-info.modelinfocompiler.run.md) | |
Builds .model\_info file with metadata from the model and package source file. Returns an object containing binary artifacts on success. The files are passed in by name, and the compiler will use callbacks as passed to the [ModelInfoCompiler.init()](./kmc-model-info.modelinfocompiler.init.md) function to read any input files by disk.
This function is intended for use within the lexical-models repository. While many of the parameters could be deduced from each other, they are specified here to reduce the number of places the filenames are constructed.
| | [write(artifacts)](./kmc-model-info.modelinfocompiler.write.md) | |Write artifacts from a successful compile to disk, via callbacks methods. The artifacts written may include:
- .model\_info file - metadata file used by keyman.com
|