diff --git a/packages/ckeditor5-keyboard-marker/.editorconfig b/packages/ckeditor5-keyboard-marker/.editorconfig
new file mode 100644
index 000000000..37ea8ff91
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/.editorconfig
@@ -0,0 +1,19 @@
+# Configurations to normalize the IDE behavior.
+# http://editorconfig.org/
+
+root = true
+
+[*]
+indent_style = tab
+tab_width = 4
+charset = utf-8
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.{js,jsx,ts}]
+quote_type = single
+
+[package.json]
+indent_style = space
+tab_width = 2
diff --git a/packages/ckeditor5-keyboard-marker/.eslintrc.cjs b/packages/ckeditor5-keyboard-marker/.eslintrc.cjs
new file mode 100644
index 000000000..aa41a27ad
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/.eslintrc.cjs
@@ -0,0 +1,46 @@
+/* eslint-env node */
+
+'use strict';
+
+module.exports = {
+ extends: 'ckeditor5',
+ parser: '@typescript-eslint/parser',
+ plugins: [
+ '@typescript-eslint'
+ ],
+ root: true,
+ ignorePatterns: [
+ // Ignore the entire `dist/` (the NIM build).
+ 'dist/**',
+ // Ignore compiled JavaScript files, as they are generated automatically.
+ 'src/**/*.js',
+ // Also, do not check typing declarations, too.
+ 'src/**/*.d.ts'
+ ],
+ rules: {
+ // This rule disallows importing from any path other than the package main entrypoint.
+ 'ckeditor5-rules/allow-imports-only-from-main-package-entry-point': 'error',
+ // This rule ensures that all imports from `@ckeditor/*` packages are done through the main package entry points.
+ // This is required for the editor types to work properly and to ease migration to the installation methods
+ // introduced in CKEditor 5 version 42.0.0.
+ 'ckeditor5-rules/no-legacy-imports': 'error',
+ // As required by the ECMAScript (ESM) standard, all imports must include a file extension.
+ // If the import does not include it, this rule will try to automatically detect the correct file extension.
+ 'ckeditor5-rules/require-file-extensions-in-imports': [
+ 'error',
+ {
+ extensions: [ '.ts', '.js', '.json' ]
+ }
+ ]
+ },
+ overrides: [
+ {
+ files: [ 'tests/**/*.[jt]s', 'sample/**/*.[jt]s' ],
+ rules: {
+ // To write complex tests, you may need to import files that are not exported in DLL files by default.
+ // Hence, imports CKEditor 5 packages in test files are not checked.
+ 'ckeditor5-rules/ckeditor-imports': 'off'
+ }
+ }
+ ]
+};
diff --git a/packages/ckeditor5-keyboard-marker/.gitattributes b/packages/ckeditor5-keyboard-marker/.gitattributes
new file mode 100644
index 000000000..41be6fafe
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/.gitattributes
@@ -0,0 +1,19 @@
+* text=auto
+
+*.htaccess eol=lf
+*.cgi eol=lf
+*.sh eol=lf
+
+*.css text
+*.htm text
+*.html text
+*.js text
+*.ts text
+*.json text
+*.php text
+*.txt text
+*.md text
+
+*.png -text
+*.gif -text
+*.jpg -text
diff --git a/packages/ckeditor5-keyboard-marker/.gitignore b/packages/ckeditor5-keyboard-marker/.gitignore
new file mode 100644
index 000000000..437dda1d0
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/.gitignore
@@ -0,0 +1,10 @@
+build/
+coverage/
+dist/
+node_modules/
+tmp/
+sample/ckeditor.dist.js
+
+# Ignore compiled TypeScript files.
+src/**/*.js
+src/**/*.d.ts
diff --git a/packages/ckeditor5-keyboard-marker/.stylelintrc b/packages/ckeditor5-keyboard-marker/.stylelintrc
new file mode 100644
index 000000000..1d86a41f9
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/.stylelintrc
@@ -0,0 +1,3 @@
+{
+ "extends": "stylelint-config-ckeditor5"
+}
diff --git a/packages/ckeditor5-keyboard-marker/LICENSE.md b/packages/ckeditor5-keyboard-marker/LICENSE.md
new file mode 100644
index 000000000..b60c76711
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/LICENSE.md
@@ -0,0 +1,6 @@
+Software License Agreement
+==========================
+
+Copyright (c) 2025. All rights reserved.
+
+Licensed under the terms of [MIT license](https://opensource.org/licenses/MIT).
diff --git a/packages/ckeditor5-keyboard-marker/README.md b/packages/ckeditor5-keyboard-marker/README.md
new file mode 100644
index 000000000..af6aa6fd9
--- /dev/null
+++ b/packages/ckeditor5-keyboard-marker/README.md
@@ -0,0 +1,141 @@
+@triliumnext/ckeditor5-keyboard-marker
+======================================
+
+This package was created by the [ckeditor5-package-generator](https://www.npmjs.com/package/ckeditor5-package-generator) package.
+
+## Table of contents
+
+* [Developing the package](#developing-the-package)
+* [Available scripts](#available-scripts)
+ * [`start`](#start)
+ * [`test`](#test)
+ * [`lint`](#lint)
+ * [`stylelint`](#stylelint)
+ * [`build:dist`](#builddist)
+ * [`translations:synchronize`](#translationssynchronize)
+ * [`translations:validate`](#translationsvalidate)
+ * [`ts:build` and `ts:clear`](#tsbuild-and-tsclear)
+* [License](#license)
+
+## Developing the package
+
+To read about the CKEditor 5 Framework, visit the [CKEditor 5 Framework documentation](https://ckeditor.com/docs/ckeditor5/latest/framework/index.html).
+
+## Available scripts
+
+NPM scripts are a convenient way to provide commands in a project. They are defined in the `package.json` file and shared with people contributing to the project. It ensures developers use the same command with the same options (flags).
+
+All the scripts can be executed by running `npm run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+