diff --git a/developer/19.0/reference/api/index.md b/developer/19.0/reference/api/index.md
index 9d6d2599c..db429bce7 100644
--- a/developer/19.0/reference/api/index.md
+++ b/developer/19.0/reference/api/index.md
@@ -27,6 +27,15 @@ Description
kmc-analyze - keyboard analysis classes, including tools for `&displayMap`.
+
+
diff --git a/developer/19.0/reference/api/kmc-convert.converter.init.md b/developer/19.0/reference/api/kmc-convert.converter.init.md
new file mode 100644
index 000000000..d581391f4
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converter.init.md
@@ -0,0 +1,72 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [Converter](./kmc-convert.converter.md) > [init](./kmc-convert.converter.init.md)
+
+## Converter.init() method
+
+Initialize the converter. Copies options.
+
+**Signature:**
+
+```typescript
+init(callbacks: CompilerCallbacks, options: CompilerOptions): Promise;
+```
+
+## Parameters
+
+|
+
+Parameter
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+callbacks
+
+
+ |
+
+CompilerCallbacks
+
+
+ |
+
+Callbacks for external interfaces, including message reporting and file io
+
+
+ |
+|
+
+options
+
+
+ |
+
+CompilerOptions
+
+
+ |
+
+Compiler options
+
+
+ |
+
+
+**Returns:**
+
+Promise<boolean>
+
+false if initialization fails
+
diff --git a/developer/19.0/reference/api/kmc-convert.converter.md b/developer/19.0/reference/api/kmc-convert.converter.md
new file mode 100644
index 000000000..2165d5125
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converter.md
@@ -0,0 +1,79 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [Converter](./kmc-convert.converter.md)
+
+## Converter class
+
+Converts keyboards between different source file formats. 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 Converter implements KeymanCompiler
+```
+**Implements:** KeymanCompiler
+
+## Methods
+
+|
+
+Method
+
+
+ |
+
+Modifiers
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[init(callbacks, options)](./kmc-convert.converter.init.md)
+
+
+ |
+
+
+ |
+
+Initialize the converter. Copies options.
+
+
+ |
+|
+
+[run(inputFilename, outputFilename)](./kmc-convert.converter.run.md)
+
+
+ |
+
+
+ |
+
+Converts a keyboard source file to another format. Returns an object containing source artifacts on success. The files are passed in by name, and the compiler will use callbacks as passed to the [Converter.init()](./kmc-convert.converter.init.md) function to read any input files by disk.
+
+
+ |
+|
+
+[write(artifacts)](./kmc-convert.converter.write.md)
+
+
+ |
+
+
+ |
+
+Write artifacts from a successful compile to disk, via callbacks methods. The artifacts written may include:
+
+- .kmn file - source keyboard used by Keyman on desktop platforms - .kvks file - source on screen keyboard used by Keyman on desktop platforms - .keyman-touch-layout file - source touch layout keyboard for touch platforms - other keyboard source files as implemented
+
+
+ |
+
+
diff --git a/developer/19.0/reference/api/kmc-convert.converter.run.md b/developer/19.0/reference/api/kmc-convert.converter.run.md
new file mode 100644
index 000000000..ae7498aa6
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converter.run.md
@@ -0,0 +1,70 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [Converter](./kmc-convert.converter.md) > [run](./kmc-convert.converter.run.md)
+
+## Converter.run() method
+
+Converts a keyboard source file to another format. Returns an object containing source artifacts on success. The files are passed in by name, and the compiler will use callbacks as passed to the [Converter.init()](./kmc-convert.converter.init.md) function to read any input files by disk.
+
+**Signature:**
+
+```typescript
+run(inputFilename: string, outputFilename?: string): Promise;
+```
+
+## Parameters
+
+|
+
+Parameter
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+inputFilename
+
+
+ |
+
+string
+
+
+ |
+
+
+ |
+|
+
+outputFilename
+
+
+ |
+
+string
+
+
+ |
+
+_(Optional)_
+
+
+ |
+
+
+**Returns:**
+
+Promise<[ConverterResult](./kmc-convert.converterresult.md)>
+
+Source artifacts on success, null on failure.
+
diff --git a/developer/19.0/reference/api/kmc-convert.converter.write.md b/developer/19.0/reference/api/kmc-convert.converter.write.md
new file mode 100644
index 000000000..687eab956
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converter.write.md
@@ -0,0 +1,58 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [Converter](./kmc-convert.converter.md) > [write](./kmc-convert.converter.write.md)
+
+## Converter.write() method
+
+Write artifacts from a successful compile to disk, via callbacks methods. The artifacts written may include:
+
+- .kmn file - source keyboard used by Keyman on desktop platforms - .kvks file - source on screen keyboard used by Keyman on desktop platforms - .keyman-touch-layout file - source touch layout keyboard for touch platforms - other keyboard source files as implemented
+
+**Signature:**
+
+```typescript
+write(artifacts: ConverterArtifacts): Promise;
+```
+
+## Parameters
+
+|
+
+Parameter
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+artifacts
+
+
+ |
+
+[ConverterArtifacts](./kmc-convert.converterartifacts.md)
+
+
+ |
+
+object containing artifact data to write out
+
+
+ |
+
+
+**Returns:**
+
+Promise<boolean>
+
+true on success
+
diff --git a/developer/19.0/reference/api/kmc-convert.converterartifacts.md b/developer/19.0/reference/api/kmc-convert.converterartifacts.md
new file mode 100644
index 000000000..8febbedc3
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converterartifacts.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterArtifacts](./kmc-convert.converterartifacts.md)
+
+## ConverterArtifacts interface
+
+**Signature:**
+
+```typescript
+export interface ConverterArtifacts extends KeymanCompilerArtifacts
+```
+**Extends:** KeymanCompilerArtifacts
+
diff --git a/developer/19.0/reference/api/kmc-convert.converteroptions.failifincomplete.md b/developer/19.0/reference/api/kmc-convert.converteroptions.failifincomplete.md
new file mode 100644
index 000000000..bffa9be59
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converteroptions.failifincomplete.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterOptions](./kmc-convert.converteroptions.md) > [failIfIncomplete](./kmc-convert.converteroptions.failifincomplete.md)
+
+## ConverterOptions.failIfIncomplete property
+
+Fail if the keyboard conversion is not 100% complete
+
+**Signature:**
+
+```typescript
+failIfIncomplete?: boolean;
+```
diff --git a/developer/19.0/reference/api/kmc-convert.converteroptions.md b/developer/19.0/reference/api/kmc-convert.converteroptions.md
new file mode 100644
index 000000000..0e8a89892
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converteroptions.md
@@ -0,0 +1,59 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterOptions](./kmc-convert.converteroptions.md)
+
+## ConverterOptions interface
+
+Options for the keyboard converter
+
+**Signature:**
+
+```typescript
+export interface ConverterOptions extends CompilerOptions
+```
+**Extends:** CompilerOptions
+
+## Properties
+
+|
+
+Property
+
+
+ |
+
+Modifiers
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[failIfIncomplete?](./kmc-convert.converteroptions.failifincomplete.md)
+
+
+ |
+
+
+ |
+
+boolean
+
+
+ |
+
+_(Optional)_ Fail if the keyboard conversion is not 100% complete
+
+
+ |
+
+
diff --git a/developer/19.0/reference/api/kmc-convert.converterresult.artifacts.md b/developer/19.0/reference/api/kmc-convert.converterresult.artifacts.md
new file mode 100644
index 000000000..c3fcff105
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converterresult.artifacts.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterResult](./kmc-convert.converterresult.md) > [artifacts](./kmc-convert.converterresult.artifacts.md)
+
+## ConverterResult.artifacts property
+
+Internal in-memory build artifacts from a successful compilation. Caller can write these to disk with [Converter.write()](./kmc-convert.converter.write.md)
+
+**Signature:**
+
+```typescript
+artifacts: ConverterArtifacts;
+```
diff --git a/developer/19.0/reference/api/kmc-convert.converterresult.md b/developer/19.0/reference/api/kmc-convert.converterresult.md
new file mode 100644
index 000000000..b9f4b819e
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.converterresult.md
@@ -0,0 +1,57 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterResult](./kmc-convert.converterresult.md)
+
+## ConverterResult interface
+
+**Signature:**
+
+```typescript
+export interface ConverterResult extends KeymanCompilerResult
+```
+**Extends:** KeymanCompilerResult
+
+## Properties
+
+|
+
+Property
+
+
+ |
+
+Modifiers
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[artifacts](./kmc-convert.converterresult.artifacts.md)
+
+
+ |
+
+
+ |
+
+[ConverterArtifacts](./kmc-convert.converterartifacts.md)
+
+
+ |
+
+Internal in-memory build artifacts from a successful compilation. Caller can write these to disk with [Converter.write()](./kmc-convert.converter.write.md)
+
+
+ |
+
+
diff --git a/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.keymantouchlayout.md b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.keymantouchlayout.md
new file mode 100644
index 000000000..01ac9bdcb
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.keymantouchlayout.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterToKmnArtifacts](./kmc-convert.convertertokmnartifacts.md) > [keymanTouchLayout](./kmc-convert.convertertokmnartifacts.keymantouchlayout.md)
+
+## ConverterToKmnArtifacts.keymanTouchLayout property
+
+Source touch keyboard filedata and filename
+
+**Signature:**
+
+```typescript
+keymanTouchLayout?: KeymanCompilerArtifactOptional;
+```
diff --git a/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.kmn.md b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.kmn.md
new file mode 100644
index 000000000..6fc6fde90
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.kmn.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterToKmnArtifacts](./kmc-convert.convertertokmnartifacts.md) > [kmn](./kmc-convert.convertertokmnartifacts.kmn.md)
+
+## ConverterToKmnArtifacts.kmn property
+
+Source keyboard filedata and filename
+
+**Signature:**
+
+```typescript
+kmn?: KeymanCompilerArtifactOptional;
+```
diff --git a/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.kvks.md b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.kvks.md
new file mode 100644
index 000000000..3e04ffbd9
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.kvks.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterToKmnArtifacts](./kmc-convert.convertertokmnartifacts.md) > [kvks](./kmc-convert.convertertokmnartifacts.kvks.md)
+
+## ConverterToKmnArtifacts.kvks property
+
+Source on screen keyboard filedata and filename
+
+**Signature:**
+
+```typescript
+kvks?: KeymanCompilerArtifactOptional;
+```
diff --git a/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.md b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.md
new file mode 100644
index 000000000..444d0e1c8
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.convertertokmnartifacts.md
@@ -0,0 +1,97 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterToKmnArtifacts](./kmc-convert.convertertokmnartifacts.md)
+
+## ConverterToKmnArtifacts interface
+
+Internal in-memory build artifacts from a successful compilation
+
+**Signature:**
+
+```typescript
+export interface ConverterToKmnArtifacts extends ConverterArtifacts
+```
+**Extends:** [ConverterArtifacts](./kmc-convert.converterartifacts.md)
+
+## Properties
+
+|
+
+Property
+
+
+ |
+
+Modifiers
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[keymanTouchLayout?](./kmc-convert.convertertokmnartifacts.keymantouchlayout.md)
+
+
+ |
+
+
+ |
+
+KeymanCompilerArtifactOptional
+
+
+ |
+
+_(Optional)_ Source touch keyboard filedata and filename
+
+
+ |
+|
+
+[kmn?](./kmc-convert.convertertokmnartifacts.kmn.md)
+
+
+ |
+
+
+ |
+
+KeymanCompilerArtifactOptional
+
+
+ |
+
+_(Optional)_ Source keyboard filedata and filename
+
+
+ |
+|
+
+[kvks?](./kmc-convert.convertertokmnartifacts.kvks.md)
+
+
+ |
+
+
+ |
+
+KeymanCompilerArtifactOptional
+
+
+ |
+
+_(Optional)_ Source on screen keyboard filedata and filename
+
+
+ |
+
+
diff --git a/developer/19.0/reference/api/kmc-convert.convertertokmnresult.artifacts.md b/developer/19.0/reference/api/kmc-convert.convertertokmnresult.artifacts.md
new file mode 100644
index 000000000..b430cbc73
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.convertertokmnresult.artifacts.md
@@ -0,0 +1,13 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterToKmnResult](./kmc-convert.convertertokmnresult.md) > [artifacts](./kmc-convert.convertertokmnresult.artifacts.md)
+
+## ConverterToKmnResult.artifacts property
+
+Internal in-memory build artifacts from a successful compilation to kmn. Caller can write these to disk with [Converter.write()](./kmc-convert.converter.write.md)
+
+**Signature:**
+
+```typescript
+artifacts: ConverterToKmnArtifacts;
+```
diff --git a/developer/19.0/reference/api/kmc-convert.convertertokmnresult.md b/developer/19.0/reference/api/kmc-convert.convertertokmnresult.md
new file mode 100644
index 000000000..3bb0c9f35
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.convertertokmnresult.md
@@ -0,0 +1,57 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md) > [ConverterToKmnResult](./kmc-convert.convertertokmnresult.md)
+
+## ConverterToKmnResult interface
+
+**Signature:**
+
+```typescript
+export interface ConverterToKmnResult extends ConverterResult
+```
+**Extends:** [ConverterResult](./kmc-convert.converterresult.md)
+
+## Properties
+
+|
+
+Property
+
+
+ |
+
+Modifiers
+
+
+ |
+
+Type
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[artifacts](./kmc-convert.convertertokmnresult.artifacts.md)
+
+
+ |
+
+
+ |
+
+[ConverterToKmnArtifacts](./kmc-convert.convertertokmnartifacts.md)
+
+
+ |
+
+Internal in-memory build artifacts from a successful compilation to kmn. Caller can write these to disk with [Converter.write()](./kmc-convert.converter.write.md)
+
+
+ |
+
+
diff --git a/developer/19.0/reference/api/kmc-convert.md b/developer/19.0/reference/api/kmc-convert.md
new file mode 100644
index 000000000..138562433
--- /dev/null
+++ b/developer/19.0/reference/api/kmc-convert.md
@@ -0,0 +1,96 @@
+
+
+[Home](./index.md) > [@keymanapp/kmc-convert](./kmc-convert.md)
+
+## kmc-convert package
+
+## Classes
+
+|
+
+Class
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[Converter](./kmc-convert.converter.md)
+
+
+ |
+
+Converts keyboards between different source file formats. The compiler does not read or write from filesystem or network directly, but relies on callbacks for all external IO.
+
+
+ |
+
+
+## Interfaces
+
+|
+
+Interface
+
+
+ |
+
+Description
+
+
+ |
+|
+
+[ConverterArtifacts](./kmc-convert.converterartifacts.md)
+
+
+ |
+
+
+ |
+|
+
+[ConverterOptions](./kmc-convert.converteroptions.md)
+
+
+ |
+
+Options for the keyboard converter
+
+
+ |
+|
+
+[ConverterResult](./kmc-convert.converterresult.md)
+
+
+ |
+
+
+ |
+|
+
+[ConverterToKmnArtifacts](./kmc-convert.convertertokmnartifacts.md)
+
+
+ |
+
+Internal in-memory build artifacts from a successful compilation
+
+
+ |
+|
+
+[ConverterToKmnResult](./kmc-convert.convertertokmnresult.md)
+
+
+ |
+
+
+ |
+
+
diff --git a/developer/19.0/reference/messages/index.md b/developer/19.0/reference/messages/index.md
index 09d7d9a13..028e1499c 100644
--- a/developer/19.0/reference/messages/index.md
+++ b/developer/19.0/reference/messages/index.md
@@ -14,3 +14,4 @@ title: Compiler Messages Reference
* [kmc-keyboard-info.KeyboardInfoCompilerMessages](kmc-keyboard-info.keyboardinfocompilermessages)
* [kmc-generate.GeneratorMessages](kmc-generate.generatormessages)
* [kmc-copy.CopierMessages](kmc-copy.copiermessages)
+* [kmc-convert.ConverterMessages](kmc-convert.convertermessages)
diff --git a/developer/19.0/reference/messages/km0c003.md b/developer/19.0/reference/messages/km0c003.md
new file mode 100644
index 000000000..46bf9a9b8
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c003.md
@@ -0,0 +1,11 @@
+---
+title: KM0C003: ERROR_FileNotFound
+---
+
+| | |
+|------------|---------- |
+| Message | Input filename '<param>' does not exist or could not be loaded\. |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_FileNotFound` |
+
+
diff --git a/developer/19.0/reference/messages/km0c004.md b/developer/19.0/reference/messages/km0c004.md
new file mode 100644
index 000000000..21b3e5803
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c004.md
@@ -0,0 +1,11 @@
+---
+title: KM0C004: ERROR_InvalidFile
+---
+
+| | |
+|------------|---------- |
+| Message | The source file has an invalid structure: <param> |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_InvalidFile` |
+
+
diff --git a/developer/19.0/reference/messages/km0c005.md b/developer/19.0/reference/messages/km0c005.md
new file mode 100644
index 000000000..744cbe947
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c005.md
@@ -0,0 +1,11 @@
+---
+title: KM0C005: ERROR_UnableToReadFile
+---
+
+| | |
+|------------|---------- |
+| Message | Input file '<param>' could not be read\. |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UnableToReadFile` |
+
+
diff --git a/developer/19.0/reference/messages/km0c006.md b/developer/19.0/reference/messages/km0c006.md
new file mode 100644
index 000000000..9ecd8e43e
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c006.md
@@ -0,0 +1,11 @@
+---
+title: KM0C006: ERROR_UnableToRead
+---
+
+| | |
+|------------|---------- |
+| Message | Input file could not be read\. <param> |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UnableToRead` |
+
+
diff --git a/developer/19.0/reference/messages/km0c007.md b/developer/19.0/reference/messages/km0c007.md
new file mode 100644
index 000000000..a3bbadd2b
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c007.md
@@ -0,0 +1,11 @@
+---
+title: KM0C007: ERROR_UnsupportedCharactersDetected
+---
+
+| | |
+|------------|---------- |
+| Message | Input file contains unsupported character '<param>' at keyMap index <param> on Keycode <param> \(<param>\) |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UnsupportedCharactersDetected` |
+
+
diff --git a/developer/19.0/reference/messages/km0c008.md b/developer/19.0/reference/messages/km0c008.md
new file mode 100644
index 000000000..f3a324956
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c008.md
@@ -0,0 +1,11 @@
+---
+title: KM0C008: ERROR_UndefinedActionDetected
+---
+
+| | |
+|------------|---------- |
+| Message | Action id <param> of key <param> in keymapIndex <param> is not defined |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UndefinedActionDetected` |
+
+
diff --git a/developer/19.0/reference/messages/km0c009.md b/developer/19.0/reference/messages/km0c009.md
new file mode 100644
index 000000000..00a54ea60
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c009.md
@@ -0,0 +1,11 @@
+---
+title: KM0C009: ERROR_NoConverterFound
+---
+
+| | |
+|------------|---------- |
+| Message | No converter is available that can convert from '<param>' to '<param>'\. |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_NoConverterFound` |
+
+
diff --git a/developer/19.0/reference/messages/km0c00a.md b/developer/19.0/reference/messages/km0c00a.md
new file mode 100644
index 000000000..03bc66e61
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c00a.md
@@ -0,0 +1,11 @@
+---
+title: KM0C00A: ERROR_UnableToConvert
+---
+
+| | |
+|------------|---------- |
+| Message | Input file '<param>' could not be converted\. |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UnableToConvert` |
+
+
diff --git a/developer/19.0/reference/messages/km0c00b.md b/developer/19.0/reference/messages/km0c00b.md
new file mode 100644
index 000000000..9a4e5fcbb
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c00b.md
@@ -0,0 +1,11 @@
+---
+title: KM0C00B: ERROR_UnableToWrite
+---
+
+| | |
+|------------|---------- |
+| Message | Output file for '<param>' could not be written\. <param> |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UnableToWrite` |
+
+
diff --git a/developer/19.0/reference/messages/km0c00c.md b/developer/19.0/reference/messages/km0c00c.md
new file mode 100644
index 000000000..0ed08da02
--- /dev/null
+++ b/developer/19.0/reference/messages/km0c00c.md
@@ -0,0 +1,11 @@
+---
+title: KM0C00C: ERROR_UnableToParse
+---
+
+| | |
+|------------|---------- |
+| Message | Input data could not be parsed\. |
+| Module | [kmc-convert.ConverterMessages](kmc-convert.convertermessages) |
+| Identifier | `ERROR_UnableToParse` |
+
+
diff --git a/developer/19.0/reference/messages/kmc-convert.convertermessages.md b/developer/19.0/reference/messages/kmc-convert.convertermessages.md
new file mode 100644
index 000000000..71e977e3d
--- /dev/null
+++ b/developer/19.0/reference/messages/kmc-convert.convertermessages.md
@@ -0,0 +1,16 @@
+---
+title: Compiler Messages Reference for @keymanapp/kmc-convert
+---
+
+ Code | Identifier | Message
+------|------------|---------
+[KM0C003](km0c003) | `ERROR_FileNotFound` | Input filename '<param>' does not exist or could not be loaded\.
+[KM0C004](km0c004) | `ERROR_InvalidFile` | The source file has an invalid structure: <param>
+[KM0C005](km0c005) | `ERROR_UnableToReadFile` | Input file '<param>' could not be read\.
+[KM0C006](km0c006) | `ERROR_UnableToRead` | Input file could not be read\. <param>
+[KM0C007](km0c007) | `ERROR_UnsupportedCharactersDetected` | Input file contains unsupported character '<param>' at keyMap index <param> on Keycode <param> \(<param>\)
+[KM0C008](km0c008) | `ERROR_UndefinedActionDetected` | Action id <param> of key <param> in keymapIndex <param> is not defined
+[KM0C009](km0c009) | `ERROR_NoConverterFound` | No converter is available that can convert from '<param>' to '<param>'\.
+[KM0C00A](km0c00a) | `ERROR_UnableToConvert` | Input file '<param>' could not be converted\.
+[KM0C00B](km0c00b) | `ERROR_UnableToWrite` | Output file for '<param>' could not be written\. <param>
+[KM0C00C](km0c00c) | `ERROR_UnableToParse` | Input data could not be parsed\.
|