<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>expecco Wiki (Version 26.x)  - Letzte Änderungen [de]</title>
		<link>https://doc.expecco.de/wiki/Spezial:Letzte_%C3%84nderungen</link>
		<description>Verfolge mit diesem Feed die letzten Änderungen in expecco Wiki (Version 26.x).</description>
		<language>de</language>
		<generator>MediaWiki 1.44.2</generator>
		<lastBuildDate>Tue, 25 Aug 2026 19:42:05 GMT</lastBuildDate>
		<item>
			<title>Release Notes 26.x</title>
			<link>https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31776&amp;oldid=31758</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31776&amp;oldid=31758</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Release 26.2 (Q4 2026)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 25. August 2026, 14:38 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;de&quot;&gt;(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 15:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 15:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: &#039;&#039;&#039;NEW&#039;&#039;&#039; [[SNMP Plugin Reference/en|SNMP]] support, reimplemented in expecco itself - no &#039;&#039;net-snmp&#039;&#039; installation is needed any more, and the blocks behave identically on every supported platform. SNMP v1, v2c and v3 (authentication with MD5, SHA-1 or one of the SHA-2 protocols of RFC 7860, encryption with DES or AES-128); a whole table read by one block with its rows and their INDEX decoded (ifTable, ipAddrTable, tcpConnTable, ...); many devices asked the same question at once, in parallel; traps and informs both received and sent. An up to date set of MIB modules (net-snmp 5.9.5.2) is delivered, so the names of SNMPv2-MIB, IF-MIB, IP-MIB, TCP-MIB and friends resolve out of the box - the deprecated RFC1213-MIB groups (&#039;&#039;at&#039;&#039;, &#039;&#039;egp&#039;&#039;, &#039;&#039;ipRouteTable&#039;&#039;) are not part of it and are shown numerically, add &#039;&#039;RFC1213-MIB.txt&#039;&#039; to a MIB directory (&quot;Add MIB Directory&quot;) if a device still needs those names. Fixes on the way: object identifiers were corrupted on 64bit systems, which made most SNMP blocks return wrong values.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: &#039;&#039;&#039;NEW&#039;&#039;&#039; [[SNMP Plugin Reference/en|SNMP]] support, reimplemented in expecco itself - no &#039;&#039;net-snmp&#039;&#039; installation is needed any more, and the blocks behave identically on every supported platform. SNMP v1, v2c and v3 (authentication with MD5, SHA-1 or one of the SHA-2 protocols of RFC 7860, encryption with DES or AES-128); a whole table read by one block with its rows and their INDEX decoded (ifTable, ipAddrTable, tcpConnTable, ...); many devices asked the same question at once, in parallel; traps and informs both received and sent. An up to date set of MIB modules (net-snmp 5.9.5.2) is delivered, so the names of SNMPv2-MIB, IF-MIB, IP-MIB, TCP-MIB and friends resolve out of the box - the deprecated RFC1213-MIB groups (&#039;&#039;at&#039;&#039;, &#039;&#039;egp&#039;&#039;, &#039;&#039;ipRouteTable&#039;&#039;) are not part of it and are shown numerically, add &#039;&#039;RFC1213-MIB.txt&#039;&#039; to a MIB directory (&quot;Add MIB Directory&quot;) if a device still needs those names. Fixes on the way: object identifiers were corrupted on 64bit systems, which made most SNMP blocks return wrong values.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: the [[Remote Access/en#From expecco actions|Remote Access]] plugin gained &#039;&#039;&#039;native&#039;&#039;&#039; (pure-Smalltalk, via &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt;) SSH and SFTP action blocks — SSH open/close, execute command (with optional stdin), execute a list of commands (each on its own channel or in one persistent shell), password authentication, and SFTP upload (from a file, String or stream), download (to a file and/or a stream, streamed without buffering), list, delete, rename and make-directory; each block ships with a runnable Test/Demo network. No external &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt; binary is required.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: the [[Remote Access/en#From expecco actions|Remote Access]] plugin gained &#039;&#039;&#039;native&#039;&#039;&#039; (pure-Smalltalk, via &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt;) SSH and SFTP action blocks — SSH open/close, execute command (with optional stdin), execute a list of commands (each on its own channel or in one persistent shell), password authentication, and SFTP upload (from a file, String or stream), download (to a file and/or a stream, streamed without buffering), list, delete, rename and make-directory; each block ships with a runnable Test/Demo network. No external &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt; binary is required.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: documentation can now be given in [https://www.markdownguide.org/basic-syntax markdown format].&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: wrong (not detected) error handling in UDP send/receive operation under Windows.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: wrong (not detected) error handling in UDP send/receive operation under Windows.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 25 Aug 2026 14:38:37 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Release_Notes_26.x</comments>
		</item>
		<item>
			<title>KI Coding Plugin</title>
			<link>https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31774&amp;oldid=31771</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31774&amp;oldid=31771</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Chat-Fenster&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 25. August 2026, 14:35 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 297:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 297:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das Transkript ist als vertikales Panel von &quot;Karten&quot; aufgebaut:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das Transkript ist als vertikales Panel von &quot;Karten&quot; aufgebaut:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Prosa-Karten&#039;&#039;&#039; enthalten den fließenden Text der Antwort; Zeilen werden auf die Fenster-Breite umgebrochen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Prosa-Karten&#039;&#039;&#039; enthalten den fließenden Text der Antwort; Zeilen werden auf die Fenster-Breite umgebrochen.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; Blau: Ihre Eingaben, Grün: Antworten des Modells ([tool] sind Aufrufe expecco tool APIs)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Code-Karten&#039;&#039;&#039; (eingerahmt) entstehen aus markdown-Code-Blöcken (&amp;lt;code&amp;gt;```...```&amp;lt;/code&amp;gt;) und sind als &#039;&#039;&#039;Workspace&#039;&#039;&#039; editierbar — das Standard-Smalltalk-Popup-Menü bietet doIt / printIt / inspectIt, ein &amp;lt;code&amp;gt;TestCase&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;simulatedSelf&amp;lt;/code&amp;gt; ist gesetzt, so dass &amp;lt;code&amp;gt;self assert:... equals:...&amp;lt;/code&amp;gt; direkt ausgeführt werden kann.  Lange Blöcke scrollen innerhalb der Karte.  Rechts oben sitzen die Schaltflächen &#039;&#039;&#039;[Apply]&#039;&#039;&#039; (sofern für den Kontext sinnvoll) und &#039;&#039;&#039;[⎘ Copy]&#039;&#039;&#039;; links wird der Sprachtag (smalltalk, python, …) angezeigt.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Code-Karten&#039;&#039;&#039; (eingerahmt) entstehen aus markdown-Code-Blöcken (&amp;lt;code&amp;gt;```...```&amp;lt;/code&amp;gt;) und sind als &#039;&#039;&#039;Workspace&#039;&#039;&#039; editierbar — das Standard-Smalltalk-Popup-Menü bietet doIt / printIt / inspectIt, ein &amp;lt;code&amp;gt;TestCase&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;simulatedSelf&amp;lt;/code&amp;gt; ist gesetzt, so dass &amp;lt;code&amp;gt;self assert:... equals:...&amp;lt;/code&amp;gt; direkt ausgeführt werden kann.  Lange Blöcke scrollen innerhalb der Karte.  Rechts oben sitzen die Schaltflächen &#039;&#039;&#039;[Apply]&#039;&#039;&#039; (sofern für den Kontext sinnvoll) und &#039;&#039;&#039;[⎘ Copy]&#039;&#039;&#039;; links wird der Sprachtag (smalltalk, python, …) angezeigt.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Doku-Karten&#039;&#039;&#039; (volle Breite, Prosa) entstehen aus dem speziellen &amp;lt;code&amp;gt;```doc&amp;lt;/code&amp;gt;-Block, den der Dokumentations-Generator anfordert; Inhalt ist die Vorschlags-Dokumentation für Block- und Pin-Beschreibungen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Doku-Karten&#039;&#039;&#039; (volle Breite, Prosa) entstehen aus dem speziellen &amp;lt;code&amp;gt;```doc&amp;lt;/code&amp;gt;-Block, den der Dokumentations-Generator anfordert; Inhalt ist die Vorschlags-Dokumentation für Block- und Pin-Beschreibungen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 25 Aug 2026 14:35:06 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:KI_Coding_Plugin</comments>
		</item>
		<item>
			<title>Datei:ChatView.png</title>
			<link>https://doc.expecco.de/index.php?title=Datei:ChatView.png&amp;diff=31773&amp;oldid=0</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Datei:ChatView.png&amp;diff=31773&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=Benutzer:Cg&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;Benutzer:Cg (Seite nicht vorhanden)&quot;&gt;&lt;bdi&gt;Cg&lt;/bdi&gt;&lt;/a&gt; lud eine neue Version von &lt;a href=&quot;/wiki/Datei:ChatView.png&quot; title=&quot;Datei:ChatView.png&quot;&gt;Datei:ChatView.png&lt;/a&gt; hoch&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Tue, 25 Aug 2026 14:32:31 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Datei_Diskussion:ChatView.png</comments>
		</item>
		<item>
			<title>Datei:ChatView.png</title>
			<link>https://doc.expecco.de/index.php?title=Datei:ChatView.png&amp;diff=31772&amp;oldid=0</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Datei:ChatView.png&amp;diff=31772&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=Benutzer:Cg&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;Benutzer:Cg (Seite nicht vorhanden)&quot;&gt;&lt;bdi&gt;Cg&lt;/bdi&gt;&lt;/a&gt; lud &lt;a href=&quot;/wiki/Datei:ChatView.png&quot; title=&quot;Datei:ChatView.png&quot;&gt;Datei:ChatView.png&lt;/a&gt; hoch&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Tue, 25 Aug 2026 14:30:25 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Datei_Diskussion:ChatView.png</comments>
		</item>
		<item>
			<title>KI Coding Plugin</title>
			<link>https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31771&amp;oldid=31756</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31771&amp;oldid=31756</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Chat-Fenster&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 25. August 2026, 14:28 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;de&quot;&gt;(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 73:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 73:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Sie schützt nicht vor einem kompromittierten CLI-Programm auf demselben Rechner. Für sicherheitskritische Umgebungen gelten weiterhin die Hinweise im Abschnitt [[#Tool Use|Tool Use]] zur Isolation solcher Rechner.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Sie schützt nicht vor einem kompromittierten CLI-Programm auf demselben Rechner. Für sicherheitskritische Umgebungen gelten weiterhin die Hinweise im Abschnitt [[#Tool Use|Tool Use]] zur Isolation solcher Rechner.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für eine sicherheitskritische Umgebung ergibt sich daraus die restriktivste sinnvolle Konfiguration: &#039;&#039;KI Coding&#039;&#039; ohne &#039;&#039;KI Advanced Coding&#039;&#039;, kombiniert mit einem lokal betriebenen Modell (&#039;&#039;ollama&#039;&#039; oder &#039;&#039;llama.cpp&#039;&#039;). Dann verlässt kein Projektinhalt Ihr Netz, und die KI kann ausschließlich lesen und vorschlagen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für eine sicherheitskritische Umgebung ergibt sich daraus die restriktivste sinnvolle Konfiguration: &#039;&#039;KI Coding&#039;&#039; ohne &#039;&#039;KI Advanced Coding&#039;&#039;, kombiniert mit einem lokal betriebenen Modell (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;z.B. mit &lt;/ins&gt;&#039;&#039;ollama&#039;&#039; oder &#039;&#039;llama.cpp&#039;&#039;). Dann verlässt kein Projektinhalt Ihr Netz, und die KI kann ausschließlich lesen und vorschlagen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Architektur und Sicherheit ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Architektur und Sicherheit ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 79:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 79:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit &quot;&#039;&#039;Sicherheit&#039;&#039;&quot; ist hier gemeint: &quot;&#039;&#039;können die Daten den Rechner oder ihre Abteilung/Firma verlassen&#039;&#039; bzw. &#039;&#039;kann die KI Schaden anrichten indem sie auf Ihrem Rechner unkontrolliert Code ausführt oder Daten manipuliert&#039;&#039;&quot;.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit &quot;&#039;&#039;Sicherheit&#039;&#039;&quot; ist hier gemeint: &quot;&#039;&#039;können die Daten den Rechner oder ihre Abteilung/Firma verlassen&#039;&#039; bzw. &#039;&#039;kann die KI Schaden anrichten indem sie auf Ihrem Rechner unkontrolliert Code ausführt oder Daten manipuliert&#039;&#039;&quot;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anmerkung: Wenn hohe Sicherheit gefordert ist (sensible Daten, Algorithmen, Workflows) muss Ihr Netzadmin durch geeignete Maßnahmen (Firewall, Router/Switch Konfiguration etc.) verhindern, dass Zugriffe sowohl ausgehend als auch eingehend zu/von außerhalb ihrer Domäne möglich sind. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Anmerkung: Wenn hohe Sicherheit gefordert ist (sensible Daten, Algorithmen, Workflows) muss Ihr Netzadmin&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (unabh. von expecco)&lt;/ins&gt; durch geeignete Maßnahmen (Firewall, Router/Switch Konfiguration etc.) verhindern, dass Zugriffe sowohl ausgehend als auch eingehend zu/von außerhalb ihrer Domäne möglich sind. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das &quot;unsichtbar machen&quot; entsprechender Einstellungsdialoge in expecco wäre hierzu nicht dienlich, da bei offenen Ports unzählige andere Möglichkeiten bestehen (curl, webbrowser, low-level Socket API etc.).&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das &quot;unsichtbar machen&quot; entsprechender Einstellungsdialoge in expecco wäre hierzu nicht dienlich, da bei offenen Ports unzählige andere Möglichkeiten bestehen (curl, webbrowser, low-level Socket API etc.)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Es ist also sowieso notwendige Vorraussetzung, daß Ihr Rechner nur vertrauenswürdige Hosts erreicht und gegebenenfalls von solchen erreicht wird. Die Bewertung ob Ihr AI-Provider vertrauenswürdig ist, liegt in Ihrer Verantwortung&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Sicherheit ihrer eigenen Testsuite und möglichen Aktionen der KI lesen Sie bitte die unten aufgeführten Abschnitte zu [[#tool_use|&quot;Tool Use&quot;]]. Bei der Betrachtung der Sicherheit gegenüber Schadcodeausführung auf Ihrem Rechner gehen wir davon aus, daß Sie die Tools welche expecco Aktionen ausführen können (eg. &quot;execute TestPlan&quot;) kontrolliert ausführen (d.h. individuell bestätigen), da ein &quot;bösartiges Modell&quot; theoretisch natürlich eine bösartige Aktion anlegen und diese dann mit &quot;execute Test&quot; ausführen könnte. Realistischerweise ist dies aber bei den aktuellen Modellen ein sehr unwahrscheinliches Szenario. Größer ist die Gefahr durch Hintertüren in CLI Programmen. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zur Sicherheit ihrer eigenen Testsuite und möglichen Aktionen der KI lesen Sie bitte die unten aufgeführten Abschnitte zu [[#tool_use|&quot;Tool Use&quot;]]. Bei der Betrachtung der Sicherheit gegenüber Schadcodeausführung auf Ihrem Rechner gehen wir davon aus, daß Sie die Tools welche expecco Aktionen ausführen können (eg. &quot;execute TestPlan&quot;) kontrolliert ausführen (d.h. individuell bestätigen), da ein &quot;bösartiges Modell&quot; theoretisch natürlich eine bösartige Aktion anlegen und diese dann mit &quot;execute Test&quot; ausführen könnte. Realistischerweise ist dies aber bei den aktuellen Modellen ein sehr unwahrscheinliches Szenario. Größer ist die Gefahr durch Hintertüren in CLI Programmen&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (z.B. dass das CLI Program im Hintergrund Dateien übermittelt, was in der Vergangenheit bereits vorkam)&lt;/ins&gt;. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wir empfehlen&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; aber&lt;/del&gt; in jedem Fall die vom Modell angelegte Aktionsblöcke immer noch einmal selbst zu verifizieren bevor diese ausgeführt werden; egal ob die Ausführung vom Modell oder von Ihnen getriggert wird.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wir empfehlen in jedem Fall die vom Modell angelegte Aktionsblöcke immer noch einmal selbst zu verifizieren&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (audit)&lt;/ins&gt; bevor diese ausgeführt werden; egal ob die Ausführung vom Modell oder von Ihnen getriggert wird.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Diese Art von Schadcodeinjection (i.e. Anlegen eines defekten oder bösartigen Bausteins und dessen Ausführung) ist nicht in den unten als &quot;sicher&quot; bezeichneten Setups enthalten. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Diese Art von Schadcodeinjection (i.e. Anlegen eines defekten oder bösartigen Bausteins und dessen Ausführung) ist nicht in den unten als &quot;sicher&quot; bezeichneten Setups enthalten. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 100:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 100:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Datei:ArchInhouseSetup1.png|Architektur&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Datei:ArchInhouseSetup1.png|Architektur&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:expecco kommuniziert ausschließlich und direkt zu dieser URL; keine Applikation dazwischen. Insbesondere kein &quot;&amp;lt;code&amp;gt;claude.exe&amp;lt;/code&amp;gt;&quot; oder ein anderes Command Line Interface (CLI) Programm. Ihre Eingaben im expecco Chat Fenster gehen direkt (verpackt als JSON) an die konfigurierte Adresse und deren Antwort erscheint (entpackt aus JSON) im expecco Chat Fenster. Nachrichten werden ausschließlich mit dem von Ihnen konfigurierten Host ausgetauscht.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:expecco kommuniziert ausschließlich und direkt zu dieser URL; keine Applikation dazwischen. Insbesondere kein &quot;&amp;lt;code&amp;gt;claude.exe&amp;lt;/code&amp;gt;&quot; oder ein anderes Command Line Interface (CLI) Programm. Ihre Eingaben im expecco Chat Fenster gehen direkt (verpackt als JSON) an die konfigurierte Adresse und deren Antwort erscheint (entpackt aus JSON) im expecco Chat Fenster. Nachrichten werden ausschließlich mit dem von Ihnen konfigurierten Host ausgetauscht&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Je nach Ihren Einstellungen kann das Modell auch hier Aktionen anlegen und Tests ausführen - aber nur die von expecco selbst zur Verfügung gestellten APIs. Es kann nicht auf Dateien oder irgendwelche Ressourcen zugreifen &amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::- wählen Sie dazu &quot;inhouse&quot; und geben hostname+port+URL zu diesem host ein; typischerweise haben diese die Form &quot;&amp;lt;code&amp;gt;firmenAI:11434/v1/chat/completions&amp;lt;/code&amp;gt;&quot; oder auch 80 oder 8080 als port. Fragen Sie ihren Netzwerkadmin im Zweifel, auch ob ein API Key (= Zugangsschlüssel) erforderlich ist.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::- wählen Sie dazu &quot;inhouse&quot; und geben hostname+port+URL zu diesem host ein; typischerweise haben diese die Form &quot;&amp;lt;code&amp;gt;firmenAI:11434/v1/chat/completions&amp;lt;/code&amp;gt;&quot; oder auch 80 oder 8080 als port. Fragen Sie ihren Netzwerkadmin im Zweifel, auch ob ein API Key (= Zugangsschlüssel) erforderlich ist.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:&amp;lt;small&amp;gt;1) Anm.: sie könnten dem Modell natürlich die Aufgabe geben, eine bösartige Aktion anzulegen und diese dann ausführen (lassen), und falls Sie dies ungeprüft zulassen besteht natürlich auch hier ein gewisses Gefahrenpotential; siehe dazu auch die individuellen mcp Einstellungen unten.&amp;lt;/small&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== KI auf Ihrem eigenen Rechner ====&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== KI auf Ihrem eigenen Rechner ====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 111:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 113:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Datei:ArchLocalSetup2.png|Architektur&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Datei:ArchLocalSetup2.png|Architektur&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;auch&lt;/del&gt; hier kommuniziert expecco ausschließlich und direkt zu diesem ihrem lokalen Rechner, auf der Sie selbst ein Modell installiert und am Laufen haben (ollama oder llama.cpp). Ob dies im einzelnen sinnvoll ist hängt von der Leistungsfähigkeit ihres eigenen Rechners ab (empfohlen wird eine oder mehrere &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;leistungsfähige&lt;/del&gt; GPUs mit viel VRAM (&amp;gt;=32Gb), großer RAM Speicherausbau (&amp;gt;=64Gb) und ein leistungsfähiges Modell (mindestens 30B, besser 120B mit großem Kontext,da reichen aber 32GB VRAM nicht); eigene Erfahrungen haben wir unten in diesem Dokument zusammengetragen).&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Auch&lt;/ins&gt; hier kommuniziert expecco ausschließlich und direkt zu diesem ihrem lokalen Rechner, auf der Sie selbst ein Modell installiert und am Laufen haben (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;z.B. &lt;/ins&gt;ollama oder llama.cpp). Ob dies im einzelnen sinnvoll ist hängt von der Leistungsfähigkeit ihres eigenen Rechners ab (empfohlen wird eine oder mehrere &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;KI unterstützende&lt;/ins&gt; GPUs mit viel VRAM (&amp;gt;=32Gb), großer RAM Speicherausbau (&amp;gt;=64Gb) und ein leistungsfähiges Modell (mindestens 30B, besser 120B mit großem Kontext,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;da reichen aber 32GB VRAM&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; definitiv&lt;/ins&gt; nicht); eigene Erfahrungen haben wir unten in diesem Dokument zusammengetragen).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::- wählen Sie dazu &quot;ollama&quot; oder &quot;llama.cpp&quot; und geben als hostname &quot;localhost&quot; ein. Falls sie einen dedizierten Rechner in der Abteilung haben, kann natürlich auch dessen Hostname eingegeben werden.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::- wählen Sie dazu &quot;ollama&quot; oder &quot;llama.cpp&quot; und geben als hostname &quot;localhost&quot; ein. Falls sie einen dedizierten Rechner in der Abteilung haben, kann natürlich auch dessen Hostname eingegeben werden.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 120:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 122:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Datei:ArchExternalSetup3.png|Architektur&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Datei:ArchExternalSetup3.png|Architektur&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:Die Interaktion erfolgt lediglich mit der von Ihnen eingestellten URL über das expecco-interne chat Fenster. In sicherheitskritischem Umfeld ist jedoch davon abzuraten und &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ihre&lt;/del&gt; Netzadministrator wird diesen Zugang vermutlich auch nicht zulassen da &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(&lt;/del&gt;je nach URL&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt; ihre Daten und ihr Chatverlauf an externe Rechner gehen, oder von fremden Geheimdiensten mitgelesen werden könnten&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;. Prinzipiell sollte dies dem Netzadmin aber bekannt sein, und auf Netzwerkebene gesperrt sein, da ein solcher Zugriff auch anderen Programmen verwehrt werden muss (curl, Webbrowser etc.). Insofern ist ratsam, solche Verbindungen auf administrativer Ebene (Firewall, Router/Switch Konfiguration etc.) zu verhindern. Natürlich gilt dies nicht, falls sie eine eigenen firmeninterne cloud Infrastruktur besitzen, die vertrauenswürdig ist.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:Die Interaktion erfolgt lediglich mit der von Ihnen eingestellten URL über das expecco-interne chat Fenster. In sicherheitskritischem Umfeld ist jedoch davon abzuraten und &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ihr&lt;/ins&gt; Netzadministrator wird diesen Zugang vermutlich auch nicht zulassen&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,&lt;/ins&gt; da je nach URL ihre Daten und ihr Chatverlauf an externe Rechner gehen, oder von&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; dritten (z.B.&lt;/ins&gt; fremden Geheimdiensten&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt; mitgelesen werden könnten&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Dies selbst bei verschlüsseltem Datenverkehr wie in diesem Fall [https://en.wikipedia.org/wiki/Harvest_now,_decrypt_later]&lt;/ins&gt;. Prinzipiell sollte dies dem Netzadmin aber bekannt sein, und auf Netzwerkebene gesperrt sein, da ein solcher Zugriff auch anderen Programmen verwehrt werden muss (curl, Webbrowser etc.). Insofern ist ratsam, solche Verbindungen auf administrativer Ebene (Firewall, Router/Switch Konfiguration etc.) zu verhindern. Natürlich gilt dies nicht, falls sie eine eigenen firmeninterne cloud Infrastruktur besitzen, die vertrauenswürdig ist.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::- wählen Sie dazu &quot;Anthropic, OpenAI, ...&quot; und geben hostname+port+URL zu diesem host ein (wobei die Vorgabe im Eingabefeld typischerweise schon passt); typischerweise brauchen die Anbieter einen Zugangsschlüssel (sog. API key), den Sie bei der Registrierung vom Anbieter oder von ihrem Netzadmin erhalten. Achtung: verschiedene Anbieter (u.a. Anthropic) erlauben hier nur die Abrechnung über Ihr Token Budget, nicht über einen Pro/Max oder Enterprise plan. Es kann also hier zu erhöhten Kosten führen. Es ist uns weder technisch noch juristisch möglich, dies zu verhindern.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;::- wählen Sie dazu &quot;Anthropic, OpenAI, ...&quot; und geben hostname+port+URL zu diesem host ein (wobei die Vorgabe im Eingabefeld typischerweise schon passt); typischerweise brauchen die Anbieter einen Zugangsschlüssel (sog. API key), den Sie bei der Registrierung vom Anbieter oder von ihrem Netzadmin erhalten. Achtung: verschiedene Anbieter (u.a. Anthropic) erlauben hier nur die Abrechnung über Ihr Token Budget, nicht über einen Pro/Max oder Enterprise plan. Es kann also hier zu erhöhten Kosten führen. Es ist uns weder technisch noch juristisch möglich, dies zu verhindern.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 285:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 287:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Chat-Fenster ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Chat-Fenster ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Datei:ChatView.png|mini|Bild des ChatViews]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das eigenständige Chat-Fenster trägt den Titel&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das eigenständige Chat-Fenster trägt den Titel&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;AI Coding [&amp;amp;lt;Produkt&amp;amp;gt; / &amp;amp;lt;Modell&amp;amp;gt;]&#039;&#039;&#039; (z.B.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;AI Coding [&amp;amp;lt;Produkt&amp;amp;gt; / &amp;amp;lt;Modell&amp;amp;gt;]&#039;&#039;&#039; (z.B.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 25 Aug 2026 14:28:45 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:KI_Coding_Plugin</comments>
		</item>
		<item>
			<title>Release Notes 26.x</title>
			<link>https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31758&amp;oldid=31744</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31758&amp;oldid=31744</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Release 26.2 (Q4 2026)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 25. August 2026, 13:16 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;de&quot;&gt;(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 16:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 16:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: the [[Remote Access/en#From expecco actions|Remote Access]] plugin gained &#039;&#039;&#039;native&#039;&#039;&#039; (pure-Smalltalk, via &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt;) SSH and SFTP action blocks — SSH open/close, execute command (with optional stdin), execute a list of commands (each on its own channel or in one persistent shell), password authentication, and SFTP upload (from a file, String or stream), download (to a file and/or a stream, streamed without buffering), list, delete, rename and make-directory; each block ships with a runnable Test/Demo network. No external &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt; binary is required.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: the [[Remote Access/en#From expecco actions|Remote Access]] plugin gained &#039;&#039;&#039;native&#039;&#039;&#039; (pure-Smalltalk, via &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt;) SSH and SFTP action blocks — SSH open/close, execute command (with optional stdin), execute a list of commands (each on its own channel or in one persistent shell), password authentication, and SFTP upload (from a file, String or stream), download (to a file and/or a stream, streamed without buffering), list, delete, rename and make-directory; each block ships with a runnable Test/Demo network. No external &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt; binary is required.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: wrong (not detected) error handling in UDP send/receive operation under Windows.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: Python Bridge: fix/workaround addressing Python&#039;s behavior when a thread stuck in a blocking I/O operation is terminated (due to the Global Interpreter Lock). This issue caused expecco to hang (a critical region remained locked and was not released). The only way to recover was to press Ctrl-C or Pause to enter the debugger, then abort to return to expecco; the Python Bridge had to be restarted afterwards.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: better Python syntax highlighter&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: better Python syntax highlighter&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: more (full set) of ANSI escape sequences handled by the terminal emulator (req&#039;d eg. for the SSH remote terminal access). Also hardened against malicious ANSI escape bombs (invalid escape sequences)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Release 26.1 (Q2 2026) ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Release 26.1 (Q2 2026) ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 25 Aug 2026 13:16:00 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Release_Notes_26.x</comments>
		</item>
		<item>
			<title>KI Coding Plugin</title>
			<link>https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31756&amp;oldid=31737</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31756&amp;oldid=31737</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;unsloth/qwen3.8-27b-gguf (auf llama.cpp)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 25. August 2026, 12:57 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;de&quot;&gt;(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 331:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 331:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Coding Assistenten (CLI Programm) ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Coding Assistenten (CLI Programm) ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dieser Abschnitt ist nur relevant, wenn sie mit einem CLI Programm welches als Vermittler zwischen dem Modell und expecco liegt arbeiten (eg. claude.exe). Bei Benutzung der ChatViews oder der Dokumentationsfunktionen ist kein CLI Programm involviert (mit Ausnahme der letzten claude-stdin/stdout Konfiguration). Siehe dazu die obigen Beschreibungen der [[#Architektur | Architektur]].&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dieser Abschnitt ist nur relevant, wenn sie mit einem CLI Programm &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(&lt;/ins&gt;welches als Vermittler zwischen dem Modell und expecco liegt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt; arbeiten (eg. claude.exe). Bei Benutzung der ChatViews oder der Dokumentationsfunktionen ist kein CLI Programm involviert (mit Ausnahme der letzten claude-stdin/stdout Konfiguration). Siehe dazu die obigen Beschreibungen der [[#Architektur | Architektur]].&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Beim Start der MCP-Server-Anbindung trägt expecco die nötigen Konfigurationseinträge automatisch in die Config-Dateien der unterstützten Coding-Assistenten ein.  Die folgenden Abschnitte beschreiben Ort und Format der jeweiligen Einträge — zur Information bzw. falls Sie sie manuell ergänzen oder kontrollieren möchten.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Beim Start der MCP-Server-Anbindung trägt expecco die nötigen Konfigurationseinträge automatisch in die Config-Dateien der unterstützten Coding-Assistenten ein.  Die folgenden Abschnitte beschreiben Ort und Format der jeweiligen Einträge — zur Information bzw. falls Sie sie manuell ergänzen oder kontrollieren möchten.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 672:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 672:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Installation siehe Webseite von llama.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Installation siehe Webseite von llama.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_M ====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kommando:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kommando:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 678:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 680:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hinweise&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hinweise&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:hier wird ein instruct Modell geladen; es sollte also tool calls beherrschen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:hier wird ein instruct Modell geladen; es sollte also tool calls beherrschen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:per default verwendet llama.cpp nur ein Kontextfenster von 4096 Tokens. Das ist zu wenig für sinnvolle Aufgaben. Starten Sie llama.cpp mit --ctx-size 8192, 16384, 32768 oder 65536. Die unterstützte Größe hängt vom Modell ab. Ein großer Kontext hat natürlich Einfluss auf Speicherbedarf (VRAM in GPU, RAM in CPU) und  Antwortzeit. Wenn Sie genug CPU VRAM bzw. RAM haben, ist es in jedem Fall besser, eine größere Kontextsize zu setzen (bedenken Sie, dass die großen Modelle von Anthropic oder ChatGPT Kontexte von 200k oder 1Mio haben).&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:per default verwendet llama.cpp nur ein Kontextfenster von 4096 Tokens&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (siehe auch unten)&lt;/ins&gt;. Das ist zu wenig für sinnvolle Aufgaben. Starten Sie llama.cpp mit --ctx-size 8192, 16384, 32768 oder 65536. Die unterstützte Größe hängt vom Modell ab. Ein großer Kontext hat natürlich Einfluss auf Speicherbedarf (VRAM in GPU, RAM in CPU) und  Antwortzeit. Wenn Sie genug CPU VRAM bzw. RAM haben, ist es in jedem Fall besser, eine größere Kontextsize zu setzen (bedenken Sie, dass die großen Modelle von Anthropic oder ChatGPT Kontexte von 200k oder 1Mio haben).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das Modell läuft auf der lokalen CPU (Laptop, ohne GPU), und zeigt dabei durchaus gute Antworten (wenn man Geduld hat). Zugegeben, wir haben auch einiges an Wissen in den Speicher vorgepackt.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das Modell läuft auf der lokalen CPU (Laptop, ohne GPU), und zeigt dabei durchaus gute Antworten (wenn man Geduld hat). Zugegeben, wir haben auch einiges an Wissen in den Speicher vorgepackt.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 693:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 695:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Frage wie man einen String (z.B. &#039;helloworld&#039;) zerlegt geht er systematisch an - er sucht im laufenden expecco nach Stringfunktionen. Das dauert&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Frage wie man einen String (z.B. &#039;helloworld&#039;) zerlegt geht er systematisch an - er sucht im laufenden expecco nach Stringfunktionen. Das dauert&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== google/gemma-4-12b-qat (ausprobiert mit LM Studio) ====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LM Studio verwendet ebenfalls die llama.cpp engine. Die Resultate sollten also vergleichbar sein.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; open an exepcco browser on a new project&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;macht er!&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== unsloth/qwen3.8-27b-gguf (auf llama.cpp) ====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;wir haben nur eine 12GB RTX 3060; das ist eigentlich zuwenig VRAM für dieses Modell. Das folgende Kommando lässt Experten in der CPU laufen und reduziert die Caches auf Q4 Genauigkeit. Damit erhalten wir ca. 40 bis 50 T/s von der GPU (allerdings nur 1-2 T/s von den Experten):&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; llama-server.exe -hf unsloth/qwen3.8-27b.gguf -ngl 999 --n-cpu-moe 35 --no-mmap --mlock --cache-type-k q4_0 --cache-type-v q4_0 -c 262144 --port 8080 --host 0.0.0.0 --jinja&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Anfrage:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &#039;&#039;Open an expecco browser on a new project&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;macht er!&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Dann:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &#039;&#039;create a bridged python action to compute area from radius&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Erfolgreich: er legt eine Aktion an (&quot;angleFromRadius&quot;) mit input und output pins pin Typ &quot;float&quot; und dem Code:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; import math&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; def execute():&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     r = radius.value()&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     area.value( math.pi * r * r )&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;alles richtig!&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das hat allerdings ungefähr 10 Minuten gebraucht.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Er fragt dann:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; It&#039;s in place. Want me to build a Test/Demo and run &amp;lt;br&amp;gt;it with a sample radius to confirm it works?&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;und generiert:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!-- oops - das war eine opus session&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!-- oops - das war eine opus session&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 25 Aug 2026 12:57:10 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:KI_Coding_Plugin</comments>
		</item>
		<item>
			<title>Release Notes 26.x</title>
			<link>https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31744&amp;oldid=31741</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31744&amp;oldid=31741</guid>
			<description>&lt;p&gt;26.2: native Remote Access SSH/SFTP action blocks (link to main article)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. August 2026, 18:19 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 14:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 14:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: full ipV6 UDP support (mostly socketAddress fixes and multicast support)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: full ipV6 UDP support (mostly socketAddress fixes and multicast support)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: &#039;&#039;&#039;NEW&#039;&#039;&#039; [[SNMP Plugin Reference/en|SNMP]] support, reimplemented in expecco itself - no &#039;&#039;net-snmp&#039;&#039; installation is needed any more, and the blocks behave identically on every supported platform. SNMP v1, v2c and v3 (authentication with MD5, SHA-1 or one of the SHA-2 protocols of RFC 7860, encryption with DES or AES-128); a whole table read by one block with its rows and their INDEX decoded (ifTable, ipAddrTable, tcpConnTable, ...); many devices asked the same question at once, in parallel; traps and informs both received and sent. An up to date set of MIB modules (net-snmp 5.9.5.2) is delivered, so the names of SNMPv2-MIB, IF-MIB, IP-MIB, TCP-MIB and friends resolve out of the box - the deprecated RFC1213-MIB groups (&#039;&#039;at&#039;&#039;, &#039;&#039;egp&#039;&#039;, &#039;&#039;ipRouteTable&#039;&#039;) are not part of it and are shown numerically, add &#039;&#039;RFC1213-MIB.txt&#039;&#039; to a MIB directory (&quot;Add MIB Directory&quot;) if a device still needs those names. Fixes on the way: object identifiers were corrupted on 64bit systems, which made most SNMP blocks return wrong values.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: &#039;&#039;&#039;NEW&#039;&#039;&#039; [[SNMP Plugin Reference/en|SNMP]] support, reimplemented in expecco itself - no &#039;&#039;net-snmp&#039;&#039; installation is needed any more, and the blocks behave identically on every supported platform. SNMP v1, v2c and v3 (authentication with MD5, SHA-1 or one of the SHA-2 protocols of RFC 7860, encryption with DES or AES-128); a whole table read by one block with its rows and their INDEX decoded (ifTable, ipAddrTable, tcpConnTable, ...); many devices asked the same question at once, in parallel; traps and informs both received and sent. An up to date set of MIB modules (net-snmp 5.9.5.2) is delivered, so the names of SNMPv2-MIB, IF-MIB, IP-MIB, TCP-MIB and friends resolve out of the box - the deprecated RFC1213-MIB groups (&#039;&#039;at&#039;&#039;, &#039;&#039;egp&#039;&#039;, &#039;&#039;ipRouteTable&#039;&#039;) are not part of it and are shown numerically, add &#039;&#039;RFC1213-MIB.txt&#039;&#039; to a MIB directory (&quot;Add MIB Directory&quot;) if a device still needs those names. Fixes on the way: object identifiers were corrupted on 64bit systems, which made most SNMP blocks return wrong values.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: the [[Remote Access/en#From expecco actions|Remote Access]] plugin gained &#039;&#039;&#039;native&#039;&#039;&#039; (pure-Smalltalk, via &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt;) SSH and SFTP action blocks — SSH open/close, execute command (with optional stdin), execute a list of commands (each on its own channel or in one persistent shell), password authentication, and SFTP upload (from a file, String or stream), download (to a file and/or a stream, streamed without buffering), list, delete, rename and make-directory; each block ships with a runnable Test/Demo network. No external &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt; binary is required.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: better Python syntax highlighter&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: better Python syntax highlighter&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 21 Aug 2026 18:19:01 GMT</pubDate>
			<dc:creator>Sv</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Release_Notes_26.x</comments>
		</item>
		<item>
			<title>Remote Access</title>
			<link>https://doc.expecco.de/index.php?title=Remote_Access&amp;diff=31743&amp;oldid=31404</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Remote_Access&amp;diff=31743&amp;oldid=31404</guid>
			<description>&lt;p&gt;native SSH/SFTP-Aktionsbloecke (26.2) unter &amp;#039;Aus expecco-Aktionen&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. August 2026, 18:18 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 121:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 121:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;einer einzelnen Schaltfläche &#039;&#039;&#039;Generate SSH Key Pair...&#039;&#039;&#039;, die&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;einer einzelnen Schaltfläche &#039;&#039;&#039;Generate SSH Key Pair...&#039;&#039;&#039;, die&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;denselben Dialog öffnet.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;denselben Dialog öffnet.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Seit expecco 26.2 stellt das Plugin zusätzlich &#039;&#039;&#039;native&#039;&#039;&#039; SSH- und SFTP-Aktionsblöcke bereit, in reinem Smalltalk auf Basis von &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt; implementiert — kein externes &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;- oder &amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt;-Binary erforderlich.  Eine Verbindung wird einmal geöffnet und ihr &amp;lt;code&amp;gt;SshHandle&amp;lt;/code&amp;gt; an die folgenden Blöcke weitergereicht.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SSH-Blöcke:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Open Connection&#039;&#039;&#039; — verbinden und authentifizieren (expliziter privater Schlüssel, ssh-agent oder die Standard-Schlüssel in &amp;lt;code&amp;gt;~/.ssh&amp;lt;/code&amp;gt;); liefert ein &amp;lt;code&amp;gt;SshHandle&amp;lt;/code&amp;gt; für die Blöcke unten.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Open Connection with Password&#039;&#039;&#039; — dasselbe, jedoch mit Klartext-Passwort statt eines Schlüssels.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Execute Command&#039;&#039;&#039; — führt ein einzelnes Kommando aus; liefert stdout, stderr und Exit-Status, mit einem optionalen stdin-Stream, der an den entfernten Prozess geleitet wird.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Execute Commands&#039;&#039;&#039; — führt eine Liste von Kommandos aus, jedes als eigener Exec-Kanal, auf einer offenen Verbindung.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Execute Commands In Shell&#039;&#039;&#039; — führt eine Liste von Kommandos in einer einzigen, dauerhaften Login-Shell aus, sodass Zustand wie das Arbeitsverzeichnis über die Kommandos hinweg erhalten bleibt.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Close Connection&#039;&#039;&#039; — schließt eine oben geöffnete Verbindung.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SFTP-Blöcke (jeweils auf einem offenen &amp;lt;code&amp;gt;SshHandle&amp;lt;/code&amp;gt; aufsetzend):&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - Upload File&#039;&#039;&#039; und &#039;&#039;&#039;SFTP - Upload File from String/Stream&#039;&#039;&#039; — schreibt eine lokale Datei bzw. Inhalt aus dem Speicher / einen Read-Stream auf einen entfernten Pfad (gestreamt, ohne die ganze Datei zu puffern).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - Download File&#039;&#039;&#039; — liest eine entfernte Datei in eine lokale Datei und/oder in einen übergebenen Write-Stream (gestreamt, ohne die ganze Datei zu puffern).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - List Directory&#039;&#039;&#039; — listet die Einträge eines entfernten Verzeichnisses auf.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - Delete File&#039;&#039;&#039;, &#039;&#039;&#039;SFTP - Rename&#039;&#039;&#039; und &#039;&#039;&#039;SFTP - Make Directory&#039;&#039;&#039; — Verwaltung entfernter Dateien.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jeder dieser Blöcke bringt ein lauffähiges Test/Demo-Netz (in seinem &#039;&#039;Test/Demo&#039;&#039;-Reiter) mit, das sich mit dem Host aus den Umgebungsvariablen &amp;lt;code&amp;gt;DEMO_SSH_HOST&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEMO_SSH_PORT&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;DEMO_SSH_USER&amp;lt;/code&amp;gt; verbindet.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Einen SSH-Schlüssel erzeugen ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Einen SSH-Schlüssel erzeugen ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 21 Aug 2026 18:18:59 GMT</pubDate>
			<dc:creator>Sv</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Remote_Access</comments>
		</item>
		<item>
			<title>Remote Access/en</title>
			<link>https://doc.expecco.de/index.php?title=Remote_Access/en&amp;diff=31742&amp;oldid=31405</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Remote_Access/en&amp;diff=31742&amp;oldid=31405</guid>
			<description>&lt;p&gt;add native SSH/SFTP action blocks (26.2) to &amp;#039;From expecco actions&amp;#039;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. August 2026, 18:18 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 107:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 107:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Plugins → Remote Access — SSH Keys&#039;&#039;&#039; carrying a single&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Plugins → Remote Access — SSH Keys&#039;&#039;&#039; carrying a single&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Generate SSH Key Pair...&#039;&#039;&#039; button that opens the same dialog.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Generate SSH Key Pair...&#039;&#039;&#039; button that opens the same dialog.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Since expecco 26.2 the plugin additionally provides &#039;&#039;&#039;native&#039;&#039;&#039; SSH and SFTP action blocks, implemented in pure Smalltalk on top of &amp;lt;code&amp;gt;exept:libcrypt/ssh&amp;lt;/code&amp;gt; — no external &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;plink&amp;lt;/code&amp;gt; binary is required.  A connection is opened once and its &amp;lt;code&amp;gt;SshHandle&amp;lt;/code&amp;gt; is passed to the following blocks.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SSH blocks:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Open Connection&#039;&#039;&#039; — connect and authenticate (explicit private key, ssh-agent, or the default &amp;lt;code&amp;gt;~/.ssh&amp;lt;/code&amp;gt; keys), yielding an &amp;lt;code&amp;gt;SshHandle&amp;lt;/code&amp;gt; for the blocks below.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Open Connection with Password&#039;&#039;&#039; — the same, but authenticating with a plaintext password instead of a key.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Execute Command&#039;&#039;&#039; — run a single command; captures stdout, stderr and exit status, with an optional stdin stream piped to the remote process.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Execute Commands&#039;&#039;&#039; — run a list of commands, each as its own exec channel, on an open connection.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Execute Commands In Shell&#039;&#039;&#039; — run a list of commands in one persistent login shell, so that state such as the working directory carries across commands.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SSH - Close Connection&#039;&#039;&#039; — close a connection opened above.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SFTP blocks (each layered on an open &amp;lt;code&amp;gt;SshHandle&amp;lt;/code&amp;gt;):&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - Upload File&#039;&#039;&#039; and &#039;&#039;&#039;SFTP - Upload File from String/Stream&#039;&#039;&#039; — write a local file, or in-memory content / a read stream, to a remote path (streamed, without buffering the whole file).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - Download File&#039;&#039;&#039; — read a remote file to a local file and/or into a supplied write stream (streamed, without buffering the whole file).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - List Directory&#039;&#039;&#039; — list the entries of a remote directory.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;SFTP - Delete File&#039;&#039;&#039;, &#039;&#039;&#039;SFTP - Rename&#039;&#039;&#039; and &#039;&#039;&#039;SFTP - Make Directory&#039;&#039;&#039; — remote file management.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Each of these blocks ships with a runnable Test/Demo network (its &#039;&#039;Test/Demo&#039;&#039; tab) that connects to the host given by the &amp;lt;code&amp;gt;DEMO_SSH_HOST&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DEMO_SSH_PORT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEMO_SSH_USER&amp;lt;/code&amp;gt; environment variables.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Generating an SSH key pair ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Generating an SSH key pair ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 21 Aug 2026 18:18:58 GMT</pubDate>
			<dc:creator>Sv</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Remote_Access/en</comments>
		</item>
		<item>
			<title>Release Notes 26.x</title>
			<link>https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31741&amp;oldid=31733</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Release_Notes_26.x&amp;diff=31741&amp;oldid=31733</guid>
			<description>&lt;p&gt;26.2: the four SNMP entries consolidated into one&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. August 2026, 12:10 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;de&quot;&gt;(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 13:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 13:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: improved SSDP service announcement&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: improved SSDP service announcement&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: full ipV6 UDP support (mostly socketAddress fixes and multicast support)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: full ipV6 UDP support (mostly socketAddress fixes and multicast support)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Feature: &#039;&#039;&#039;NEW&#039;&#039;&#039; [[SNMP Plugin Reference/en|SNMP]] support, reimplemented in expecco itself - no &#039;&#039;net-snmp&#039;&#039; installation is needed any more, and the blocks behave identically on every supported platform. SNMP v1, v2c and v3 (authentication with MD5, SHA-1 or one of the SHA-2 protocols of RFC 7860, encryption with DES or AES-128); a whole table read by one block with its rows and their INDEX decoded (ifTable, ipAddrTable, tcpConnTable, ...); many devices asked the same question at once, in parallel; traps and informs both received and sent. An up to date set of MIB modules (net-snmp 5.9.5.2) is delivered, so the names of SNMPv2-MIB, IF-MIB, IP-MIB, TCP-MIB and friends resolve out of the box - the deprecated RFC1213-MIB groups (&#039;&#039;at&#039;&#039;, &#039;&#039;egp&#039;&#039;, &#039;&#039;ipRouteTable&#039;&#039;) are not part of it and are shown numerically, add &#039;&#039;RFC1213-MIB.txt&#039;&#039; to a MIB directory (&quot;Add MIB Directory&quot;) if a device still needs those names. Fixes on the way: object identifiers were corrupted on 64bit systems, which made most SNMP blocks return wrong values.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: the &#039;&#039;&#039;SNMP&#039;&#039;&#039; blocks no longer use the external &#039;&#039;net-snmp&#039;&#039; library; SNMP v1, v2c and v3 (authentication with MD5 or SHA-1, encryption with DES or AES-128) are now implemented in expecco itself and behave identically on all supported platforms.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: an up to date set of MIB modules (from net-snmp 5.9.5.2) is delivered with the SNMP library, so symbolic names such as those of IF-MIB, IP-MIB or TCP-MIB are resolved out of the box. The deprecated RFC1213-MIB groups (&#039;&#039;at&#039;&#039;, &#039;&#039;egp&#039;&#039; and &#039;&#039;ipRouteTable&#039;&#039;) are no longer part of it and are shown numerically instead; add &#039;&#039;RFC1213-MIB.txt&#039;&#039; to a MIB directory (&quot;Add MIB Directory&quot;) if a device still requires those names.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: SNMP object identifiers were corrupted on 64bit systems, so that most SNMP blocks returned wrong values.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fix: JSON printer&#039;s recursive store detection was generating false positives&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: better Python syntax highlighter&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Improvement: better Python syntax highlighter&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 21 Aug 2026 12:10:26 GMT</pubDate>
			<dc:creator>Sv</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Release_Notes_26.x</comments>
		</item>
		<item>
			<title>Weitere Plugins</title>
			<link>https://doc.expecco.de/index.php?title=Weitere_Plugins&amp;diff=31739&amp;oldid=29205</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=Weitere_Plugins&amp;diff=31739&amp;oldid=29205</guid>
			<description>&lt;p&gt;SNMP Plugin ergaenzt&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. August 2026, 12:05 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 8:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 8:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[NoSQL|NoSQL Datenbanken]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[NoSQL|NoSQL Datenbanken]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[GembirdPowerControlPlugin Reference]] -- kontrolliert eine fernsteuerbare Stromversorgung zum autom. An- bzw. Abschalten von Geräten (Teil des Basissystems)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[GembirdPowerControlPlugin Reference]] -- kontrolliert eine fernsteuerbare Stromversorgung zum autom. An- bzw. Abschalten von Geräten (Teil des Basissystems)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[SNMP Plugin Reference/en|SNMP Plugin]] -- fragt SNMP-fähige Geräte ab (Router, Switches, Drucker, Server, USVs), liest ganze Tabellen und empfängt bzw. sendet Traps (Teil des Basissystems)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 21 Aug 2026 12:05:46 GMT</pubDate>
			<dc:creator>Sv</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:Weitere_Plugins</comments>
		</item>
		<item>
			<title>SNMP Plugin Reference/en</title>
			<link>https://doc.expecco.de/index.php?title=SNMP_Plugin_Reference/en&amp;diff=31738&amp;oldid=0</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=SNMP_Plugin_Reference/en&amp;diff=31738&amp;oldid=0</guid>
			<description>&lt;p&gt;SNMP plugin description: library blocks, protocol versions, MIBs, tables, traps, Test/Demo variables&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== SNMP Plugin ==&lt;br /&gt;
The SNMP plugin lets a test suite talk to SNMP capable equipment - routers, switches, printers, servers,&lt;br /&gt;
UPS units, sensors - and receive the notifications such a device sends. It delivers the &amp;#039;&amp;#039;&amp;#039;SNMP Library&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
whose blocks cover the manager side of SNMP v1, v2c and v3: reading and writing objects, walking subtrees,&lt;br /&gt;
reading whole tables, resolving MIB names, and receiving as well as sending traps.&lt;br /&gt;
&lt;br /&gt;
Everything is implemented in expecco itself. No &amp;#039;&amp;#039;net-snmp&amp;#039;&amp;#039; installation and no other external library is&lt;br /&gt;
needed, and the blocks behave the same on every supported platform.&lt;br /&gt;
&lt;br /&gt;
=== The SNMP Library ===&lt;br /&gt;
The blocks are found in the library &amp;quot;&amp;#039;&amp;#039;SNMP Library&amp;#039;&amp;#039;&amp;quot;, grouped into six categories. Every block carries its&lt;br /&gt;
own documentation, every pin explains what it expects, and every block has a Test/Demo network which shows it&lt;br /&gt;
in use.&lt;br /&gt;
&lt;br /&gt;
==== SNMP Connection ====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Open SNMP Session&amp;#039;&amp;#039;&amp;#039; - open a session to a device with SNMP v1 or v2c, using a community string.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Open SNMPV3 Session&amp;#039;&amp;#039;&amp;#039; - open an SNMPv3 session with a user name, an authentication and an encryption protocol, and the two passphrases. The context name and context engine id can be given for agents which partition their MIB into contexts.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Close SNMP Session&amp;#039;&amp;#039;&amp;#039; - release the session and its socket.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Timeout/Retries&amp;#039;&amp;#039;&amp;#039; - how long to wait for an answer and how often to repeat a request.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Session Info&amp;#039;&amp;#039;&amp;#039; - which host, port, version, community and context a session handle refers to.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Last Error&amp;#039;&amp;#039;&amp;#039; - why the last request did not deliver a value, as a symbolic reason (noResponse, timedOut, noSuchName, wrongDigest, notWritable, ...).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Max Repetitions&amp;#039;&amp;#039;&amp;#039; - how many objects one GetBulk request asks for; this is what a walk uses.&lt;br /&gt;
&lt;br /&gt;
==== SNMP Requests ====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Get&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;SNMP Get Next&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;SNMP Get Bulk&amp;#039;&amp;#039;&amp;#039; - read one object, the object following it, or a batch of following objects.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Get Subtree&amp;#039;&amp;#039;&amp;#039; - walk everything below an object (for instance the whole &amp;#039;&amp;#039;system&amp;#039;&amp;#039; group or an entire table) and answer it as an oid to value dictionary.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Set&amp;#039;&amp;#039;&amp;#039; - write one object. Without an explicit type the type is taken from the MIB definition, and the object is read back afterwards, so the outputs show what the agent really stored.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Multi Get&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;Multi Get Next&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;Multi Get Bulk&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;Multi Set&amp;#039;&amp;#039;&amp;#039; - the same for several objects in ONE request, which is much faster than asking one by one.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Get with Default&amp;#039;&amp;#039;&amp;#039; - read an object which only some devices implement, answering a default instead of failing.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Read SNMP Table&amp;#039;&amp;#039;&amp;#039; - read a whole conceptual table (ifTable, ipAddrTable, tcpConnTable, ...) and answer its rows in index order. The rows are also delivered one by one, so a following step can run once per row.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Table Row Value&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;Table Row Index&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;Table Row as Dictionary&amp;#039;&amp;#039;&amp;#039; - read a column of a row by name or number, the decoded INDEX of a row, or the whole row as a columnName to value dictionary.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNMP Get on Hosts&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;SNMP Multi Get on Hosts&amp;#039;&amp;#039;&amp;#039; - ask many devices the same question at once. The hosts are queried in parallel, so the block takes about as long as the slowest device rather than the sum of all of them; a host which does not answer is reported, not an error.&lt;br /&gt;
&lt;br /&gt;
==== MIB Access ====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Name to OID&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;OID to Name&amp;#039;&amp;#039;&amp;#039; - translate between a MIB name (&amp;#039;&amp;#039;sysDescr.0&amp;#039;&amp;#039;, &amp;#039;&amp;#039;SNMPv2-MIB::sysDescr.0&amp;#039;&amp;#039;) and the numeric object identifier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resolve OIDs in Dictionary Keys&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;... Values&amp;#039;&amp;#039;&amp;#039; - replace the OIDs in the result of a walk or a multi get by their MIB names, which is what makes such a result readable in the report.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Describe MIB Object&amp;#039;&amp;#039;&amp;#039; - what the MIB knows about an object: full name, syntax, access, status, unit, the labels of an enumerated INTEGER, and whether it is a table or a table row with its INDEX.&lt;br /&gt;
&lt;br /&gt;
==== MIB Management ====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Add MIB Directory&amp;#039;&amp;#039;&amp;#039; - parse the MIB files of a directory and add them, so vendor specific names can be used in the other blocks.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Shutdown MIB&amp;#039;&amp;#039;&amp;#039; - forget everything read from MIB files; the next name to resolve reads them again.&lt;br /&gt;
&lt;br /&gt;
==== SNMP Traps ====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Start Trap Listener&amp;#039;&amp;#039;&amp;#039; - listen for notifications on a UDP port. The standard port 162 needs root privileges on unix, so an unprivileged port such as 11162 is often used.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wait for Trap&amp;#039;&amp;#039;&amp;#039; - wait for the next notification and answer its sender, version, identifier (resolved through the MIB) and all its variables. Notifications which arrived before the block ran are not lost, and an inform request is acknowledged automatically.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Stop Trap Listener&amp;#039;&amp;#039;&amp;#039; - stop listening and release the port.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Send Trap&amp;#039;&amp;#039;&amp;#039; - send a notification to a trap receiver, as a plain trap or as an inform request which the receiver has to acknowledge.&lt;br /&gt;
&lt;br /&gt;
=== Protocol versions and security ===&lt;br /&gt;
SNMP &amp;#039;&amp;#039;&amp;#039;v1&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;v2c&amp;#039;&amp;#039;&amp;#039; identify the caller with a community string, which travels in clear text.&lt;br /&gt;
&lt;br /&gt;
SNMP &amp;#039;&amp;#039;&amp;#039;v3&amp;#039;&amp;#039;&amp;#039; authenticates and encrypts with the User-based Security Model. Supported protocols:&lt;br /&gt;
* authentication: &amp;#039;&amp;#039;md5&amp;#039;&amp;#039; and &amp;#039;&amp;#039;sha1&amp;#039;&amp;#039; (RFC 3414), and the SHA-2 protocols &amp;#039;&amp;#039;sha224&amp;#039;&amp;#039;, &amp;#039;&amp;#039;sha256&amp;#039;&amp;#039;, &amp;#039;&amp;#039;sha384&amp;#039;&amp;#039; and &amp;#039;&amp;#039;sha512&amp;#039;&amp;#039; (RFC 7860). Current net-snmp builds refuse MD5, so prefer SHA-256.&lt;br /&gt;
* encryption: &amp;#039;&amp;#039;des&amp;#039;&amp;#039; and &amp;#039;&amp;#039;aes128&amp;#039;&amp;#039; (RFC 3826). Encryption is only possible together with authentication.&lt;br /&gt;
&lt;br /&gt;
Engine discovery and the clock synchronisation an authenticated session needs happen automatically.&lt;br /&gt;
&lt;br /&gt;
=== MIBs ===&lt;br /&gt;
A current set of MIB modules is delivered with the library, so the usual names - those of SNMPv2-MIB, IF-MIB,&lt;br /&gt;
IP-MIB, TCP-MIB, UDP-MIB, HOST-RESOURCES-MIB and many more - resolve without any setup. Vendor MIBs are added&lt;br /&gt;
with &amp;quot;&amp;#039;&amp;#039;Add MIB Directory&amp;#039;&amp;#039;&amp;quot;, either from a directory of your own or from &amp;#039;&amp;#039;~/.snmp/mibs&amp;#039;&amp;#039;, which is read&lt;br /&gt;
automatically.&lt;br /&gt;
&lt;br /&gt;
The deprecated RFC1213-MIB groups &amp;#039;&amp;#039;at&amp;#039;&amp;#039;, &amp;#039;&amp;#039;egp&amp;#039;&amp;#039; and &amp;#039;&amp;#039;ipRouteTable&amp;#039;&amp;#039; are not part of the delivered set;&lt;br /&gt;
objects below them are shown numerically. Their replacements are &amp;#039;&amp;#039;ipNetToMediaTable&amp;#039;&amp;#039;, &amp;#039;&amp;#039;ipCidrRouteTable&amp;#039;&amp;#039;&lt;br /&gt;
and &amp;#039;&amp;#039;inetCidrRouteTable&amp;#039;&amp;#039;. If a device really needs the old names, drop &amp;#039;&amp;#039;RFC1213-MIB.txt&amp;#039;&amp;#039; into a MIB&lt;br /&gt;
directory.&lt;br /&gt;
&lt;br /&gt;
=== Reading a table ===&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;Read SNMP Table&amp;#039;&amp;#039;&amp;quot; answers the rows of a conceptual table. A row knows its columns by name and the INDEX&lt;br /&gt;
which identifies it, and &amp;quot;&amp;#039;&amp;#039;Table Row Index&amp;#039;&amp;#039;&amp;quot; decodes that INDEX as the MIB defines it - the interface number&lt;br /&gt;
for &amp;#039;&amp;#039;ifTable&amp;#039;&amp;#039;, the IP address for &amp;#039;&amp;#039;ipAddrTable&amp;#039;&amp;#039;, the four parts of a connection for &amp;#039;&amp;#039;tcpConnTable&amp;#039;&amp;#039;.&lt;br /&gt;
Values arrive as Smalltalk objects: a counter as a number, an &amp;#039;&amp;#039;ifOperStatus&amp;#039;&amp;#039; as its label (&amp;#039;&amp;#039;up&amp;#039;&amp;#039;, &amp;#039;&amp;#039;down&amp;#039;&amp;#039;),&lt;br /&gt;
an IP address as an address, &amp;#039;&amp;#039;sysUpTime&amp;#039;&amp;#039; as a time duration.&lt;br /&gt;
&lt;br /&gt;
=== Traps and informs ===&lt;br /&gt;
A test can wait for a notification instead of polling: start a listener, let the device do whatever should&lt;br /&gt;
trigger the trap, and read it with &amp;quot;&amp;#039;&amp;#039;Wait for Trap&amp;#039;&amp;#039;&amp;quot;. Traps of all three versions are accepted; for SNMPv3&lt;br /&gt;
the sender is the authoritative engine, so the listener localizes the keys per sending device by itself.&lt;br /&gt;
Notifications which do not authenticate, or whose community is not accepted, are dropped silently.&lt;br /&gt;
&lt;br /&gt;
An inform request is acknowledged automatically, and &amp;quot;&amp;#039;&amp;#039;Send Trap&amp;#039;&amp;#039;&amp;quot; can send one, so a suite can also play&lt;br /&gt;
the role of the device.&lt;br /&gt;
&lt;br /&gt;
=== Test/Demo networks ===&lt;br /&gt;
Every block has a Test/Demo network. The ones which need a device use these environment variables of the&lt;br /&gt;
library, so that one place decides which equipment the demos talk to:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| DemoSNMPHost || the device the demos read from&lt;br /&gt;
|-&lt;br /&gt;
| DemoSNMPCommunity || the community string used for v1 / v2c&lt;br /&gt;
|-&lt;br /&gt;
| DemoSNMPV3User || the SNMPv3 user name&lt;br /&gt;
|-&lt;br /&gt;
| DemoSNMPV3AuthPassphrase || its authentication passphrase (the demo agent uses SHA-256)&lt;br /&gt;
|-&lt;br /&gt;
| DemoSNMPV3PrivPassphrase || its encryption passphrase (the demo agent uses AES-128)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Change them to a device of your own before running the demos. The trap demos need nothing on the network -&lt;br /&gt;
they start a listener, send themselves a trap and read it back.&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3416 RFC 3416] - the SNMP protocol operations&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3414 RFC 3414] - the User-based Security Model of SNMPv3&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc7860 RFC 7860] - the SHA-2 authentication protocols&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc2578 RFC 2578] - SMIv2, how a MIB module is written&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</description>
			<pubDate>Fri, 21 Aug 2026 12:01:07 GMT</pubDate>
			<dc:creator>Sv</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:SNMP_Plugin_Reference/en</comments>
		</item>
		<item>
			<title>KI Coding Plugin</title>
			<link>https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31737&amp;oldid=31731</link>
			<guid isPermaLink="false">https://doc.expecco.de/index.php?title=KI_Coding_Plugin&amp;diff=31737&amp;oldid=31731</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tipps&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 20. August 2026, 23:11 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;de&quot;&gt;(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 395:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 395:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; }&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; }&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alternativ können Sie den Server auch direkt im Tabnine-IDE-Plugin über &amp;lt;code&amp;gt;☰ → ⛭ Settings → Tools and MCPs → MCP servers → + Add MCP server&amp;lt;/code&amp;gt; eintragen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alternativ können Sie den Server auch direkt im Tabnine-IDE-Plugin über &amp;lt;code&amp;gt;☰ → ⛭ Settings → Tools and MCPs → MCP servers → + Add MCP server&amp;lt;/code&amp;gt; eintragen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== LM Studio ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die mcp Konfiguration kann im LM Studio GUI direkt eingegeben werden (Program → Install → Edit mcp.json);&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &quot;mcpServers&quot;: {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &quot;mcp&quot;: {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &quot;url&quot;: &quot;https://127.0.0.1:9876/mcp&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; }&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Zusätzlich muss der server mode eingeschaltet werden (Developer → Start Server). Der default port ist &quot;http://localhost:1234&quot; den Sie in den expecco settings eingeben müssen. Ist das einmal konfiguriert, können sie den server auch ohne ml studio UI starten: &quot;lms server start&quot;, &quot;lms server load modellName&quot;. Modelle können via &quot;lms&quot; herunter geladen werden, angenehmer (mit Suche und Infos) geht das aber im LM Studio UI.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Tipps ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Tipps ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Mehrere Konversationen&#039;&#039;&#039;: der Chat ist ein Singleton — eine neue Anfrage über ein Browser-/Editor-Menü startet jedesmal eine &#039;&#039;&#039;neue&#039;&#039;&#039; Konversation. Folge-Fragen (Klärung, Vertiefung) gehen über das Eingabefeld in derselben Konversation.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Mehrere Konversationen&#039;&#039;&#039;: der Chat ist ein Singleton — eine neue Anfrage über ein Browser-/Editor-Menü startet jedesmal eine &#039;&#039;&#039;neue&#039;&#039;&#039; Konversation. Folge-Fragen (Klärung, Vertiefung) gehen über das Eingabefeld in derselben Konversation.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Vorsicht:&#039;&#039;&#039; Die Größe der übertragenen Daten (auch die aus dem Chatfenster) geht in die Kostenberechnung ein. Deshalb immer eine neue Konversation starten, wenn es um ein neues Thema geht.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Vorsicht:&#039;&#039;&#039; Die Größe der übertragenen Daten (auch die aus dem Chatfenster) geht in die Kostenberechnung ein. Deshalb immer eine neue Konversation starten, wenn es um ein neues Thema geht&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; oder eine neue Aufgabe gestellt wird&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Modell wechseln&#039;&#039;&#039;: Für schnelle Routine-Antworten Haiku oder Sonnet, für schwierige Refactorings Opus. Über das &#039;&#039;&#039;Set model&#039;&#039;&#039;-Untermenü direkt aus der Toolbar oder über die Settings.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Modell wechseln&#039;&#039;&#039;: Für schnelle Routine-Antworten Haiku oder Sonnet, für schwierige Refactorings Opus. Über das &#039;&#039;&#039;Set model&#039;&#039;&#039;-Untermenü direkt aus der Toolbar oder über die Settings.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Anbieter wechseln&#039;&#039;&#039;: Sind Schlüssel für &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;beide&lt;/del&gt; Anbieter konfiguriert&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, schaltet&lt;/del&gt; das &#039;&#039;&#039;Set provider&#039;&#039;&#039;-Untermenü ohne Umweg über den Settings-Dialog um.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Anbieter wechseln&#039;&#039;&#039;: Sind Schlüssel für &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jeden&lt;/ins&gt; Anbieter&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; separat&lt;/ins&gt; konfiguriert&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/ins&gt; das &#039;&#039;&#039;Set provider&#039;&#039;&#039;-Untermenü&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; schaltet&lt;/ins&gt; ohne Umweg über den Settings-Dialog um.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Code direkt ausführen&#039;&#039;&#039;: In Code-Karten kann markierter Smalltalk-Code per doIt / printIt / inspectIt direkt evaluiert werden — praktisch z.B. um vom Modell vorgeschlagene SUnit-Asserts gleich auszuprobieren, ohne den Code erst in einen Workspace zu kopieren.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Code direkt ausführen&#039;&#039;&#039;: In Code-Karten kann markierter Smalltalk-Code per doIt / printIt / inspectIt direkt evaluiert werden — praktisch z.B. um vom Modell vorgeschlagene SUnit-Asserts gleich auszuprobieren, ohne den Code erst in einen Workspace zu kopieren.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Custom prompt&#039;&#039;&#039; eignet sich gut für „warum macht Methode X es so und nicht so?&quot; oder „schreib mir einen ParameterizedTest dazu mit folgenden Daten: …&quot;.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Custom prompt&#039;&#039;&#039; eignet sich gut für „warum macht Methode X es so und nicht so?&quot; oder „schreib mir einen ParameterizedTest dazu mit folgenden Daten: …&quot;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 20 Aug 2026 23:11:28 GMT</pubDate>
			<dc:creator>Cg</dc:creator>
			<comments>https://doc.expecco.de/wiki/Diskussion:KI_Coding_Plugin</comments>
		</item>
</channel></rss>