C o u S h e l l
Im Web kostenlos. Für immer.
Öffne app.cou.sh in einem beliebigen Browser und leg los. Keine Installation — und zum Ausprobieren brauchst du nicht mal ein Konto.
Funktioniert offline.
Deine Arbeit landet zuerst auf deinem Gerät. Sobald du wieder online bist, synchronisiert sich alles von selbst.
Gehört dir.
Kein Lock-in: CouShell läuft auf der offenen Abracadabra-Engine — deine Daten bleiben portabel.
Nicht einfach noch eine Notiz-App.
Ein gemeinsamer Baum, Dutzende Arten, damit zu arbeiten — Boards, Graphen, KI, Voice, schwebende Fenster. Die Funktionen hier unten findest du in dieser Kombination nirgendwo sonst.
Viel mehr als ein Dokument
Board, Kalender, Galerie, Tabelle, Timeline, Karte, Diagramm — alles derselbe Baum, betrachtet, wie du ihn gerade brauchst. Wechsle die Ansicht: Nichts verrutscht, nichts geht verloren.
KI, die in deinem Space arbeitet
Lass einen Assistenten auf deinen Workspace los und sieh zu, wie er direkt neben dir liest, schreibt und aufräumt.
Sieh, wie alles zusammenhängt
Jede Verbindung zwischen deinen Docs, gezeichnet als lebendiger Graph. Die Form deiner Arbeit — auf einen Blick.
Ausbreiten wie auf dem Desktop
Öffne jedes Doc als schwebendes Fenster. Ordne Boards, Notizen und Chats nebeneinander an — dein Space, dein Layout.
Reines Markdown, direkt auf deinem Rechner
Importiere und exportiere sauberes Markdown mit YAML-Frontmatter. Die Desktop-App hält einen echten Ordner voller .md-Dateien synchron — deine Notizen gehören dir, in einem offenen Format.
Navigieren per Wisch
Wische in der Hauptansicht vor und zurück, wische vom Rand herein für das Menü, wische zum Schließen — ganz natürlich auf Touch, Trackpad und Magic Mouse.
Jedes Medium, direkt im Dokument
Zieh Bilder, Videos, Audio und Dateien einfach hinein — sie leben direkt im Dokument, abspielbar und mit Vorschau, statt hinter einem Download versteckt.
Metadaten, die jede Ansicht versteht
Gib jedem Dokument Status, Termine, Cover und Priorität — und jede Ansicht, vom Board über den Kalender bis zur Galerie, liest dieselben typisierten Metadaten. Felder einmal definieren, den Rest erledigen die Ansichten.
Besprich es — direkt hier
Starte Voice oder Chat, ohne die Seite zu verlassen. Das Gespräch findet neben der Arbeit statt, nicht in einer anderen App.
Zusammenarbeit, die du spürst.
Jeder Knoten, jeder Cursor, jede Ansicht — live, in dem Moment, in dem es passiert.
Ein Baum. Das ganze Team.
Keine Ordner — jeder Knoten ist ein Dokument, und jedes Dokument kann weitere enthalten. Docs, Boards, Kalender, Tabellen: alles in einem Baum, und jedes zeigt live, wer gerade drin ist.
- Jedes Dokument kann weitere Dokumente enthalten — Ordner braucht es nicht.
- Präsenz-Punkte zeigen live, wer in welchem Doc ist.
- Mach aus einem Doc ein Board oder einen Kalender — gleicher Knoten, gleiche Daten.
Cursor, Markierungen, ganze Unterhaltungen.
Multi-Cursor-Awareness, nativ in TipTap. Jede Markierung erscheint in der Farbe der Person, die sie gesetzt hat.
- Butterweiche Cursor mit 60 fps
- Markierungen, zeichengenau
- Über jedem Cursor schwebt ein Namensschild
- Jede Änderung ist ihrem Autor zugeordnet
Folge jedem — durch jede Ansicht.
Wähl eine Person aus, und ihre Ansicht, ihr Cursor und ihre Markierungen streamen live auf deinen Bildschirm — Kanban, Doc, Karte, jede Linse.
- Klick auf einen Avatar, und du folgst.
- Wechselt die Person die Ansicht, wechselst du mit.
- Steig jederzeit wieder aus — nichts ist gesperrt.
- Perfekt für Pairing, Reviews und Demos.
Bearbeite offline. Synchronisiere, wenn du zurück bist.
CouShell schreibt zuerst auf dein Gerät. Der Server ist Komfort — keine Abhängigkeit.
- Deine Bibliothek lebt auf deinem Gerät.
- Konfliktfreier CRDT-Merge — niemand wird ausgesperrt.
- Flugmodus? Voll unterstützt.
- Wieder online = automatischer Merge, ohne Rückfragen.
Kollaborationsfunktionen früher als geplant.
Kollaborationsfunktionen früher als geplant.
Bring deine eigene KI mit
Jeder MCP-kompatible KI-Assistent wird zum vollwertigen Mitglied deines Workspace — liest deine Docs, schreibt Inhalte und chattet mit deinem Team.
Betreib es, wie du willst.
Nutze die kostenlose Web-App, überlass uns das Hosting — oder betreib den offenen Server gleich selbst. Alle Details zu Server & Hosting findest du auf abr.ac.
Kostenlose Web-App
Öffne app.cou.sh in einem beliebigen Browser. Nichts zu installieren, nichts einzurichten.
Web-App öffnenManaged Hosting
Überlass Abracadabra den Serverbetrieb — Backups, Skalierung und Uptime inklusive.
Hosting auf abr.acSelf-Hosting
Betreib den offenen Abracadabra-Server auf deiner eigenen Maschine. Deine Daten verlassen sie nie.
Anleitung zum Self-HostingUnter der Haube steckt eine ganze Engine.
CouShell ist nur eine App auf Abracadabra — einer offenen Echtzeit-Engine. Dieselben Bausteine kannst du selbst verwenden.
- Ein Echtzeit-BackendAuth, Storage, Präsenz und CRDT-Sync aus einem einzigen offenen Server.
- Runner, die deine Daten transformierenService-Runner beobachten ein Doc und reagieren über typisiertes RPC.
- Bau deine eigene App obendraufSDKs für TypeScript, Rust und Swift — für Web, Desktop oder nativ.
// ein Echtzeit-Backend — mit REST, wenn du es brauchstimport { Abracadabra } from '@abraca/dabra'const abra = new Abracadabra({ server })await abra.connect()// einmal per REST lesen…const doc = await abra.documents.get(id)// …oder live beobachtendoc.observe((state) => render(state))// Präsenz + Auth sind schon eingebautabra.presence.set({ cursor, name })
// ein Runner, der deine Daten transformiertprovider.rpc.handle('summarize', async ({ docId }) => { const doc = await provider.documents.get(docId) const text = doc.toPlainText() // reich sie an ein Modell, eine API oder Pipeline weiter const summary = await ai.summarize(text) // und schreib das Ergebnis zurück in den Baum await provider.documents.create({ parentId: docId, label: 'Summary', body: summary, })})
// bau deine eigene App obendraufimport { Abracadabra } from '@abraca/dabra'const abra = new Abracadabra({ server })await abra.connect()// jedes Doc ist ein CRDT — bearbeitbar wie lokaler Stateconst board = await abra.documents.open(boardId)board.children.push({ label: 'New task' })// …und synchronisiert sofort zu jedem Clientabra.on('sync', () => refresh())