new
Crée un nouveau projet vide. Renvoie le projectSlug et l’editorUrl. Ajoutez des diapositives avec faces slides create + faces slides update. Le projet est créé sous l’équipe à laquelle votre clé API est associée (voir Authentification).
Sortie :
generate
Génère une nouvelle présentation interactive à partir d’un prompt textuel. Décrivez ce que vous voulez (un pitch, un portfolio, un guide ou une proposition) et Faces s’occupe du contenu, des animations et de la mise en page.
Sortie :
status
Vérifie le statut d’un job de génération.
Exemples :
list
Liste vos projets.
Exemples :
get
Récupère les détails d’un projet spécifique.
rename
Renomme un projet. Modifie uniquement le nom d’affichage ; le slug et les URLs restent identiques.
duplicate
Crée une copie complète d’un projet, y compris toutes ses diapositives. La copie obtient son propre slug et une nouvelle URL non publiée.
publish
Publie la dernière version d’un projet sur son URL en direct.
unpublish
Met un projet publié hors ligne. Le projet et ses diapositives sont conservés et peuvent être republiés ultérieurement.
config get
Lit le fichier project.config.json d’un projet, y compris ses paramètres de mise en page et les design tokens partagés (palette et polices).
config update
Fusionne des clés dans project.config.json. Utilisez cette commande pour définir les design tokens du projet. Seules les clés que vous passez sont modifiées ; le reste est préservé.
Exemples :
url get
Récupère la configuration d’URL actuelle d’un projet ainsi que les sous-domaines et domaines disponibles pour en changer.
url set
Modifie le chemin, change de sous-domaine, ou pointe le projet vers un domaine personnalisé. Nécessite un forfait payant.
Fournissez exactement l’un de
--subdomain-id ou --domain-id.
Exemples :
subdomains create
Crée un sous-domaine personnalisé pour l’équipe du projet, puis connectez-le avec faces url set. Nécessite un forfait payant.
domains create
Connecte un domaine personnalisé et renvoie les enregistrements DNS à ajouter. Nécessite un forfait payant.
Exemples :
faces url set <slug> --path <p> --domain-id <id>.
teams list
Liste les équipes auxquelles votre clé API a accès. L’équipe personnelle est signalée par isPersonal.
slides list
Liste toutes les diapositives d’un projet.
slides get
Lit les fichiers source d’une diapositive (face.tsx, face.content.json, face.controls.json).
slides create
Crée une nouvelle diapositive vide. Renvoie l’ID de la nouvelle diapositive.
Exemples :
slides reorder
Réordonne toutes les diapositives d’un projet selon un ordre donné, en un seul appel atomique. La liste --ids doit contenir exactement les IDs des diapositives existantes du projet, dans l’ordre final souhaité.
Exemples :
slides update
Met à jour les fichiers source d’une diapositive. Seuls les fichiers fournis sont modifiés. Le code est validé avant l’enregistrement et renvoie des erreurs s’il ne compile pas.
Exemples :
slides start-editing
Affiche un indicateur de chargement dans l’éditeur pendant l’édition d’une diapositive. À appeler avant de faire des modifications, et appelez toujours finish-editing une fois terminé.
slides finish-editing
Efface l’indicateur de chargement pour une diapositive. Appelez toujours cette commande après l’édition, même si l’édition a échoué.
slides screenshot
Capture une capture d’écran JPEG d’une diapositive telle qu’elle est actuellement rendue et renvoie une URL CDN publique. Utile pour vérifier visuellement une diapositive après l’avoir éditée.
Exemples :
slides guide
Affiche la référence de création de diapositive : le même guide renvoyé par le server MCP et l’API. Couvre la structure de face.tsx, les types de blocs de face.content.json, les types de contrôles de face.controls.json, la typographie, les polices, le CSS et des exemples de code. Lisez-le avant d’écrire du code de diapositive pour la première fois.
Exemples :
Référence des fichiers de diapositive
Chaque diapositive est composée de trois fichiers :face.tsx (composant React)
- Doit exporter par défaut un composant React
- Le div extérieur doit avoir
w-full h-full(canvas : 1920×1080 desktop, 384×683 mobile) - Utilisez Tailwind CSS et les container queries (
@sm:,@md:,@lg:,@xl:) au lieu des media queries - Ne codez jamais le texte en dur. Stockez tout le texte visible par l’utilisateur dans face.content.json
- Vous pouvez importer n’importe quel package npm (résolu automatiquement, aucune installation requise)
- Disponibles :
react,motion/react(Framer Motion),lucide-react,@base-ui/react/* - Composants UI :
TextContentdepuis@/components/ui/text-content,Icondepuis@/components/ui/icon
face.content.json (contenu modifiable)
text:{ "type": "text", "content": "HTML string" }, à afficher avec<TextContent content={blocks.key.content} />image:{ "type": "image", "src": "url | null" }, à afficher avec<img src={blocks.key.src} />icon:{ "type": "icon", "name": "lucide-icon-name" }, à afficher avec<Icon name={blocks.key.name} />table:{ "type": "table", "columns": [...], "rows": [...] }, à parcourir avecblocks.key.rows.map(...)
face.controls.json (contrôles de l’éditeur)
slider:{ "type": "slider", "min": 0, "max": 100, "step": 1, "value": 50 }switch:{ "type": "switch", "value": true }selector:{ "type": "selector", "options": ["A", "B"], "value": "A" }
controls.key.value
login
Se connecter et enregistrer une clé API.
Exemples :
~/.config/faces/credentials.json. La valeur de --team peut être un slug ou un id d’équipe (voir GET /api/v1/teams). Omettez --team pour associer la clé à votre équipe personnelle.