wboudiche/linshare

Dokumente sicher über LinShare teilen – Dateien per E-Mail versenden (intern oder extern), geteilte Dateien auflisten oder widerrufen, empfangene Dateien anzeigen und herunterladen, andere um Dateien bitten und mit Team-Arbeitsgruppen und Arbeitsbereichen arbeiten (durchsuchen, hochladen, herunterladen, Mitglieder verwalten). Verwenden Sie dies, wenn der Benutzer darum bittet, eine Datei „via LinShare“ zu teilen, zu senden, zu übertragen oder zu empfangen, eine LinShare-Freigabe zu überprüfen oder zu stornieren oder wenn es um eine LinShare-Arbeitsgruppe, einen Arbeitsbereich oder einen gemeinsamen Speicherplatz geht.

Was ist linshare?

Diese Fertigkeit ermöglicht es KI-Agenten, sicher mit einem LinShare-Server (Version 6.5 oder höher) zu interagieren, um Dokumente innerhalb und außerhalb einer Organisation zu teilen. Sie umfasst: das Versenden von Dateien per E-Mail mit geteilten Links, das Auflisten und Widerrufen von Freigaben, das Verwalten von Upload-Anfragen (andere bitten, Dateien zu senden) sowie das Arbeiten mit Arbeitsgruppen und Arbeitsbereichen (Hochladen, Herunterladen, Ordner erstellen, Mitglieder mit verschiedenen Rollen verwalten). Die Fertigkeit setzt auf dem Befehlszeilentool `linshare` auf, das der Benutzer zuvor installieren und einmalig anmelden muss (Passwort oder SSO-Token). Der Agent fordert für jeden schreibenden Vorgang (Freigabe, Upload, Widerruf, Löschung) eine ausdrückliche Bestätigung an, führt vorab einen Trockenlauf durch, zeigt eine Zusammenfassung an und wartet auf die Zustimmung. Schreibgeschützte Abfragen benötigen keine Bestätigung. Fehler werden benutzerfreundlich gemeldet, und bei Zeitüberschreitungen wird empfohlen, den Status zu prüfen, bevor erneut versucht wird. Die Fertigkeit unterstützt große Dateien (>2 MiB) mit Chunk-Upload und kann auf Cursor, Claude Code und anderen KI-Agenten-Plattformen verwendet werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wboudiche/linshare-skill/tree/HEAD/skills/linshare

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht linshare?

linshare ist ein Befehlszeilenwerkzeug für einen LinShare-Server (Version 6.5 oder höher). Verwenden Sie es, um die Dokumente des Benutzers sicher zu teilen.

Zuerst die Einrichtung prüfen

Führen Sie vor dem ersten LinShare-Befehl einer Unterhaltung linshare --json whoami aus:

  • Befehl nicht gefunden (Exit 127): Der Befehl linshare ist nicht installiert. Teilen Sie dem Benutzer in einfachen Worten mit, dass diese Fertigkeit ihn benötigt und er ihn selbst installieren kann mit pip install "git+https://github.com/wboudiche/linshare-cli#subdirectory=agent-harness" (Python 3.10+). Installieren Sie ihn nicht selbst.
  • Exit 2 ("code": "auth"): Nicht angemeldet. Bitten Sie den Benutzer, in diesem Chat Folgendes einzugeben: ! linshare login --server <Adresse seines LinShare> (fragen Sie nach der Adresse, wenn Sie sie nicht kennen) – der Benutzer gibt dort sein Passwort ein, niemals im Gespräch. Mit SSO: ! linshare login --token --server <Adresse>, wobei ein Token aus der Web-Oberfläche eingefügt wird.
  • Exit 0: Der Server und das Konto werden angezeigt; fahren Sie mit der Anfrage fort.

Regeln – befolgen Sie sie jedes Mal

  1. Immer --json direkt nach linshare übergeben (linshare --json shares list) und das JSON lesen.
  2. Die Anmeldung erfolgt durch den Benutzer, niemals durch Sie. Wenn ein Befehl mit Exit 2 fehlschlägt ("code": "auth"), bitten Sie den Benutzer, selbst ! linshare login einzugeben (! linshare login --token, wenn er sich mit SSO anmeldet und einen Token aus der Web-Oberfläche hat). Fragen Sie niemals nach dem Passwort oder geben Sie es ein.
  3. Holen Sie ein ausdrückliches „Ja“ ein, bevor etwas das Konto verlässt oder gelöscht wird. Dies betrifft share, request-files, shares revoke, documents delete, requests close, und für geteilte Bereiche spaces upload, spaces add-member, spaces set-role, spaces remove-member, spaces delete-files, spaces delete.
    • Für share und request-files: Führen Sie den gleichen Befehl zuerst mit --dry-run aus, und zeigen Sie dem Benutzer dann in einfachen Worten: die Dateien (Name und Größe), jeden Empfänger – markieren Sie "external": true-Empfänger als außerhalb Ihrer Organisation – das Ablaufdatum, den Betreff, die Nachricht, ob ein passwortgeschützter Link verwendet wird, und downloadAlert / copyToMe (was der Server tatsächlich tun wird: Die Einstellungen des Administrators können die Wahl des Benutzers überschreiben; sagen Sie dies, wenn detail es sagt).
    • Für revoke, delete, close: Listen Sie zuerst auf und zeigen Sie dann genau an, welche Elemente betroffen sein werden.
    • Für spaces upload und spaces add-member: Führen Sie zuerst mit --dry-run aus. Für einen Upload zeigen Sie die Dateien, die Arbeitsgruppe (und den Ordner) und visibleTo – jeder darin wird die Dateien sehen (wenn visibleTo null ist, sagen Sie, dass die Mitglieder nicht aufgelistet werden konnten). Für ein neues Mitglied zeigen Sie die Person (Name und E-Mail), den Bereich und die Rolle in einfachen Worten (READER: nur lesen, CONTRIBUTOR: kann hinzufügen, WRITER: kann hinzufügen und ändern, ADMIN: verwaltet auch Mitglieder).
    • spaces delete entfernt den Bereich und alle seine Dateien für jedes Mitglied; spaces delete-files entfernt sie ebenfalls für alle. Sagen Sie dies und nennen Sie den Bereich und die Elemente.
    • Verwenden Sie nur die Wörter, die der Benutzer für --subject und --message angegeben hat. Schreiben Sie selbst keine; lassen Sie sie weg oder schlagen Sie eine vor und fügen Sie sie nur hinzu, wenn der Benutzer zustimmt. Ein --label für request-files kann ein kurzer Name sein, der den eigenen Worten des Benutzers entnommen wurde („Oktober-Rechnung“); ohne einen wählt das Werkzeug „Dateien für “.
    • request-files benötigt eine --message (LinShare verweigert eine Anfrage ohne eine). Wenn der Benutzer keine angegeben hat, fragen Sie ihn vor dem Trockenlauf nach dem Text; Sie können einen Vorschlag machen, verwenden Sie ihn aber erst, wenn er akzeptiert wird.
    • Kein Ablaufdatum angegeben ("expirationDate": null) bedeutet das Standard-Ablaufdatum des Servers, nicht „niemals“.
    • Warten Sie auf ein ausdrückliches Ja. Wenn der Benutzer etwas ändert (einen Empfänger, das Ablaufdatum, eine Datei), führen Sie einen neuen --dry-run aus und fragen Sie erneut. Verwenden Sie niemals ein früheres Ja.
    • Im tatsächlichen Durchlauf übergeben Sie das expirationDate des Trockenlaufs als --expires YYYY-MM-DD (das genaue Datum, das der Benutzer genehmigt hat), niemals wieder einen relativen Wert wie 7d; gleiches gilt für --alert-if-not-downloaded (das alertIfNotDownloaded des Trockenlaufs).
  4. Überprüfen Sie den Server, nicht Ihr Gedächtnis. Bevor Sie dem Benutzer mitteilen, ob etwas geteilt, gesendet, widerrufen oder geschlossen wurde, führen Sie den entsprechenden List-Befehl aus (shares list, requests list, documents list, spaces files, spaces members). Hinweise aus früheren Unterhaltungen können veraltet sein.
  5. Keine Bestätigung für schreibgeschützte Befehle erforderlich: whoami, shares list, received list, received download, documents list, requests list, requests download, spaces list, spaces files, spaces members, spaces download. Auch das Erstellen einer leeren Arbeitsgruppe oder eines leeren Ordners (spaces create, spaces mkdir) benötigt keine Bestätigung: Niemand sonst sieht sie, bis Dateien oder Mitglieder hinzugefügt werden.
  6. Nach dem Teilen teilen Sie dem Benutzer mit, welche Dateien an wen und bis wann gingen. Downloads: LinShare benachrichtigt den Absender per E-Mail beim ersten Herunterladen einer Freigabe durch jeden Empfänger, und shares list zeigt eine downloaded-Anzahl – verwenden Sie sie, um die Frage „Hat X es heruntergeladen?“ zu beantworten. Um gewarnt zu werden, wenn eine Datei nicht heruntergeladen wurde, verwenden Sie --alert-if-not-downloaded (ein Datum, eine Verzögerung wie 3d oder off; ohne sie gilt die Standardeinstellung des Servers).
  7. Geteilte Bereiche. Eine Arbeitsgruppe enthält Dateien, die ein Team teilt; ein Arbeitsbereich gruppiert Arbeitsgruppen. Befehle benötigen IDs: Führen Sie spaces list aus, um den Bereich zu finden, spaces files SPACE [--folder ID], um einen Ordner oder eine Datei zu finden. Mehrere Bereiche können denselben Namen haben: Wenn die Worte des Benutzers auf mehr als einen zutreffen, fragen Sie nach. Eine Datei per E-Mail teilen (share) und sie in eine Arbeitsgruppe legen (spaces upload) sind unterschiedlich: Fragen Sie, falls unklar. Auf LinShare 7.0 schlagen einige Dinge aufgrund von Serverfehlern fehl: spaces members kann keine Mitglieder auflisten (verwenden Sie die von add-member ausgegebene Mitglieds-ID für set-role / remove-member), und Personen können nicht zu einem Arbeitsbereich hinzugefügt werden (nur zu seinen Arbeitsgruppen). Geben Sie die Meldung weiter; wiederholen Sie es nicht auf andere Weise.
  8. Bei Fehlern geben Sie error.message in einfachen Worten weiter. Wiederholen Sie eine abgelehnte Freigabe nicht mit anderen Einstellungen, ohne zu fragen. Exit 1 bedeutet, dass der Befehl selbst falsch war (korrigieren Sie ihn, bitten Sie den Benutzer nicht, sich anzumelden). Wenn eine Freigabe fehlschlägt, entfernt das Werkzeug die hochgeladenen Dateien und sagt dies; wenn error.code "timeout" ist, ist das Ergebnis unbekannt – folgen Sie der Meldung (überprüfen Sie shares list / documents list), bevor Sie einen erneuten Versuch unternehmen.
  9. Große Dateien sind in Ordnung: Über 2 MiB sendet das Werkzeug sie in Teilen, wie die Web-Oberfläche. Das Hochladen dauert etwa 15 s pro GB in einem schnellen Netzwerk, viel länger in einem langsamen. Für eine Datei über ein paar hundert MB geben Sie dem Befehl share ein langes Timeout (oder führen Sie es im Hintergrund aus), damit er nicht abgeschnitten wird, und teilen Sie dem Benutzer mit, dass es eine Weile dauern kann.

Typischer Ablauf

linshare --json share ./vertrag.pdf --to [email protected] --expires 7d --message "Bitte unterschreiben" --dry-run
# → Zeigen Sie die Zusammenfassung dem Benutzer, warten Sie auf „Ja“
# dry-run sagte "expirationDate": "2026-11-13"
linshare --json share ./vertrag.pdf --to [email protected] --expires 2026-11-13 --message "Bitte unterschreiben"

Befehle

BefehlWas es tutZuerst bestätigen?
linshare login [--server URL] [--email E]Benutzer meldet sich einmal an (Passwort, 2FA-Code falls nötig)Benutzer führt es aus
linshare login --token [--server URL]Benutzer fügt einen in der LinShare-Weboberfläche erstellten Token einBenutzer führt es aus
linshare logoutVergisst (und widerruft) den Tokennein
linshare whoamiServer und verwendetes Kontonein
`linshare share DATEI... --to EMAIL... [--expires 7d2w1m
linshare shares listWas der Benutzer geteilt hatnein
linshare shares revoke ID...Freigaben widerrufenja
linshare received listWas andere mit dem Benutzer geteilt habennein
linshare received download ID [--out VERZ]Eine empfangene Datei speichern (überschreibt nie)nein
linshare documents listDie Dokumente des Benutzersnein
linshare documents delete ID...Dokumente löschenja
linshare request-files --from EMAIL... --message N [--label L] [--expires ...] [--dry-run]Personen bitten, Dateien zu senden (eine private Anfrage pro Person)ja
linshare requests listUpload-Anfragen und empfangene Dateiennein
linshare requests download ID [--out VERZ]Empfangene Dateien als ZIP herunterladennein
linshare requests close ID...Anfragen schließenja
linshare spaces list [--in ARBEITSBEREICH]Arbeitsgruppen und Arbeitsbereiche mit Ihrer Rollenein
linshare spaces create NAME [--workspace] [--in ARBEITSBEREICH]Eine Arbeitsgruppe (oder einen Arbeitsbereich) erstellennein
linshare spaces delete ID...Bereiche und alle ihre Dateien für alle löschenja
linshare spaces files BEREICH [--folder ID]Ordner und Dateien einer Arbeitsgruppenein
linshare spaces mkdir BEREICH NAME [--folder ID]Einen Ordner erstellennein
linshare spaces upload BEREICH DATEI... [--folder ID] [--dry-run]Dateien in eine Arbeitsgruppe legen (Mitglieder sehen sie)ja
linshare spaces download BEREICH ID [--out VERZ]Eine Arbeitsgruppendatei speichern (überschreibt nie)nein
linshare spaces delete-files BEREICH ID...Dateien oder Ordner für alle löschenja
linshare spaces members BEREICHMitglieder und Rollennein
linshare spaces add-member BEREICH EMAIL --role R [--dry-run]Jemandem Zugriff gewährenja
linshare spaces set-role BEREICH MITGLIED ROLLEEine Rolle ändern (MITGLIED: E-Mail oder Mitglieds-ID)ja
linshare spaces remove-member BEREICH MITGLIEDZugriff entfernenja

--to und --from werden für mehrere Personen wiederholt: --to [email protected] --to [email protected]. „Extern“ ist eine Heuristik: eine andere E-Mail-Domain als die des Benutzers.

Exit-Codes

0 ok · 1 falsche Eingabe oder falscher Befehl · 2 nicht angemeldet/Anmeldeproblem · 3 vom Server abgelehnt · 4 Server nicht erreichbar, fehlerhaft oder zu langsam ("code": "timeout").

Verwandte Skills