=UTF-8
diff --git a/debug/org.eclipse.debug.terminal/.settings/org.eclipse.jdt.core.prefs b/debug/org.eclipse.debug.terminal/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..23fa13b1705
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=21
diff --git a/debug/org.eclipse.debug.terminal/.settings/org.eclipse.pde.ds.annotations.prefs b/debug/org.eclipse.debug.terminal/.settings/org.eclipse.pde.ds.annotations.prefs
new file mode 100644
index 00000000000..5faf08b7d5c
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/.settings/org.eclipse.pde.ds.annotations.prefs
@@ -0,0 +1,7 @@
+dsVersion=V1_4
+eclipse.preferences.version=1
+enabled=true
+generateBundleActivationPolicyLazy=true
+path=OSGI-INF
+validationErrorLevel=error
+validationErrorLevel.missingImplicitUnbindMethod=error
diff --git a/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF b/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..7a075941496
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.debug.terminal;singleton:=true
+Bundle-Vendor: %providerName
+Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.debug.core;bundle-version="3.23.0",
+ org.eclipse.tm.terminal.control;bundle-version="5.6.0",
+ org.eclipse.cdt.core.native;bundle-version="6.4.0",
+ org.eclipse.swt;bundle-version="3.130.0",
+ org.eclipse.ui;bundle-version="3.207.100"
+Bundle-RequiredExecutionEnvironment: JavaSE-21
+Automatic-Module-Name: org.eclipse.debug.terminal
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/org.eclipse.debug.terminal.ui.PageBookAdapter.xml
diff --git a/debug/org.eclipse.debug.terminal/OSGI-INF/org.eclipse.debug.terminal.ui.PageBookAdapter.xml b/debug/org.eclipse.debug.terminal/OSGI-INF/org.eclipse.debug.terminal.ui.PageBookAdapter.xml
new file mode 100644
index 00000000000..bf4d63e7ec7
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/OSGI-INF/org.eclipse.debug.terminal.ui.PageBookAdapter.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/debug/org.eclipse.debug.terminal/about.html b/debug/org.eclipse.debug.terminal/about.html
new file mode 100644
index 00000000000..164f781a8fd
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/about.html
@@ -0,0 +1,36 @@
+
+
+
+
+About
+
+
+ About This Content
+
+ November 30, 2017
+ License
+
+
+ The Eclipse Foundation makes available all content in this plug-in
+ ("Content"). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 ("EPL"). A copy of the EPL is
+ available at http://www.eclipse.org/legal/epl-2.0.
+ For purposes of the EPL, "Program" will mean the Content.
+
+
+
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ ("Redistributor") and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at http://www.eclipse.org.
+
+
+
+
\ No newline at end of file
diff --git a/debug/org.eclipse.debug.terminal/build.properties b/debug/org.eclipse.debug.terminal/build.properties
new file mode 100644
index 00000000000..f8d41a3695e
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ OSGI-INF/,\
+ about.html
+src.includes = about.html
diff --git a/debug/org.eclipse.debug.terminal/plugin.properties b/debug/org.eclipse.debug.terminal/plugin.properties
new file mode 100644
index 00000000000..3c26a4a458a
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/plugin.properties
@@ -0,0 +1,16 @@
+###############################################################################
+# Copyright (c) 2025 Christoph Läubrich and others.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Christoph Läubrich - initial API and implementation
+###############################################################################
+
+pluginName=Terminal Session Support for Eclipse
+providerName=Eclipse.org
\ No newline at end of file
diff --git a/debug/org.eclipse.debug.terminal/plugin.xml b/debug/org.eclipse.debug.terminal/plugin.xml
new file mode 100644
index 00000000000..a71b5f94a2a
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/plugin.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/PtyExecFactory.java b/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/PtyExecFactory.java
new file mode 100644
index 00000000000..5bf138d5fe7
--- /dev/null
+++ b/debug/org.eclipse.debug.terminal/src/org/eclipse/debug/terminal/PtyExecFactory.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2025 Christoph Läubrich and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christoph Läubrich - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.debug.terminal;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Optional;
+
+import org.eclipse.cdt.utils.pty.PTY;
+import org.eclipse.cdt.utils.pty.PTY.Mode;
+import org.eclipse.cdt.utils.spawner.ProcessFactory;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ExecFactory;
+
+public class PtyExecFactory implements ExecFactory {
+
+ @Override
+ public Optional exec(String[] cmdLine, Optional workingDirectory,
+ Optional