Ein Claude-Skill für den Zugriff auf eine oder mehrere Nextcloud-Instanzen — per WebDAV (Dateien) und OCS-API (Freigaben), ohne externe Abhängigkeiten (nur Python-Standardbibliothek).
Ordner auflisten (auch rekursiv, mit Gesamtgröße), Dateien und ganze Ordner herunter- und hochladen (fehlende Zwischenordner werden automatisch angelegt, versehentliches Überschreiben wird blockiert), Ordner anlegen, verschieben, kopieren, löschen sowie öffentliche Freigabe-Links erstellen. Mehrere Instanzen werden über frei vergebene Kurznamen angesprochen.
Den Skill-Ordner in das Skills-Verzeichnis der eigenen Claude-Umgebung legen
(z. B. ~/.claude/skills/nextcloud/ in Claude Code) oder als .skill-Paket
in Claude installieren.
Pro Instanz wird ein Nextcloud-App-Passwort benötigt (Nextcloud → Einstellungen → Sicherheit → „Neues App-Passwort"). Niemals das Login-Passwort verwenden.
Variante 1 — Umgebungsvariablen (empfohlen, der Name im Variablennamen wird zum Instanznamen):
NC_ARBEIT_URL=https://cloud.example.com
NC_ARBEIT_USER=frank
NC_ARBEIT_TOKEN=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
Variante 2 — config.json neben der SKILL.md (liegt in .gitignore,
damit Tokens nie im Repo landen):
{
"instances": {
"arbeit": {"url": "https://cloud.example.com", "user": "frank", "token": "..."}
}
}Umgebungsvariablen überschreiben gleichnamige Einträge aus der Datei.
Das Skript funktioniert auch als eigenständiges CLI:
python3 scripts/nc.py instances
python3 scripts/nc.py ls arbeit "Dokumente"
python3 scripts/nc.py get arbeit "Dokumente/bericht.pdf" ./
python3 scripts/nc.py put arbeit ./bericht-neu.pdf "Dokumente/bericht-neu.pdf"
python3 scripts/nc.py share arbeit "Dokumente/bericht-neu.pdf"Alle Kommandos: instances, ls, get, put, mkdir, mv, cp, rm,
share — Details in SKILL.md und
references/api.md.
MIT — siehe LICENSE.