diff --git a/ckeditor5_plugins/bootstrapAccordion/README.md b/ckeditor5_plugins/bootstrapAccordion/README.md
new file mode 100644
index 0000000..2ebb5a5
--- /dev/null
+++ b/ckeditor5_plugins/bootstrapAccordion/README.md
@@ -0,0 +1,62 @@
+# CKEditor 5 Plugin: Bootstrap Accordion
+
+## Model
+```xml
+
+
+
+ ...
+
+
+
+ ...
+
+
+
+
+
+ ...
+
+
+
+ ...
+
+
+
+ ...
+
+```
+
+## HTML
+```html
+
+```
diff --git a/ckeditor5_plugins/bootstrapAccordion/src/augmentation.ts b/ckeditor5_plugins/bootstrapAccordion/src/augmentation.ts
new file mode 100644
index 0000000..1709a63
--- /dev/null
+++ b/ckeditor5_plugins/bootstrapAccordion/src/augmentation.ts
@@ -0,0 +1,31 @@
+import type { ClipboardPipeline } from '@ckeditor/ckeditor5-clipboard';
+import type { DataFilter } from '@ckeditor/ckeditor5-html-support';
+import type { BootstrapAccordionConfig, ItemsStayOpen, ItemsStayOpenAttributeDefinition } from './bootstrapaccordionconfig';
+import type BootstrapAccordionCollapseAllCommand from './commands/bootstrapaccordioncollapseallcommand';
+import type BootstrapAccordionEvents from './bootstrapaccordionevents';
+import type BootstrapAccordionFirstItemOpenCommand from './commands/bootstrapaccordionfirstitemopencommand';
+import type BootstrapAccordionOpenAllCommand from './commands/bootstrapaccordionopenallcommand';
+import type InsertBootstrapAccordionCommand from './commands/insertbootstrapaccordioncommand';
+import type InsertBootstrapAccordionItemCommand from './commands/insertbootstrapaccordionitemcommand';
+import type ModifyBootstrapAccordionCommand from './commands/modifybootstrapaccordioncommand';
+import type RemoveBootstrapAccordionItemCommand from './commands/removebootstrapaccordionitemcommand';
+
+declare module '@ckeditor/ckeditor5-core' {
+ interface EditorConfig {
+ bootstrapAccordion: BootstrapAccordionConfig;
+ }
+ interface CommandsMap {
+ bootstrapAccordionCollapseAll: BootstrapAccordionCollapseAllCommand;
+ bootstrapAccordionFirstItemOpen: BootstrapAccordionFirstItemOpenCommand;
+ bootstrapAccordionItemsStayOpen: ModifyBootstrapAccordionCommand;
+ bootstrapAccordionOpenAll: BootstrapAccordionOpenAllCommand;
+ insertBootstrapAccordion: InsertBootstrapAccordionCommand;
+ insertBootstrapAccordionItem: InsertBootstrapAccordionItemCommand;
+ removeBootstrapAccordionItem: RemoveBootstrapAccordionItemCommand;
+ }
+ interface PluginsMap {
+ [BootstrapAccordionEvents.pluginName]: BootstrapAccordionEvents;
+ [ClipboardPipeline.pluginName]: ClipboardPipeline;
+ [DataFilter.pluginName]: DataFilter;
+ }
+}
diff --git a/ckeditor5_plugins/bootstrapAccordion/src/bootstrapaccordion.ts b/ckeditor5_plugins/bootstrapAccordion/src/bootstrapaccordion.ts
new file mode 100644
index 0000000..c045aef
--- /dev/null
+++ b/ckeditor5_plugins/bootstrapAccordion/src/bootstrapaccordion.ts
@@ -0,0 +1,32 @@
+import type { PluginInterface } from '@ckeditor/ckeditor5-core/src/plugin';
+import { Plugin } from 'ckeditor5/src/core';
+import BootstrapAccordionEditing from './bootstrapaccordionediting';
+import BootstrapAccordionEvents from './bootstrapaccordionevents';
+import BootstrapAccordionKeyboard from './bootstrapaccordionkeyboard';
+import BootstrapAccordionUI from './bootstrapaccordionui';
+
+/**
+ * Defines the base Bootstrap Accordion plugin.
+ */
+export default class BootstrapAccordion extends Plugin implements PluginInterface {
+
+ /**
+ * The plugin's name in the PluginCollection.
+ */
+ static get pluginName(): 'BootstrapAccordion' {
+ return 'BootstrapAccordion' as const;
+ }
+
+ /**
+ * The plugin's dependencies.
+ */
+ static get requires() {
+ return [
+ BootstrapAccordionEditing,
+ BootstrapAccordionEvents,
+ BootstrapAccordionKeyboard,
+ BootstrapAccordionUI
+ ] as const;
+ }
+
+}
diff --git a/ckeditor5_plugins/bootstrapAccordion/src/bootstrapaccordionconfig.ts b/ckeditor5_plugins/bootstrapAccordion/src/bootstrapaccordionconfig.ts
new file mode 100644
index 0000000..df00109
--- /dev/null
+++ b/ckeditor5_plugins/bootstrapAccordion/src/bootstrapaccordionconfig.ts
@@ -0,0 +1,134 @@
+/**
+ * @file Contains configuration for Bootstrap Accordion.
+ */
+
+import type { ToolbarConfigItem } from '@ckeditor/ckeditor5-core';
+import type { ModelAttributeDefinition, SelectableOption } from './bootstrapaccordiontypes';
+
+/**
+ * The options available in `editor.config.get('bootstrapAccordion')`.
+ */
+export interface BootstrapAccordionConfig {
+ toolbarItems: ToolbarConfigItem[];
+};
+
+/**
+ * The allowed model attributes for an accordion.
+ */
+export type AccordionModelAttribute = 'bootstrapAccordionId' | 'bootstrapAccordionStyle' | 'bootstrapAccordionItemsStayOpen';
+
+/**
+ * The allowed model attributes for an accordion header.
+ */
+export type AccordionButtonModelAttribute = 'bootstrapAccordionButtonCollapsed';
+
+/**
+ * The allowed model attributes for an accordion collapse.
+ */
+export type AccordionCollapseModelAttribute = 'bootstrapAccordionCollapseShow';
+
+/**
+ * Defines the allowed values for the `bootstrapAccordionStyle` attribute.
+ */
+export type Style = 'regular' | 'flush';
+
+/**
+ * Defines the attribute definition for the `bootstrapAccordionStyle`
+ * attribute.
+ */
+export type StyleAttributeDefinition = ModelAttributeDefinition