diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx
new file mode 100644
index 000000000..3c7cec297
--- /dev/null
+++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx
@@ -0,0 +1,27 @@
+import React from 'react';
+
+import copy from 'copy-to-clipboard';
+
+import i18n from '../../../i18n';
+
+const CopyEditorButton = ({ editor }) => {
+ const className = 'btn btn-sm btn-secondary cb-btn-secondary cb-rounded mx-1';
+ const text = i18n.t('Copy');
+
+ const handleCopyClick = () => {
+ copy(editor.value);
+ };
+
+ return (
+
+ );
+};
+
+export default CopyEditorButton;
diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx
index aa4c232df..813244345 100644
--- a/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx
+++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/EditorToolbar.jsx
@@ -6,6 +6,7 @@ import GameRoomModes from '../../config/gameModes';
import Placements from '../../config/placements';
// import DarkModeButton from './DarkModeButton';
+import CopyEditorButton from './CopyEditorButton';
import EditorResultIcon from './EditorResultIcon';
import GameActionButtons from './GameActionButtons';
import GameBanPlayerButton from './GameBanPlayerButton';
@@ -66,22 +67,27 @@ const EditorToolbar = ({
{showControlBtns && !isHistory && editorState !== 'banned' && (