<div align="center">

<img src="../social-preview.png" alt="dsh-media-skills — Kostenloses Bildlesen und Bildgenerierung für DeepSeek Harness" width="100%">

<br>

# 🎨 dsh-media-skills

### *Bilder direkt ins Chatfeld einfügen — kostenloses Vision-Modell, Bildlesen und Bildgenerierung.*

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../../LICENSE)
[![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue.svg)](https://python.org)
[![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-Skill-4D6BFE)](https://github.com/topics/dsh-plugin)

<br>

Gib [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) „Augen“ und einen „Pinsel“ —
zwei kostenlose Skills, ein kostenloses Vision-Modell und das Einfügen von Bildern, ganz ohne hartkodierte Keys.

[Funktionen](#-funktionen) · [Schnellstart](#-schnellstart) · [Nutzung](#-nutzung) · [Vision-Einrichtung](../SETUP_VISION.md)

[**English**](../../README.md) · [**简体中文**](README_ZH.md) · [**繁體中文**](README_ZH_TW.md) · [**日本語**](README_JA.md) · [**한국어**](README_KO.md) · [**Español**](README_ES.md) · [**Deutsch**](README_DE.md) · [**Português**](README_PT.md) · [**Русский**](README_RU.md)

</div>

---

## ✨ Funktionen

| Funktion | Beschreibung | Modell | Kosten |
|---|---|---|---|
| 🖼️ Bild-Einfügen mit Auto-Beschreibung | In **rein textbasierten** Sitzungen (z. B. deepseek-v4-pro) bekommt die Eingabeleiste einen „Bild hinzufügen“-Button (Bildsymbol); eingefügte Bilder werden vom Vision-Modell automatisch als Text beschrieben und an das aktuelle Modell übergeben (**ab v0.1.1 Standard: DeepSeek-V4-Flash-Vision-Exp**) | v0.1.1: DeepSeek-Vision-Exp · rc.7/8: Zhipu GLM-4V-Flash | GLM kostenlos; DeepSeek wird deinem Guthaben belastet (v0.1.1-Standard) |
| 🧠 Vision-Modell-Route | Bis ≤ v0.1.1 erscheint „智譜 GLM-4V-Flash（視覚）“ nach der Installation **automatisch** im Modell-Auswahlmenü (**v0.1.6**: einmalig unter **Einstellungen → Modelle** hinzufügen); in neuen Unterhaltungen direkt über Bilder sprechen | Zhipu GLM-4V-Flash | Kostenlos |
| 👁️ `vision-review` | Bilder/Screenshots analysieren, erkennen, beschreiben; visuelle UI-Bugs finden (Überlappung, Überlauf, Fehlausrichtung); Wasserzeichen/Logos erkennen; Bilder in Text umwandeln. Engine-Kette: GLM-4V-Flash → DeepSeek-V4-Flash-Vision-Exp (gleicher Schlüssel wie der Agent, optional kostenpflichtig) → SenseNova / SiliconFlow / Gemini | GLM-4V-Flash＋DeepSeek-Vision-Exp＋SenseNova＋Gemini | Kostenlos (DeepSeek optional kostenpflichtig) |
| 🎨 `media-tools` | Bilder, Illustrationen, Avatare, Hintergründe und Banner generieren | SenseNova U1 Fast → SiliconFlow Kolors | Kostenlos, ohne Wasserzeichen |

> ⚠️ Ehrlicher Hinweis: Das Bild-Einfügen mit Auto-Beschreibung steckt im **Kern** von DeepSeek Harness — nativ ab **v0.1.6 / v0.1.1**, in rc.7 / rc.8 über die mitgelieferten Kern-Patches (Bildannahme in `api-proxy`). Dieses Bundle liefert die **Skills** (bis ≤ v0.1.1 zusätzlich die Modell-Route); das Vision-Modell funktioniert mit jedem DSH-Build.

## ⚡ Schnellstart

1. Bundle installieren:

   ```sh
   dsh plugin --profile <name> add dsh-media-skills
   ```

2. **Keys**:
   - **v0.1.6**: Zur Installation sind keine Keys nötig — die beiden Skills registrieren sich zur Laufzeit. Skill-Keys (`GLM_API_KEY`, `SILICONFLOW_API_KEY`, optional `GEMINI_API_KEY`) gehören in `~/.dsh/secrets/media-tools.env` (siehe [Keys](#-keys)); native Modell-Routen richtest du selbst unter **Einstellungen → Modelle** ein.
   - **ab v0.1.1-rc.1 sind keine zusätzlichen Keys nötig** — Einfüge-Lesen und Vision-Route laufen über den vorhandenen `DEEPSEEK_API_KEY` des Agenten. Für die kostenlosen Engines (oder rc.7/rc.8): zuerst kostenlos einen Key holen — Registrieren auf [open.bigmodel.cn](https://open.bigmodel.cn) → **API Keys** (glm-4v-flash ist kostenlos). Für die Generierung zusätzlich einen bei [siliconflow.cn](https://siliconflow.cn) erstellen (Kolors ist kostenlos). Dann hinterlegen — Web-GUI (**Einstellungen → Modelle**) oder Credentials-Datei:

   ```sh
   # ~/.dsh/.credentials.yaml (chmod 600)
   GLM_API_KEY: <dein Zhipu-Key>
   ```

3. `dsh web` **vollständig neu starten** und die Seite mit `Cmd+Shift+R` hart neu laden.

4. Prüfen: Die Skills **`vision-review`** und **`media-tools`** erscheinen in der Skill-Liste (auf v0.1.6 richtest du die Vision-Route selbst unter **Einstellungen → Modelle** ein; bis ≤ v0.1.1 erscheint **智譜 GLM-4V-Flash（視覚）** im Modell-Auswahlmenü). Unterstützt dein Build das Bild-Einfügen, zeigt die Eingabeleiste einen 🖼️ **„Bild hinzufügen“-Button** — füge in einer beliebigen Sitzung ein Bild ein, es kommt als Textbeschreibung an.

Komplette Anleitung, Funktionsweise und Fehlerbehebung: **[../SETUP_VISION.md](../SETUP_VISION.md)**

## 🔑 Keys

Keys werden **nie in diesem Repo gespeichert**. Die Skripte lesen in dieser Reihenfolge: Umgebungsvariablen → `~/.dsh/secrets/media-tools.env` → `~/.codex/secrets/media-tools.env` (Legacy-Fallback). Die Vision-Modell-Route liest `GLM_API_KEY` aus dem DSH-Credential-Speicher (≤ v0.1.1; auf v0.1.6 richtest du die Routen selbst unter **Einstellungen → Modelle** ein).

Bezugsquellen (beide kostenlos): Zhipu — [open.bigmodel.cn](https://open.bigmodel.cn) → API Keys (glm-4v-flash). SiliconFlow — [siliconflow.cn](https://siliconflow.cn) → API Keys (Kolors).

```sh
# ~/.dsh/secrets/media-tools.env (chmod 600, eine KEY=value pro Zeile)
GLM_API_KEY=...
SILICONFLOW_API_KEY=...
```

## 🖼️ Die Seite 创作 (Desktop 0.2.1+)

<img src="../screenshots/panel-generate.png" alt="Die Seite 创作: links Eingabe und Auswahl, rechts die Ergebniskarte" width="100%">

Ab Desktop 0.2.1 darf ein Plugin eine eigene Seite registrieren — dieses Bundle bringt **创作** in der Seitenleiste mit:

- **生成**: Prompt eingeben (⌘⏎ erzeugt ebenfalls), Modell, Seitenverhältnis und 1K–4K-Größe wählen. Modelle stehen in einer Zeile pro Modell (nicht pro Anbieter), es gibt 10 Verhältnisse (intelligent / 1:1 / 9:16 / 16:9 / 3:4 / 4:3 / 2:3 / 3:2 / 9:21 / 21:9). Größen über der Grenze eines Modells werden ausgegraut statt still ignoriert. Das Ergebnis ist eine Karte mit Nummer, Modell, Größe, Prompt und Aktionen.
- **作品**: alle Bilder dieses Arbeitsbereichs als Kontaktbogen; ein Klick öffnet die Detailkarte mit Einstellungen wiederverwenden, Prompt kopieren, Original öffnen oder löschen (die Datei verschwindet mit). Ein Klick aufs Bild vergrößert es, `Esc` schließt.
- **生图 Key**: pro Anbieter einen Schlüssel einfügen. Er wird nach `~/.dsh/secrets/media-tools.env` geschrieben (Modus 600), **nie hochgeladen** und nur zum Generieren verwendet. Gespeicherte Schlüssel erscheinen als `••••abcd`, das Auge zeigt sie kurz.
- **Gar kein Schlüssel?** Nimm **Flux (免 Key)** — Pollinations braucht weder Anmeldung noch Schlüssel (ein Bild pro IP alle 45 Sekunden, bis 768×768, kleines Logo).

In der Desktop-App: Seitenleiste **Plugins** → oben rechts **Add plugin** → Paketnamen `dsh-media-skills` eingeben → **Install**. Danach die App einmal neu starten (Plugins laden beim Start). Alternativ im Terminal:

```sh
dsh plugin --profile desktop add dsh-media-skills
```

<img src="../screenshots/panel-works.png" alt="作品: links Kontaktbogen, rechts Detailkarte" width="100%">

## 🚀 Nutzung

Drei Wege, Bilder zu lesen:

| Weg | So geht's | Wann |
|---|---|---|
| **A. Direkt einfügen (empfohlen)** | In beliebiger Sitzung 🖼️-Button klicken / ziehen / einfügen und senden | Alltägliche Bildfragen — kein Speichern, kein Modellwechsel |
| **B. Vision-Modell-Sitzung** | Neue Unterhaltung, 智譜 GLM-4V-Flash（視覚） wählen, Bilder einfügen und chatten | Mehrstufige Gespräche über Bilder, natives `read_image` |
| **C. Dateien + Skill** | Bild in den Workspace legen und sagen: „lies dieses Bild mit vision-review“ | Stapelprüfung, geskriptete Abläufe |

Die Beschreibungssprache folgt deiner Nachrichtensprache (chinesische Nachricht → chinesische Beschreibung; englische → englische; kein Text → Chinesisch).

Einfach sagen:

- „Schau dir dieses Bild an / prüfe diesen Screenshot auf visuelle Bugs“ → `vision-review`
- „Erzeuge ein Bild von …“ → `media-tools`

## 🗺️ Struktur

```
dsh-media-skills/
├── package.json           # dsh.bundle-Manifest
├── cordis.patch.yml       # Plugin-Ebene
├── index.js               # registriert die zwei Skills über den DSH-v0.1.6-Provider-Lebenszyklus
├── skills/
│   ├── vision-review/     # Bildlesen
│   └── media-tools/       # Bildgenerierung
├── docs/
│   ├── SETUP_VISION.md    # Vision-Einrichtung (Chinesisch)
│   ├── SETUP_VISION_EN.md # detailed setup guide (English)
│   └── lang/              # READMEs in weiteren Sprachen
├── scripts/make-banner.py # regeneriert docs/social-preview.png
└── docs/social-preview.png
```

## 🤝 Mach mit im DSH-Plugin-Ökosystem

Die DeepSeek-Harness-Entwicklervorschau befindet sich noch in der Testphase für Harness-Entwickler; Kern-Plugins und Basis-APIs werden weiter iteriert. Wir freuen uns darauf, gemeinsam mit Entwicklern weltweit die Obergrenzen der Intelligenz zu erkunden — auf offener, wiederverwendbarer und kombinierbarer Open-Source-Infrastruktur.

- [dsh-plugin-Thema](https://github.com/topics/dsh-plugin)
- [Schnellstart](https://deepseek-harness.github.io/deepseek-harness/guide/quickstart)
- [DeepSeek-Harness-Repo](https://github.com/deepseek-ai/deepseek-harness)

> Tagge dieses Repo mit [`dsh-plugin`](https://github.com/topics/dsh-plugin), damit andere es finden.

## 📄 Lizenz

[MIT](../../LICENSE)
