§1Konnektoren

Externe Quellen passieren ein Schloss

Lokale DateienHTTP(S)S3 · GCSSSH · Relayam Gerät · kein SchlüsselZugangsdatenEngineWebGPU
Abb. 1 — Drei externe Quellen passieren ein Zugangsdaten-Schloss auf deinem Gerät; lokale Dateien strömen ganz ohne Schlüssel direkt von der Platte. Schlüssel bleiben auf dem Gerät, nie synchronisiert.

Ein Konnektor ist Inhalt, kein Feature der Engine. Jeder bindet drei Dinge: was er anfasst, typisierte Ein- und Ausgänge mit einem klaren Plan fürs Streamen, und den Schlüssel, den er braucht. Nichts davon ist uns vorbehalten — dieselbe Form, dieselben Prüfungen und derselbe Katalog bedienen die Builtins und selbst geschriebene Konnektoren gleichermaßen. Eine fehlende Quelle ist also etwas, das du hinzufügst, nicht etwas, worauf du wartest.

Die Richtung steckt im Typ, sie ist keine Nuance. Daten hereinholen zieht Bytes auf dein Gerät — du stimmst beim Abruf zu, danach liegen sie local-first. Daten hinausschicken ist eine eigene, stärkere Zustimmung, die das Ziel benennt, und sie kann nie auf der Erlaubnis mitreisen, die du fürs Hereinholen gegeben hast. Und wo ein Browser ein Protokoll gar nicht sprechen kann — ein Tab öffnet keinen rohen Netzwerk-Socket — laufen SSH und FTP über ein Plattform-Relay und werden genau so deklariert.

§2Der Startbestand

Ein Startkatalog, nie eine Obergrenze

FamilieKonnektorenWas die Tür öffnetWie es läuft, und eine ehrliche Anmerkung
SpeicherLokale Dateien · Uploads · S3 · GCS · Drive · Dropboxein Dateidialog · Signatur der Anfrage · OAuthDirekt aus deinem Browser; Bucket-Anfragen werden auf deinem Gerät signiert.
TransferDas Web, rein und raus · FTP · FTPS · SFTPAPI-Schlüssel · Passwort · SSH-SchlüsselDas Web läuft direkt aus dem Browser; SSH und FTP über das Relay — ein Tab öffnet keinen rohen Socket.
NachrichtenE-Mail · Telegram · Ausgehende WebhooksPasswort · API-Schlüssel · gemeinsames GeheimnisDie Zustimmung nennt die Empfängerin; eine Probe und ein Protokoll des Gesendeten sind Pflicht, keine Option.
EingehendEingehende Webhooksein wechselbarer Inbox-SchlüsselEine gehostete Inbox, größenbegrenzt und mit Ablauf — nie etwas, das auf deinem Gerät lauscht, und unterwegs nicht local-first.
ExportGoogle Sheets · Colab-ExportOAuth — nur die Dateien, die du wählstEin Formatwandler plus ein Konnektor; Colab heißt Export plus ein Link zum Öffnen — nie Ausführung aus der Ferne.

Elf Konnektoren sind der Startkatalog des Early Access, keine Grenze: Die Arten und die Familien sind offene Listen, die jede und jeder erweitern kann, und jede Zeile hat dieselbe Prüfung bestanden wie ein Konnektor, den du schreibst.

Der Startkatalog umfasst elf Konnektoren in fünf Familien: lokale Dateien und Uploads; das Web, rein und raus; FTP, FTPS und SFTP über das Relay; S3 und GCS, mit auf deinem Gerät signierten Anfragen; Google Drive und Dropbox; E-Mail-Versand; ein Telegram-Bot; ausgehende Webhooks; eine Inbox für eingehende; Zeilen an eine Tabelle anhängen; und Export nach Colab. Jeder davon ist gewöhnlicher Katalog-Inhalt — versioniert, lesbar, aus dem Katalog installiert wie alles andere.

Was bewusst *nicht* dabei ist, sagt genauso viel wie das, was da ist. OneDrive, Slack, Discord, die Gmail-API — die bleiben zum Selberschreiben: ein Nachmittag Arbeit, mit eigenen App-Zugangsdaten, veröffentlicht wie jeder andere Inhalt. Eine fehlende Integration ist eine Lücke im Katalog, nie ein Ticket in der Warteschlange eines Anbieters. Der Guide geht den ganzen Weg durch: Daten & Konnektoren.

§3Zugangsdaten

Der Tresor, den die Plattform nicht lesen kann

EigenschaftMechanismusAnmerkung
Im RuhezustandAES-256-GCM unter einem gerätegebundenen SchlüsselAuf deinem Gerät verschlüsselt; die Plattform hält keine Kopie.
Sync & HerkunftnieNicht synchronisiert, nicht zur Synchronisierung eingereiht, in keine Aufzeichnung geschrieben — eine Regel, keine Einstellung.
Backupeine passphrasengeschützte ExportdateiDu hältst sie. Ohne sie heißt Geräteverlust: Schlüssel neu eingeben — eine Design-Eigenschaft, kein Defekt.
Die eine Ausnahmedas Relay meldet sich für SSH und FTP anIm Speicher, nur für diese Verbindung, mit deiner Zustimmung — benannt, nie versteckt.
Daten hinausschickeneine eigene Zustimmung, die das Ziel benenntDie Erlaubnis fürs Hereinholen deckt sie nie mit ab; die Richtung steckt im Typ.
AssistentenSchlüssel fasst nur du an, in der AppDer Copilot kann einen Konnektor einrichten und dir zeigen, was er täte; ein Geheimnis sieht er nie.

Die Geheimnisse, die ein Konnektor braucht — API-Schlüssel, Anmelde-Tokens, SSH-Schlüssel — liegen in einem verschlüsselten Speicher auf deinem Gerät, unter einem Schlüssel, der an dieses Gerät gebunden ist. Sie werden nie synchronisiert, nie zur Synchronisierung eingereiht, nie in die Aufzeichnung eines Laufs gestempelt. Die eine Kopie, die existiert, ist deine; ein Schlüssel bewegt sich nur auf einem einzigen Weg — als passphrasengeschützte Exportdatei, die du hältst und die die Plattform nie zu sehen bekommt.

Es gibt genau eine Ausnahme, und sie wird benannt statt versteckt: SSH und FTP verlangen, dass sich das Relay als du anmeldet — dieses Geheimnis passiert das Relay also, nur im Speicher, nur für diese Verbindung und jedes Mal nur mit deiner Zustimmung. Es steht bei den ehrlichen Grenzen der Plattform, statt schöngeredet zu werden. Alles Weitere zur Vertrauensfläche — Sandbox, Signaturen, wann du wonach gefragt wirst — steht unter Sicherheit.

Selbst *wie* ein Dienst angebunden wird, ist Inhalt. Die Anmeldung bei einem externen Dienst beschreibt Inhalt, den du schreiben kannst — wo seine Anmeldeseite liegt, welche Rechte er verlangt, wie er die Identität der App belegt — ein neuer Anbieter ist also Inhalt, nie Engine-Code. Die Rechte werden schon beim Schreiben knapp gehalten: Der eingebaute Google-Konnektor fragt nur nach den einzelnen Dateien, die du auswählst, und ein Anbieter, den du schreibst, bringt seine eigenen App-Zugangsdaten mit — ganz ohne uns zu fragen. Die tiefere Mechanik steht in Sicherheit & Privatsphäre.

§4Formate & Datensätze

Von fremden Bytes zu zitierfähigen Datensätzen

Ein Konnektor bewegt Bytes; ein Formatwandler macht daraus typisierte Daten, mit denen du arbeiten kannst. Der eingebaute Satz liest und schreibt ONNX, safetensors und PyTorch-Checkpoints; CSV, Parquet und Arrow; Excel- und Word-Export; dazu die beiden gängigen Tokenizer, deren Vokabulare eigenständige, versionierte Artefakte sind. Zieh eine fremde Datei auf die Canvas, und sie läuft durch Konnektor und Wandler direkt in einen Datensatz — eine Geste, und derselbe Zustimmungspfad wie überall sonst.

Datensätze sind versioniert und über ihren Inhalt adressiert — ihre Splits ebenso. Trainings-, Validierungs- und Test-Partitionen sind Artefakte, auf die per Hash verwiesen wird; der exakte Split hinter einem Ergebnis ist damit reproduzierbar statt Folklore. Jeder Datensatz trägt ein Datenblatt und ein Profil — Spalten, fehlende Werte, Klassenbalance — und jeder Trainingslauf hält fest, welche Datensatz-Versionen er genau verbraucht hat. Genau das macht aus „Welche Daten haben dieses Modell trainiert?“ eine Abfrage statt eines Ausgrabungsprojekts.

§5Skalierung

Größer als der Speicher ist der Normalfall

Große Daten werden als Strom verarbeitet — in Stücken, gegen ausdrückliche Speicher- und Ablage-Budgets — nie durch Alles-Laden-und-Hoffen. Jeder Block sagt vorab, wie er seine Daten liest: in einem Durchgang, in einer genannten Zahl von Durchgängen oder indem er auf die Platte auslagert, wenn es nicht passt — und der Planer hält ihn daran. Ob ein Lauf passt, wird ausgerechnet, *bevor* er startet; einer, der nicht passt, wird vorab abgelehnt, mit konkreten Dingen, die du ändern kannst. Eine Speicher-Überraschung nach einer Stunde Rechnen ist ein Konstruktionsfehler, kein Pech.

Dieselbe Disziplin gilt, wenn nichts läuft. Große Dinge werden in Stücken gespeichert und über ihren Inhalt adressiert — gestreamt statt neu geparst, geholt, wenn sie gebraucht werden, und bei Ankunft geprüft. Alles, was ein gespeicherter Workflow braucht, liegt vor dem Lauf auf deinem Gerät, Lesezugriffe kommen also aus deiner eigenen Datenbank; ein geteilter Datensatz kommt als geprüfte Stücke an, und der Weltkatalog wird bei Bedarf abgefragt — nie als Ganzes auf deine Platte gespiegelt.

§6Senden & Empfangen

Senden ist bewusst; Trigger brauchen einen offenen Tab

Externes Systemein Webhook kommtPlattform-Inboxbegrenzt · läuft abTab offen + scharfscharf = ZustimmungLaufdeine GPUTab zu → wartet, bis du öffnestnichts läuft unbeaufsichtigt
Abb. 2 — Eingehend, ehrlich: Ereignisse landen in einer Inbox, die wir hosten, und können einen Lauf nur durch das Tor „Tab offen + scharfgeschaltet“ starten. Ein geschlossener Tab reiht das Ereignis ein; er führt es nie aus.

Wenn ein Workflow auf die Welt wirkt — eine E-Mail sendet, eine Nachricht postet, einen Webhook aufruft — trägt der Akt Pflichten. Jeder von ihnen unterstützt eine Probe: genau das, was hinausginge — wohin, Betreff, Inhalt, welche Dateien — wird dir gezeigt, ohne dass wirklich etwas gesendet und ohne dass Zustimmung verbraucht wird. Sendungen sind außerdem gegen Wiederholung geschützt: Ein Workflow, der fortgesetzt oder neu gestartet wird, sendet nicht versehentlich zweimal, weil dein Gerät festhält, was es schon gesendet hat. Diese Aufzeichnung gilt — ehrlicherweise — pro Gerät, und jede Sendung wird in die Herkunft des Laufs geschrieben.

Eingehend ist ehrlich darüber, was ein Browser ist. Ein Tab kann nicht lauschen, also landen eingehende Webhooks in einer Inbox, die wir hosten — ein Schlüssel, den du wechseln kannst, größenbegrenzt, mit Ablauf. Das heißt: Was hereinkommt, ist unterwegs nicht local-first, und das Datenblatt sagt es genau so. Ein Ereignis kann einen Lauf nur starten, solange ein Tab offen ist; sonst wartet es in einer begrenzten Warteschlange, bis einer offen ist — und läuft diese über, sagt sie es laut, statt still etwas zu verwerfen.

Einen Trigger scharfzuschalten, ist die Zustimmung: eine stehende Erlaubnis über alles, was dieser Workflow anfasst, gegeben durch deine eigene Geste im Moment des Scharfschaltens. Ein Trigger kann beim Auslösen nie Zustimmung erzeugen, und eine Änderung, die den Wirkungskreis erweitert, entschärft ihn, bis du erneut scharfschaltest. Der Copilot darf einen Trigger entwerfen; er schaltet nie scharf. Senden, Inbox und Trigger kommen im Early Access in genau dieser Form — Scellis ist bewusst kein Produkt für unbeaufsichtigte Automatisierung: Ein geschlossener Tab führt nichts aus, und einen Zeitplaner, der bei geschlossenem Tab liefe, haben wir benannt und nicht gebaut.