CommunityBildgithub.com

SaaS-Logo

Generiere ein Logo-Symbol für ein Softwareprodukt im Stil von Notion, Linear, Vercel, Slack, Miro, Airtable, Intercom, PostHog, Webflow, Mintlify und Claude – ein flaches geometrisches Symbol aus einer von fünf Familien – mittels eines Bildmodells, mehrerer Konzepte gleichzeitig, und schneide das ausgewählte als transparentes PNG aus, bereit für die Website.

Was ist SaaS-Logo?

SaaS-Logo ist eine Spezialfähigkeit für KI-Agenten (z.B. Claude Code, Cursor), die ein flaches, geometrisches Logo-Symbol für ein Softwareprodukt erstellt – inspiriert von den Marken führender SaaS-Unternehmen wie Notion, Linear, Vercel und Slack. Der Agent analysiert zunächst das Produkt anhand eines Briefings oder READMEs, um den Kern von Verb und Objekt zu extrahieren. Dann wählt er eine von fünf geometrischen Familien (z.B. solides Primitiv, wiederholtes Primitiv, Buchstabenform) und formuliert 3–4 Konzepte als reine Geometrie für das Bildmodell. Die Konzepte werden parallel über OpenRouter generiert, ausgewertet und das beste per Skript in ein transparentes PNG (Marke allein und App-Icon-Kachel) geschnitten. Die Fähigkeit arbeitet plattformunabhängig und benötigt nur eine OpenRouter-API-Key sowie optional einen Brandfetch-Client-ID.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/paralect/saas-skills/tree/HEAD/skills/saas-logo

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht SaaS-Logo?

Jede Datei, die diese Fähigkeit verwendet, befindet sich in einem eigenen Ordner neben dieser SKILL.md, und alle Pfade hier sind relativ zu diesem Ordner. Sie benötigt nichts aus anderen Fähigkeiten oder anderen Ordnern, suchen Sie also nicht danach. Sofern der Benutzer keinen anderen Ort nennt, speichern Sie alles, was sie erzeugt, unter out/saas-logo/ im aktuellen Projekt.

Ein Symbol, flach. Zurück kommt die Marke allein auf transparentem Hintergrund, auf ihre Kanten beschnitten, plus dieselbe Marke auf ihrer App-Icon-Kachel: Dateien, die direkt in eine Website eingefügt werden können. Die Marken, aus denen diese Fähigkeit schöpft, sind in references/analysis.md untersucht: was jede der elf als Geometrie ist, die acht Regeln, die sie alle befolgen, und die fünf Familien, in die sie fallen. Lesen Sie sie einmal vor dem ersten Logo; sie ist das, was „sieht aus wie ein echtes SaaS-Logo“ hier bedeutet.

Der Prompt, der an das Bildmodell gesendet wird, lebt in prompt.md und enthält alles, was das Modell braucht: die gemeinsamen Regeln (Leinwand, Kachel, flache Füllungen, Strichstärke, Farbe) und die fünf Familien, in die die Referenzmarken fallen, jede mit ihren eigenen Regeln. Ihre Aufgabe ist das Denken vor dem Prompt (die Familie und das Symbol) und die Beurteilung danach.

Schritte

1. Das Produkt kennenlernen

Lesen Sie das Briefing, die README, den Landing-Text, was auch immer existiert. Schreiben Sie eine Zeile: "Name – was der Benutzer damit macht, in einem Verb, an einem Objekt." „Aufgaben an Coding-Agenten übergeben“ → übergeben, eine Aufgabenkarte. „Einen Ordner als Website veröffentlichen“ → veröffentlichen, eine Seite. Die Marke zeigt das Verb oder das Objekt, niemals die Kategorie (kein Zahnrad, keine Wolke, keine Rakete, kein Diagramm). Notieren Sie die Markenfarbe, falls das Produkt eine hat (seine CSS-Tokens, sein Favicon) und seinen Anfangsbuchstaben.

2. Eine Familie auswählen

Die fünf Familien in prompt.md Abschnitt 3, mit dem, wofür jede am besten geeignet ist:

  • Solides Primitiv (Vercel, Miro): Infrastruktur, Entwicklerwerkzeuge, alles, was sich unvermeidlich anfühlen soll, wo eine Form die Idee trägt.
  • Wiederholtes Primitiv (Slack, Claude, Linear, Intercom, PostHog): Zusammenarbeit, Kommunikation, KI, alles, bei dem viele Teile sich gemeinsam bewegen.
  • Buchstabenform (Webflow, Miro, Notion): ein Produkt, dessen Name seine Marke ist, wenn der Anfangsbuchstabe eine starke Form hat (A, M, N, W, K, Z, S, V).
  • Facettiertes Objekt (Airtable, Notions Seite): Daten, Speicher, Dokumente, alles mit einem Ding, das man füllt oder stapelt.
  • Sanfter Strich (Mintlify, Intercom): freundliche, verbraucherorientierte Produkte, Dokumentationen, Support, alles Warme statt Technische.

Wenn der Benutzer eine Referenzmarke nennt, ist die Familie vorgegeben: „wie Slack“ oder „wie Claude“ → Wiederholtes Primitiv; „wie Vercel“ → Solides Primitiv; „wie Webflow“ oder „wie Notion“ → Buchstabenform; „wie Airtable“ → Facettiertes Objekt; „wie Mintlify“ oder „wie Intercom“ → Sanfter Strich. Wenn der Benutzer eine Familie nennt, verwenden Sie sie. Wenn nichts in eine Richtung weist, verteilen Sie die Konzepte auf zwei oder drei Familien; das Blatt entscheidet.

3. 3–4 Konzepte schreiben

Jedes Konzept besteht aus 2–3 Sätzen, die das Bildmodell ohne Raten zeichnen kann:

  • Symbol als Geometrie, nicht als Substantiv. Nicht „eine Aufgabenkarte“, sondern „ein abgerundetes Rechteck, breiter als hoch, mit einem zweiten identischen dahinter, das um eine Viertel seiner Höhe nach oben und rechts versetzt ist“. Nicht „ein Rautezeichen“, sondern „vier Pillen, jede ein Balken mit einer runden Beule an einem Ende, um 90° um die Mitte gedreht“.
  • Die Anzahl und der Rhythmus bei einem wiederholten Primitiv: „fünf senkrechte Balken, Höhen abgestuft 3-5-4-2-3 von links nach rechts“.
  • Die Familie, benannt, und bei einer Buchstabenform welcher Buchstabe und welche zwei oder drei Striche.
  • Die Farbe: die Markenfarbe als Hex, wenn es eine gibt, oder „schwarze Kachel, weiße Marke“ oder „Ringelblume-Kachel, schwarze Marke“.
  • Ausschlüsse, wenn das Konzept zu Extras einlädt: „kein Punkt“, „kein Rahmen um die Balken“, „der Zwischenraum bleibt leer“.

Machen Sie die Silhouetten über die Konzepte hinweg unterschiedlich (hoch vs. breit, eine Masse vs. verstreut). Verwerfen Sie jedes Konzept, das mehr Primitive benötigt, als seine Familie erlaubt, oder eine Farbe, die die Familie verbietet.

4. Zusammensetzen und generieren

Ersetzen Sie für jedes Konzept in prompt.md den Platzhalter {{input}} durch:

<Product> — <was es ist und tut>. Das Verb ist <Verb>; das Objekt ist <Objekt>.
Markenfarbe: <hex oder „keine“>. Anfangsbuchstabe: <Buchstabe>.
Familie: <eine der fünf>

Konzept: <das Konzept aus Schritt 3>

Generieren Sie alle Konzepte parallel über OpenRouter (siehe unten), jeweils ein Bild, quadratisch. Speichern Sie sie als <concept>.png oder .jpg, je nachdem, was zurückkommt (das folgende Snippet unterscheidet sie).

Standardmodell: google/gemini-3.1-flash-lite-image (Nano Banana 2 Lite), das günstigste und schnellste; es verarbeitet flache Geometrie gut genug für den gesamten Durchlauf, und ein Konzept, das darauf scheitert, scheitert normalerweise auch auf den anderen. Steigen Sie nur auf, wenn danach gefragt wird, oder wenn ein Keeper eine sauberere Ausgabe benötigt, als zwei Durchläufe liefern: google/gemini-3.1-flash-image (Nano Banana 2), dann google/gemini-3-pro-image (Nano Banana Pro), das die sauberste Geometrie zeichnet: flache Enden, gleichmäßige Strichstärke, echte flache Füllungen.

5. Betrachten

Reihen Sie die Kacheln mit bash <this skill folder>/scripts/sheet.sh sheet.png a.png b.png … auf und öffnen Sie sie. Um die Referenzen daneben zu sehen, zieht bash <this skill folder>/scripts/fetch-references.sh out/saas-logo/references die elf Marken über Brandfetch in ein eigenes Blatt (es benötigt eine Brandfetch-Client-ID; siehe Kopf des Skripts). Bewerten Sie jede Kachel so, wie die Analyse die Referenzen bewertet:

  • Flach – eine Füllung pro Form, kein Verlauf, kein Schatten, keine Abschrägung. Alles andere ist ein Neuwurf, kein Keeper.
  • Eckige Ecken – alle scharf oder alle rund, wie die Familie es sagt.
  • Anzahl – die Primitive, die das Konzept genannt hat, und nicht mehr. Ein zusätzlicher Punkt, ein Rahmen, eine Kerbe ist ein Fehler beim Benennen beim Neuwurf („kein Rahmen um die Balken“).
  • Silhouette – kneifen Sie die Augen zusammen. Eine klare Form bei 16px, kein zufälliges zweites Bild: drei Balken und eine Kurve werden zu einem Gesicht, ein Winkel und ein Punkt werden zu einem Cursor, vier Pillen werden zu einer Windmühle.
  • Bedeutung – Können Sie das Verb oder das Objekt erkennen, ohne den Namen? Wenn es wie ein Kategoriesymbol aussieht, ist das Konzept falsch, nicht die Ausgabe.
  • Leinwand – Kachel zentriert auf flachem Grau, nichts anderes darauf, kein Text. Kachegröße und die genaue Farbe variieren ein wenig zwischen den Ausgaben; das ist normal. Wenn ein Satz exakt übereinstimmen muss, generieren Sie alles in einem Durchlauf mit einem Modell oder schneiden Sie auf die Kachel zu.

Wiederholen Sie nur, was fehlgeschlagen ist, mit einem geschärften Konzept, das den Fehler benennt. Zwei Durchläufe sind normal; ein Konzept, das zweimal fehlschlägt, ist normalerweise das Konzept, nicht das Modell. Ersetzen Sie es.

6. Ausschneiden

Die Ausgabe ist eine Arbeitsdatei: eine graue Leinwand mit der Kachel darauf. Schneiden Sie jeden Keeper in die Dateien, die verwendet werden:

bash <this skill folder>/scripts/cut.sh <concept>.png out/saas-logo/<product> --name <product>

Es schreibt <product>-mark.png, die Marke allein auf transparentem Hintergrund, auf ihre Kanten zugeschnitten ohne Abstand, und <product>-tile.png, die abgerundete App-Icon-Kachel mit transparenten Ecken. Die Leinwandfarbe wird aus den Ecken der Ausgabe gelesen und die Kachefarbe aus einem Band innerhalb der Kachelkante, und die Randpixel werden von ihnen entmischt, sodass die Kanten weich bleiben ohne Rand. Wenn mehrere Konzepte ausgeliefert werden, benennen Sie sie auseinander (--name relay-bars, --name relay-block). Der erste Durchlauf erstellt eine kleine Python-Venv mit Pillow und NumPy in scripts/.venv innerhalb dieser Fähigkeit; danach ist es sofort.

Öffnen Sie die beiden Dateien über einem dunklen und einem hellen Hintergrund und überprüfen Sie: kein Randstreifen der Kachefarbe entlang der Markenkante, kein Schlitz der Leinwand an den Kachelecken, nichts von der Marke abgeschnitten. Ein Randstreifen bedeutet, dass die Kachel der Ausgabe nicht flach war (ein Verlauf oder eine Vignette hat sich eingeschlichen); wiederholen Sie die Ausgabe, anstatt den Schnitt zu flicken. Ein schwacher Farbton direkt am Rand, nur beim Zoomen sichtbar, ist JPEG-Rauschen von den Lite- und Flash-Modellen; wenn es darauf ankommt, rendern Sie den Keeper einmal mehr mit google/gemini-3-pro-image, das als PNG antwortet.

7. Ausliefern

Legen Sie die Marken- und Kachel-PNGs in out/saas-logo/<product>/. Kopieren Sie sie dorthin, wo das Produkt Marken-Assets aufbewahrt (public/, brand/, assets/), nur wenn der Benutzer darum bittet. Halten Sie die Ausgaben und sheet.png aus dem Weg, in einem renders/-Ordner daneben. Nennen Sie in der Zusammenfassung die empfohlenen -mark.png und -tile.png mit Pfad, sagen Sie in einer Zeile, welches Konzept Sie empfehlen und warum, und listen Sie die anderen als Alternativen mit ihren Dateien auf.

Generieren über OpenRouter

Der API-Key kommt von OPENROUTER_API_KEY. Wenn er nicht gesetzt ist, halten Sie an und bitten Sie den Benutzer, ihn zu setzen, anstatt bei einem anderen Anbieter zu raten.

KEY="$OPENROUTER_API_KEY"

# request.json: {"model": "google/gemini-3.1-flash-lite-image", "prompt": "<der zusammengesetzte Prompt>", "aspect_ratio": "1:1"}
curl -sS https://openrouter.ai/api/v1/images \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d @request.json > response.json

python3 - <<'PY'
import base64, json, pathlib
data = json.loads(pathlib.Path("response.json").read_text())["data"][0]
image = base64.b64decode(data["b64_json"])
# Lite und Flash antworten mit JPEG-Bytes, Pro mit PNG; benennen Sie die Datei entsprechend.
ext = "png" if image.startswith(b"\x89PNG") else "jpg"
pathlib.Path(f"concept.{ext}").write_bytes(image)
PY

scripts/sheet.sh und scripts/cut.sh akzeptieren beide Formate.

Dateien

  • prompt.md – die Prompt-Vorlage; {{input}} nimmt die Produktzeile, die Familie und das Konzept auf. Abschnitt 3 enthält die fünf Familien.
  • references/analysis.md – die Untersuchung der elf Marken: jede als Geometrie, die gemeinsamen Regeln, die fünf Familien.
  • scripts/fetch-references.sh – zieht die Referenzmarken über die Brandfetch-Logo-API (Client-ID von BRANDFETCH_CLIENT_ID) in einen Ordner und ein Blatt; jede Liste von Domains funktioniert, für einen anderen Satz von Referenzen.
  • scripts/sheet.sh – reiht Kacheln auf der grauen Leinwand auf (benötigt rsvg-convert; brew install librsvg).
  • scripts/cut.sh, scripts/cut.py – schneidet eine Ausgabe in die transparenten Marken- und Kachel-PNGs, die ausgeliefert werden.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills