diff --git a/drush.services.yml b/drush.services.yml
new file mode 100644
index 0000000..4a6c830
--- /dev/null
+++ b/drush.services.yml
@@ -0,0 +1,6 @@
+services:
+  config_translation_po.commands:
+    class: Drupal\config_translation_po\Commands\ConfigTranslationPoCommands
+    arguments: ['@language_manager', '@module_handler']
+    tags:
+      - { name: drush.command }
diff --git a/src/Commands/ConfigTranslationPoCommands.php b/src/Commands/ConfigTranslationPoCommands.php
new file mode 100644
index 0000000..5f2dee3
--- /dev/null
+++ b/src/Commands/ConfigTranslationPoCommands.php
@@ -0,0 +1,130 @@
+<?php
+
+namespace Drupal\config_translation_po\Commands;
+
+use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drush\Commands\DrushCommands;
+use Drush\Exceptions\CommandFailedException;
+
+/**
+ * Drush command file.
+ */
+class ConfigTranslationPoCommands extends DrushCommands {
+  use StringTranslationTrait;
+
+  /**
+   * The language manager interface.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface
+   */
+  protected $languageManager;
+
+  /**
+   * The module handler.
+   *
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface
+   */
+  protected $moduleHandler;
+
+  /**
+   * Constructs a new DevelCommands object.
+   *
+   * @param Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The langauge manager service.
+   * @param Drupal\Core\Extension\ModuleHandlerInterface $module_handler
+   *   The entity type manager service.
+   */
+  public function __construct(protected LanguageManagerInterface $language_manager, protected ModuleHandlerInterface $module_handler) {
+    parent::__construct();
+    $this->languageManager = $language_manager;
+    $this->moduleHandler = $module_handler;
+
+  }
+
+  /**
+   * Imports to a gettext translation file for configuration translations.
+   *
+   * @command config_translation_po:import
+   * @option type
+   *    Treat imported strings as custom translations.
+   * @option override
+   *    Overwrite non-customized translations.
+   */
+  public function import($langcode, $file, $options = ['type' => 'customized', 'override' => 'all']) {
+    if (!drush_file_not_empty($file)) {
+      throw new \Exception(dt('File @file not found or empty.', ['@file' => $file]));
+    }
+
+    $language = $this->languageManager->getLanguage($langcode);
+
+    if (!$language) {
+      throw new CommandFailedException(dt('Language code @langcode is not configured.', ['@langcode' => $langcode]));
+    }
+
+    $this->moduleHandler->loadInclude('locale', 'translation.inc');
+    $this->moduleHandler->loadInclude('locale', 'bulk.inc');
+
+    $options = array_merge(_locale_translation_default_update_options(), [
+      'langcode' => $language->getId(),
+      'overwrite_options' => $this->convertOverrideOption($options['override']),
+      'customized' => $options['type'] ? LOCALE_CUSTOMIZED : LOCALE_NOT_CUSTOMIZED,
+    ]);
+
+    $poFile = (object) [
+      'filename' => basename($file),
+      'uri' => $file,
+    ];
+    $poFile = locale_translate_file_attach_properties($poFile, $options);
+    $batch = locale_translate_batch_build([$poFile->uri => $poFile], $options);
+    batch_set($batch);
+
+    $this->moduleHandler->loadInclude('config_translation_po', 'bulk.inc');
+    if ($batch = config_translation_po_config_batch_update_components($options, [$language->getId()])) {
+      batch_set($batch);
+    }
+
+    drush_backend_batch_process();
+  }
+
+  /**
+   * Converts input of override option.
+   */
+  private function convertOverrideOption($override): array {
+    $result = [];
+
+    switch ($override) {
+      case 'none':
+        $result = [
+          'not_customized' => FALSE,
+          'customized' => FALSE,
+        ];
+        break;
+
+      case 'customized':
+        $result = [
+          'not_customized' => FALSE,
+          'customized' => TRUE,
+        ];
+        break;
+
+      case 'not-customized':
+        $result = [
+          'not_customized' => TRUE,
+          'customized' => FALSE,
+        ];
+        break;
+
+      case 'all':
+        $result = [
+          'not_customized' => TRUE,
+          'customized' => TRUE,
+        ];
+        break;
+    }
+
+    return $result;
+  }
+
+}
