Canvora × nanoclaw

On-Brand-Visuals-CLI für nanoclaw

nanoclaw hält den Agent-Loop minimal — Canvora hält die Tool-Oberfläche passend dazu minimal: eine Env-Variable, ein Befehl rein, fertige gebrandete Visuals raus.

Kostenlose Credits, keine Karte nötig. Bitte stelle sicher, dass immer ein Mensch in der Schleife bleibt.

Das komplette Setup

Terminal
# Skills installieren (oder die CLI pur nutzen - beides geht)
npx skills add canvora/canvora-mcp

# Auth ist eine Env-Variable
export CANVORA_API_KEY=vd_...

# Smoke-Test
canvora credits --json

Das liefert dein Agent

Eine Generierung, zweimal lokalisiert. Gleiches Design, nativ neu gesetzt auf Spanisch und Arabisch — Rechts-nach-links korrekt umgesetzt, kein gespiegeltes Englisch.

Dasselbe On-Brand-Visual generiert auf Englisch, Spanisch und Arabisch — identisches Design, korrekte RTL-Komposition

Generiert mit denselben Befehlen, die auf dieser Seite gezeigt werden.

So funktioniert es

1. Abfeuern

Die erste stdout-Zeile ist die reine Generation-Id

Terminal
ID=$(canvora generate \
  --input "Drei Gewohnheiten hochwirksamer Remote-Teams..." \
  --format instagram_post --style minimal | head -1)

2. Pollen

Günstige Status-Checks bis completed

Terminal
while true; do
  S=$(canvora status "$ID" --json | jq -r .status)
  [ "$S" = "completed" ] && break
  [ "$S" = "failed" ] && exit 1
  sleep 10
done

3. Ausliefern

Dateien oder CDN-URLs, was der Loop gerade braucht

Terminal
canvora download "$ID" --dir out/
canvora status "$ID" --json | jq -r '.outputs[].fileUrl'

Was ist nanoclaw?

nanoclaw ist die minimalistische Variante des persönlichen KI-Agenten: ein winziger, auditierbarer Kern-Loop, der auf wohlerzogene externe Tools setzt statt auf eingebaute Komplexität. Canvora passt zu dieser Philosophie — die gesamte Visual-Pipeline besteht aus vier Befehlen.

Winzige Oberfläche

generate, status, download — der essenzielle Loop sind drei Befehle. Alles liefert mit --json JSON; Fortschritt geht nach stderr, Ergebnisse nach stdout.

Kein State zu verwalten

Keine Sessions, kein SDK, keine Config-Dateien. Der API-Key kommt aus der Umgebung; Generation-Ids sind einfache Strings, die dein Loop weiterreicht.

Fällt sicher aus

Das Guthaben wird vor jeder Abbuchung geprüft, Fehler sind typisiertes JSON, und fehlgeschlagene Generierungen werden automatisch erstattet — ein minimaler Loop kann nichts unbemerkt leeren.

Das gesamte Agent-Tool, ein Screen

Das ist die komplette Integration — keine Wrapper-Library

Terminal
#!/bin/sh
# nanoclaw-Tool: Text -> gebrandeter Instagram-Post -> Datei-URL
ID=$(canvora generate --input "$1" \
  --format instagram_post --brand "$BRAND_ID" | head -1)
until [ "$(canvora status "$ID" --json | jq -r .status)" = "completed" ]
do sleep 10; done
canvora status "$ID" --json | jq -r '.outputs[0].fileUrl'

Sprachen hinzufügen, ohne Code hinzuzufügen

Derselbe minimale Loop deckt jeden Markt ab

Terminal
# Ein zusätzlicher Befehl lokalisiert das fertige Visual -
# gleiches Design, nativ neu gesetzter Text:
canvora localize "$ID" --language tr
canvora localize "$ID" --language ar   # korrektes RTL, nicht gespiegelt

Warum nanoclaw + Canvora

  • Kern-Loop aus drei Befehlen: generate, status, download
  • stdout ist Daten, stderr ist Fortschritt — Pipes komponieren sauber
  • Kein SDK, keine Session, keine Config: eine Env-Variable und einfache Strings
  • Typisierte JSON-Fehler und Guthaben-Checks vor der Abbuchung — sicher in unbeaufsichtigten Loops
  • localize und variations erweitern den Loop ohne neuen Integrations-Code

Befehlsreferenz

Hänge --json an jeden Befehl für maschinenlesbaren Output. Fortschritt geht nach stderr, Ergebnisse nach stdout.

BefehlBeschreibung
canvora generateVisuals erstellen aus --idea, --input Text, --url oder --file-url; Formate, Brand, Stil und Sprache wählen
canvora status <id>Eine Generierung prüfen; --json liefert Status und Output-Datei-URLs
canvora download <id>Output-Dateien in ein Verzeichnis speichern
canvora localize <id>Gleiches Design, nativ neu gesetzt in einer anderen Sprache (RTL inklusive)
canvora variations <id>Alternative Varianten einer fertigen Generierung
canvora edit <outputId>Ein Visual mit einer Anweisung in natürlicher Sprache überarbeiten
canvora formatsAlle 100+ Format-Ids auflisten
canvora brandsBrand-Kits auflisten (Farben, Fonts, Logo, Tonalität)
canvora creditsCredit-Guthaben anzeigen

Über 100 Formate, eine Engine

Jedes Format hat plattformgerechte Komposition und Safe Zones — dein Agent wählt per Id.

Instagram-Carousel

Bis zu 20 Slides, vom Hook zum CTA

LinkedIn-Carousel

Swipebare Dokument-Posts

Pitch-Deck

Stimmige Multi-Slide-Sets

Instagram-Post & Story

Feed- und Vertikalformate

Stat-Card

Eine Zahl, gestaltet, damit sie sitzt

Infografik

Daten- und Prozess-Visuals

Blog-Header & OG-Image

Alles für den Launch

Ad-Creatives

Display- und Social-Ads

Alle Formate und Tools ansehen →

FAQ

Warum ist die Generierung asynchron? +

Visual-Generierung ist echte Arbeit; ein synchroner Aufruf würde den Agent-Loop blockieren und Shells in Timeouts laufen lassen. Job abfeuern, Id aus stdout übernehmen, Status pollen. Das Muster: drei Zeilen sh, oben gezeigt — und es hängt nie.

Was kostet jeder Aufruf? +

Feste Credits: 10 pro einzelnem Visual, 15 pro Carousel- oder Deck-Slide. canvora credits --json liefert das Guthaben; ein Request, der es übersteigt, schlägt vor jeder Abbuchung fehl — mit der exakten Differenz im Fehler.

Was, wenn der Loop mitten in der Generierung stirbt? +

Nichts geht verloren: Die Generierung läuft serverseitig weiter, und die Id bleibt abfragbar. Schlägt sie fehl, werden die Credits automatisch erstattet. Ein Neustart des Skripts startet einen neuen, separaten Job — persistiere die Id, wenn du stattdessen fortsetzen willst.

Muss außer der CLI noch etwas installiert werden? +

Nein. @canvora/cli ist ein einfaches Node-Binary; jq in den Beispielen ist optionaler Zucker. Die Skills-Installation legt fertige Workflows obendrauf, aber die pure CLI kann alles.

Funktioniert auch mit

Der nächste Tool-Call deines Agents ist eine Design-Abteilung.

Erstelle einen kostenlosen Account, setze einen Key, und lass nanoclaw On-Brand-Visuals liefern.