diff --git a/Changes b/Changes
index abef1c7..c0fab50 100755
--- a/Changes
+++ b/Changes
@@ -1,4 +1,8 @@
-0.48 2023-02-02
+0.49 2023-02-14
+        - Introduce conllu2korapxml command via plugin. (diewald)
+        - Introduce korapxml2conllu command via plugin. (diewald)
+
+0.48 2023-01-12
         - Added support for NKJP tagset in annotation
           assistant. (diewald)
         - Remove deprecated 'auth_support' (since 0.31)
diff --git a/Dockerfile b/Dockerfile
index 21d77de..7c53ea0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -102,6 +102,7 @@
 RUN cpanm \
    https://github.com/KorAP/KorAP-XML-TEI/archive/refs/tags/v2.4.1.tar.gz \
    https://github.com/KorAP/KorAP-XML-Krill/archive/refs/tags/v0.49.tar.gz
+   https://github.com/KorAP/KorAP-XML-CoNLL-U/archive/refs/tags/v0.6.0.tar.gz
 
 # Remove all build dependencies
 RUN apk del git \
@@ -129,7 +130,7 @@
 ENV MOJO_LISTEN http://*:${MOJO_PORT}
 ENV MOJO_MODE   production
 
-RUN echo "{Kalamar=>{plugins=>['KorAPXML2Krill','Tei2KorAPXML']}}" > kalamar.production.conf
+RUN echo "{Kalamar=>{plugins=>['KorAPXML2Krill','Tei2KorAPXML','KorAPXML2CoNNLU']}}" > kalamar.production.conf
 
 EXPOSE ${MOJO_PORT}
 
diff --git a/README.md b/README.md
index 01be02c..768a951 100644
--- a/README.md
+++ b/README.md
@@ -247,7 +247,7 @@
 - `KorAPXML2Krill`: For integrated calls to [korapxml2krill](https://github.com/KorAP/KorAP-XML-Krill), if installed.
 - `KrillIndexer`: For integrated calls to [Krilll](https://github.com/KorAP/Krill),
   if installed and exposed by `KRILL_INDEXER_PATH`.
-
+- `KorAPXML2CoNLLU`: For integrated calls to [conllu2korapxml and korapxml2conllu](https://github.com/KorAP/KorAP-XML-CoNNL-U), if installed.
 
 ## Troubleshooting
 
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index 5da9493..c36c8a2 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -8,7 +8,7 @@
 use List::Util qw!none uniq!;
 
 # Minor version - may be patched from package.json
-our $VERSION = '0.48';
+our $VERSION = '0.49';
 
 # Supported version of Backend API
 our $API_VERSION = '1.0';
diff --git a/lib/Kalamar/Plugin/KorAPXML2CoNLLU.pm b/lib/Kalamar/Plugin/KorAPXML2CoNLLU.pm
new file mode 100644
index 0000000..d8cfae0
--- /dev/null
+++ b/lib/Kalamar/Plugin/KorAPXML2CoNLLU.pm
@@ -0,0 +1,14 @@
+package Kalamar::Plugin::KorAPXML2CoNLLU;
+use Mojo::Base 'Mojolicious::Plugin';
+use Mojo::Base -strict;
+sub register {
+  my ($plugin, $mojo) = @_;
+  my $script = `sh -c 'command -v conllu2korapxml'`;
+  if ($script ne '') {
+    # Add additional command path
+    push(@{$mojo->commands->namespaces}, __PACKAGE__);
+    return 1;
+  };
+  return 0;
+};
+1;
diff --git a/lib/Kalamar/Plugin/KorAPXML2CoNLLU/conllu2korapxml.pm b/lib/Kalamar/Plugin/KorAPXML2CoNLLU/conllu2korapxml.pm
new file mode 100644
index 0000000..f6eb0c3
--- /dev/null
+++ b/lib/Kalamar/Plugin/KorAPXML2CoNLLU/conllu2korapxml.pm
@@ -0,0 +1,15 @@
+package Kalamar::Plugin::KorAPXML2CoNLLU::conllu2korapxml;
+use Mojo::Base 'Mojolicious::Command';
+
+has description => 'Conversion of KorAP-XML CoNLL-U to KorAP-XML zips';
+has usage       => sub {
+  return qx{conllu2korapxml --help};
+};
+
+sub run {
+  shift;
+  system('conllu2korapxml', @_);
+  return 1;
+};
+
+1;
diff --git a/lib/Kalamar/Plugin/KorAPXML2CoNLLU/korapxml2conllu.pm b/lib/Kalamar/Plugin/KorAPXML2CoNLLU/korapxml2conllu.pm
new file mode 100644
index 0000000..2ba8d63
--- /dev/null
+++ b/lib/Kalamar/Plugin/KorAPXML2CoNLLU/korapxml2conllu.pm
@@ -0,0 +1,15 @@
+package Kalamar::Plugin::KorAPXML2CoNLLU::korapxml2conllu;
+use Mojo::Base 'Mojolicious::Command';
+
+has description => 'Conversion of KorAP-XML zips to CoNLL-U';
+has usage       => sub {
+  return qx{korapxml2conllu --help};
+};
+
+sub run {
+  shift;
+  system('korapxml2conllu', @_);
+  return 1;
+};
+
+1;
diff --git a/package.json b/package.json
index 8f545f0..7aa0d03 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "Kalamar",
   "description": "Mojolicious-based Frontend for KorAP",
   "license": "BSD-2-Clause",
-  "version": "0.48.1",
+  "version": "0.49.0",
   "pluginVersion": "0.2.2",
   "engines": {
     "node": ">=6.0.0"
diff --git a/t/plugin/conllu2korapxml.t b/t/plugin/conllu2korapxml.t
new file mode 100644
index 0000000..af3d408
--- /dev/null
+++ b/t/plugin/conllu2korapxml.t
@@ -0,0 +1,33 @@
+use Test::More;
+use Test::Mojo;
+use Test::Output;
+
+my $script = `sh -c 'command -v conllu2korapxml'`;
+
+if ($script eq '') {
+  plan skip_all => "KorAP::XML::Krill is not installed";
+  exit;
+};
+
+my $t = Test::Mojo->new(Kalamar => {
+  Kalamar => {
+    plugins => ['KorAPXML2CoNLLU']
+  }
+});
+my $app = $t->app;
+my $cmds = $app->commands;
+ok(grep/::KorAPXML2CoNLLU/, @{$cmds->namespaces}, 'Namespace is set');
+stdout_like(
+  sub {
+    $cmds->run('conllu2korapxml','-v');
+  },
+  qr{zca15\.tree_tagger\.conllu}
+);
+stdout_like(
+  sub {
+    $cmds->run('korapxml2conllu','-v');
+  },
+  qr{zca15\.tree_tagger\.zip}
+);
+done_testing;
+1;
