SoSe 2026 · Vibecoding-Workshop · datei.jetzt
Stimmungsorientierte Softwareentwicklung

Programmieren nach Bauchgefühl — von der ersten Idee zur Live-App, in einer Session.

ssh datei.jetzt oh-my-pi GLM-5.2 0 Accounts · 0 Keys · 0 Installs
Das SOSE-Manifest
Stimmung über Spezifikation
Bauchgefühl über Backlog
Schwingung über Sprints
Vertrauen über Versionskontrolle

Wir erkennen die Werte rechts an — wir schwingen nur lieber links.

01 — Grundlagen · Vibe Coding

Was ist
Vibe Coding?

Du beschreibst in normaler Sprache. Der Agent baut. Du schaust, gibst Feedback, wiederholst.

Programmieren nach Bauchgefühl

— Andrej Karpathy, der den Begriff prägte

„There's a new kind of coding — you fully give in to the vibes and forget that the code even exists."

Nicht: Coden abschaffen. Sondern: die Ebene wechseln — vom Tippen jeder Zeile zum Beschreiben der Absicht.

01 — Grundlagen · Der Loop

Vibe Coding ist ein Loop.

01

Sagen

„Bau mir ein Stimmungsbarometer." Ziel, nicht Umsetzung.

02

Agent macht

Liest, schreibt Dateien, installiert, startet den Server.

03

Anschauen

Preview-URL öffnen. Sehen, was wirklich passiert.

04

Nachjustieren

„Buttons größer, dark mode." Zurück zu 01.

Je enger der Loop, desto besser das Gefühl. Der Preview-Link ist dein „Anschauen" — dazu später mehr.

01 — Grundlagen · Das eigentliche Geheimnis

Das Modell ist nicht alles.

Alle reden über das Modell. Aber ob's funktioniert, entscheidet das Harness drumherum: Tools, Edit-Format, Prompts.

Gleiches Modell, besseres Harness → drastisch bessere Ergebnisse. Das ist der Grund, warum unser günstiges GLM-5.2 hier so gut läuft.

Gleiches Modell · gleicher Prompt · anderes Harness

ModellEffekt
Grok Code Fast 16,7% → 68,3%
Gemini 3 Flash+5 pp
Grok 4 Fast−61% Tokens
MiniMax2,1× Pass-Rate

Quelle: omp.sh · „the harness problem"

Zehnfacher Erfolg — nur durch das Harness.

Unser Harness
oh-my-pi

„A coding agent with the IDE wired in."

omp.sh · omp im Terminal · Fork von Pi (Mario Zechner)

omp Terminal-UI
„complete out of the box, open all the way down."
40+
Provider
32
Tools
14
LSP-Ops
28
DAP-Ops
~55k
Zeilen Rust
01 — Grundlagen · Warum omp

Warum omp für diesen Workshop?

Terminal-first

Läuft überall, wo eine SSH-Verbindung hinkommt. Kein GUI-Setup.

Batteries included

Debugger, Browser, Websuche, Subagents — alles schon eingebaut.

Jedes Modell

Ein /model weiter. Heute: GLM-5.2, gesponsert.

Schon eingerichtet

In deinem Container fertig konfiguriert. Du tippst nur omp.

1 Teil 1

Von Null
auf Live.

Ein Terminal. Ein Befehl. Deine App im Netz.

02 — Setup · Einstieg

Du brauchst nur
ein Terminal.

bash
$ ssh datei.jetzt → willkommen, du bist dev@k-hxchpnn7 → Container läuft. omp ist bereit.

Kein Account, kein Key, kein Install.

Bietet dein SSH-Client einen Public Key an, ist dessen Fingerprint deine Identität (k-a1b2c3d4).

Kein Key? Du bekommst einen Namen (brave-otter) und kommst per ssh brave-otter@datei.jetzt zurück.

TOFU: der erste Key, den du je anbietest, wird an deinen Namen gepinnt.

02 — Setup · Der Container

Was in deinem Wegwerf-Container steckt

omp

Vorkonfiguriert: GLM-5.2 auf maximalem Thinking, yolo-Freigaben.

code-server

Voller VS-Code-Editor im Browser — falls du doch mal von Hand ran willst.

Sprachen

node · bun · python · rust — vorinstalliert, sofort startklar.

sudo ohne Passwort

Fehlt ein Paket? sudo apt install — der Agent macht das selbst.

tmux

Sessions überleben. WLAN weg, Laptop zu? Neu verbinden — der Agent läuft weiter.

Egal-Prinzip

Alles wegwerfbar. Bau, mach kaputt, fang neu an. Keine Angst.

02 — Setup · Das Killer-Feature

Deine App ist
öffentlich.

Was auf 0.0.0.0:3000 lauscht, ist sofort live — mit echtem HTTPS.

https://k-hxchpnn7.datei.jetzt
# erster Aufruf — TLS wird live erzeugt HTTP 200 · 4,5 s # danach warm HTTP 200 · 42 ms ← echt gemessen

deine URL

https://<dein-id>.datei.jetzt

Öffne sie auf dem Handy. Zeig sie dem Nachbarn. Alle im Raum können mitmachen.

02 — Setup · Editor (optional)

Editor privat,
App öffentlich.

Willst du Dateien selbst sehen: forwarde den Editor durch SSH — er bleibt nur bei dir.

bash
$ ssh -L 8080:localhost:8080 \ -L 3000:localhost:3000 datei.jetzt # dann im Browser: http://localhost:8080 ← code-server http://localhost:3000 ← deine App, privat

Port-Forwards landen in deinem Containerlocalhost:3000 ist deine App, noch bevor sie öffentlich ist.

02 — Setup · Erster Kontakt

Erster Kontakt
mit dem Agent.

Einfach omp tippen — oder direkt mit einer Ansage starten.

/help-me — eingebaute Führung durch die Umgebung

omp
$ omp "bau mir eine Todo-App mit Bun" ✓ read . · leeres Verzeichnis ✓ write server.ts · 41 Zeilen ✓ write index.html · 63 Zeilen ✓ bash bun install · gestartet → läuft auf 0.0.0.0:3000

Tool-Aufrufe erscheinen als Karten. Änderungen kannst du sehen, bevor sie landen.

2 Teil 2

Was omp
wirklich kann.

Die meisten Agents schreiben Code. Dieser hier arbeitet damit.

Ab hier wird's ein bisschen unheimlich.

03 — Fähigkeiten · Werkzeugkasten

32 Tools. Ein Namespace.

Alles liegt neben read und bash — der Agent greift zu, ohne das Terminal zu verlassen.

Dateien & Suche

read · write · edit · ast_edit · ast_grep · search · find

Runtime

bash · eval (py+js) · ssh

Code-Intelligenz

lsp (14) · debug (28 DAP)

Koordination

task · irc · todo · job · ask

Nach draußen

browser · web_search · github · generate_image · tts

Gedächtnis

retain · recall · reflect · checkpoint · rewind

Struktur

resolve · search_tool_bm25

…die nächsten Folien

die spektakulärsten davon — im Detail.

03 — Fähigkeiten · Editieren
Hashline

Editieren per
Content-Hash.

Das Modell zeigt auf Anker statt Zeilen neu zu tippen. Schluss mit „string not found".

Datei veraltet? Der Anker weicht ab — der Patch wird abgelehnt, bevor er etwas kaputt macht.

−61%
Output-Tokens · Grok 4 Fast

Weniger Tokens, präzisere Edits, keine Whitespace-Kämpfe. „Edits that land on the first attempt."

03 — Fähigkeiten · LSP
02 · LSP in jedem Write

Ein echtes
Rename.

Umbenennen läuft über willRenameFiles — Re-Exports, Barrel-Files und Alias-Importe ziehen mit.

Alles, was deine IDE weiß, weiß der Agent.

omp LSP rename über mehrere Dateien
rename formatBytes → 5 Edits über 3 Dateien, verifiziert per Suche.
03 — Fähigkeiten · Debugger
03 · DAP

Treibt einen
echten Debugger.

Segfault? Der Agent hängt lldb an, steppt zum Pointer, liest den Frame. Go hängt → dlv. Python klemmt → debugpy.

Andere Agents streuen noch print-Statements.

omp lldb-dap Session gegen ein natives Binary
Live-lldb: gestoppt in xorshift32, Locals gelesen, Mathe bestätigt.
03 — Fähigkeiten · Code-Ausführung
01 · eval

Führt Code aus —
und ruft zurück.

Persistentes Python und ein Bun-Worker. Beide Kernel können in die Tools des Agents zurückrufen.

CSV mit tool.read in Python laden, in JavaScript charten — ohne die Zelle je zu verlassen.

omp eval: pandas describe in Python, danach reduce in JavaScript
Eine Session: pandas.describe() (Python) → reduce (JavaScript).
03 — Fähigkeiten · Orchestrierung
05 · task

Erstklassige
Subagents.

Ein Job, aufgeteilt auf mehrere Worker — jeder in einem isolierten Worktree, jeder liefert ein typisiertes Objekt zurück.

Kein Prosa-Parsen, keine Merge-Konflikte zwischen Geschwistern.

omp task fächert zwei Subagents auf
Zwei Subagents parallel, mit Kosten/Dauer je Worker und einem finalen Findings-Objekt.
03 — Fähigkeiten · Aufsicht
06 · Advisor

Ein zweites Modell
schaut jeden Zug.

Ein Reviewer läuft auf eigenem Kontext, liest jeden Turn und wirft Notizen ein — Randbemerkung, Bedenken oder harter Blocker.

WATCHDOG.yml = ein ganzes Team benannter Aufpasser, jeder mit eigenem Modell und Spezialgebiet.

omp Advisor wirft eine Bedenken-Notiz ein
Advisor auf gpt-5.5 warnt: der Fix trifft das Akzeptanzkriterium nicht mehr.
03 — Fähigkeiten · Zeitreise-Regeln
04 · TTSR

Regeln, die die
Zeit zurückdrehen.

Deine Regeln schlummern, bis das Modell entgleist. Ein Treffer bricht den Stream mitten im Token ab, injiziert die Regel und startet von derselben Stelle neu.

/omfg — schmiedet aus deiner Beschwerde eine dauerhafte Regel.

omp bricht ab und injiziert eine Regel
Modell greift zu Box::leak → Abbruch, Regel injiziert, Kurskorrektur zu Arc<str>.
03 — Fähigkeiten · Kontext-Kompression
Snapcompact · Standard-Kompaktierung

Kontext wird zu
Pixeln.

Statt alte Historie von einem LLM zusammenfassen zu lassen, rendert omp sie in dichte PNG-Kacheln aus Pixel-Font-Glyphen — die das Vision-Modell direkt zurückliest.

Lokal. Deterministisch. Kein API-Call. Die Kachel-Geometrie ist pro Anbieter aus echten Recall-Evals getunt.

verworfene Historie → Bildkachel

user: load the csv and describe it tool.read data.csv :1-40 → 8 cols py: df.describe() → mean 41.2 … js: top = reduce(...) → "Ada" assistant: charted, see cell 2 ── compacted · 11on16-bw · 1932px ── user: now add a filter by year tool.edit report.ts #a3f1 …

„Niemand sonst macht das." — das ungewöhnlichste Feature im ganzen Projekt.

03 — Fähigkeiten · URL-Schemes
12 · 17 · 18

Alles ist
ein Pfad.

read pr://1428 liefert dieselbe Form wie read src/foo.ts. Ein Interface für alles.

GitHub, Issues, Subagent-Ergebnisse, Merge-Konflikte, Gedächtnis — alles adressierbar.

read pr://1428 · PR wie eine Datei
search pr://1428/diff/1 · Diff wie ein Ordner
write conflict://2@theirs · Merge gelöst
read agent://a1/findings.0.path · Feld aus Subagent
read memory://root · das Gedächtnis
03 — Fähigkeiten · Über das Repo hinaus
08 · web_search   20 · browser

Reicht über das
Repo hinaus.

web_search kettet 25 Backends und reicht Fundstellen direkt an read — ein arXiv-PDF kommt als sauberes Markdown zurück.

browser: echtes Chromium, Stealth an. Dieselbe API treibt jede Electron-App — zeig auf Slack, es liest deine DMs wie das Web.

omp treibt einen echten Browser
Der browser-Tool steuert eine echte Seite — inklusive Sicherheits-DBs (NVD, OSV, CISA KEV).
03 — Fähigkeiten · Der Motor
09 · Nativer Rust-Kern

Kein fork/exec
auf dem heißen Pfad.

Andere Agents rufen rg, grep, find, bash als externe Prozesse auf. omp linkt sie in den Prozess.

Dasselbe Binary auf macOS, Linux und Windows — ganz ohne WSL-Brücke.

~55k
Zeilen Rust
50+
tree-sitter-Grammatiken
shell · vendored brush-shell 3 700
grep · ripgrep-Kern 1 900
summary · tree-sitter 1 040
ast · ast-grep 1 000
…und 18 weitere In-Process-Module
03 — Fähigkeiten · Zusammenarbeit
07 · collab

Link teilen,
schon drin.

/collab legt deine Session auf ein Relay und gibt Link + QR-Code zurück. Jemand joint per omp join oder im Browser.

Frames sind clientseitig versiegelt (AES-256-GCM) — das Relay sieht deine Keys nie.

omp collab mit QR-Code
Read-write zum Pairen, oder /collab view für einen Nur-Lesen-Link mit QR.
03 — Fähigkeiten · Und noch viel mehr

Und das ist noch nicht alles.

Code-Review mit Urteil

P0–P3, Confidence-Score, klares Ship / No-Ship. /review

Atomare Commits

Unzusammenhängendes wird in abhängigkeits-sortierte Commits gesplittet.

Hindsight-Gedächtnis

retain / recall / reflect — merkt sich dein Repo über Sessions.

ACP für Zed

Derselbe Agent, im Editor gefahren. Kein Plugin, keine zweite Denke.

Erbt fremde Configs

Liest Cursor, Cline, Codex, Copilot … nativ. Kein Migrationsskript.

MCP & Marketplace

Volle MCP-Unterstützung, Smithery-Suche, npm-publizierbare Plugins.

Swarm-DAG

Agent-Workflows als YAML-DAG, unbeaufsichtigt bis fertig.

40+ Provider

Frontier, Coding-Pläne, lokal — ein /model weiter.

Schreibt eigene Plugins

Fehlt was? Bitte omp, es zu bauen — dann /reload-plugins.

3 Teil 3

Jetzt bauen
wir was Echtes.

Ein Projekt, an dem alles glänzt — und das der ganze Raum benutzt.

04 — Bauen · Das Projekt
Live-Demo

Das Stimmungs­barometer.

Der ganze Raum öffnet deine URL auf dem Handy und stimmt ab: 😀 😐 😞. Das Chart aktualisiert sich live.

Bun Svelte 5 TypeScript

Warum perfekt?

  • Zeigt die Preview-URL — jeder macht mit.
  • Realtime (SSE) + Svelte-5-Reaktivität.
  • Klein genug, um es in Minuten zu begreifen.
  • Und natürlich: on-brand. Stimmung!
04 — Bauen · Der Loop in Aktion

Der Bau in vier Prompts.

1 · „Svelte-5-+-Bun-App: ein Stimmungsbarometer mit drei Emoji-Buttons, die auf /vote posten."
2 · „Mach die Votes live über Server-Sent Events."
3 · „Dark Mode, große Buttons, ein Balken-Chart der Ergebnisse."
4 · /deploy → serve auf 0.0.0.0:3000

echt gemessen in diesem Setup

36,8s
von leerem Ordner zu fertiger App

Ein Prompt. GLM-5.2. server.ts mit In-Memory-Counts, /vote + /counts, gebunden an 0.0.0.0:3000.

04 — Bauen · Superkräfte anwenden

Und jetzt die Superkräfte — am selben Projekt.

Es crasht bei leerem Vote.

→ omp hängt den Debugger an, findet den Nil-Zugriff, fixt ihn.

Benenn „vote" in „stimme" um.

LSP-Rename über Server, Client und Typen auf einmal.

Analysier die Verteilung.

eval: Python rechnet, JavaScript chartet — in einer Zelle.

Verbessere UI, API & README.

→ drei Subagents parallel, typisierte Ergebnisse zurück.

„Nie wieder any in TS."

/omfg schmiedet eine Regel. Passiert nie wieder.

Teil's mit dem Nachbarn.

/collab → QR-Code, gemeinsam am selben Agent.

04 — Bauen · Deine Ideen

Oder bau dein eigenes Ding.

leicht
  • Voting-/Umfrage-Board
  • Pomodoro-Timer
  • Meme-Generator
mittel
  • Realtime-Chat
  • Kanban-Board
  • Multiplayer-Zeichenbrett
würzig
  • Markdown-Wiki mit Suche
  • Mini-Multiplayer-Spiel
  • Daten-Dashboard (CSV-Upload)

Alles, was auf :3000 lauscht, ist in Sekunden live auf deinem Handy.

05 — Praxis · Die echten SOSE-Regeln

Gut vibe-coden: die echten Regeln.

Sag das Ziel, nicht den Weg.

„Nutzer sollen abstimmen können" schlägt „schreib eine POST-Route".

Zeig, erzähl nicht.

Gib Fehlermeldung, Screenshot oder URL — der Agent liest sie direkt.

Lass ihn laufen.

Wegwerf-Container + yolo: nicht bei jedem Schritt zögern.

Kleine Schritte, viel Feedback.

Ein Wunsch pro Runde. Anschauen. Nachjustieren. Wiederholen.

Steckt er fest?

Lass ihn sich selbst debuggen: „führ es aus und finde den Fehler".

Deploy oft.

/deploy — Sehen schlägt Raten. Immer.

05 — Praxis · Troubleshooting

Wenn's klemmt.

App nicht erreichbar?

Muss auf 0.0.0.0:3000 lauschen (nicht 127.0.0.1). Sag /deploy oder prüf mit curl localhost:3000.

Agent dreht im Kreis?

Formulier den Wunsch neu und kleiner. /compact räumt den Kontext auf.

Verbindung weg?

Einfach neu ssh datei.jetzt — tmux hält deine Session, der Agent läuft weiter.

Jetzt du
ssh datei.jetzt

Bau in den nächsten 30 Minuten etwas, das auf deinem Handy läuft.

/help-me /deploy einfach lostippen

Möge dein Code gut schwingen.

omp.sh · github.com/can1357/oh-my-pi · Discord

SoSe 2026 · Stimmungsorientierte Softwareentwicklung · datei.jetzt · danke 💜

SoSe 2026 · datei.jetzt