---
title: "CLI"
url: "https://raconte.ai/fr/docs/cli"
---

### Documentation

[Introduction](/fr/docs)[Démarrer](/fr/docs/getting-started)[Serveur MCP](/fr/docs/mcp)[Webhooks](/fr/docs/webhooks)[API REST](/fr/docs/api)[CLI](/fr/docs/cli)[SDK](/fr/docs/sdk)[Skill agent](/fr/docs/skill)

### Guides

[Configurer le serveur MCP](/fr/guides/mcp-setup)[Utiliser le serveur MCP](/fr/guides/mcp-usage)

[Raconte](/) ⟩ [Documentation](/fr/docs)

# CLI

Gérez interviews et invitations depuis le terminal ou un agent IA avec @raconte/cli.

`@raconte/cli` pilote Raconte depuis un terminal ou un agent IA. Il enveloppe la même surface que l’[API REST](/fr/docs/api) et le [serveur MCP](/fr/docs/mcp) : créer et gérer les **interviews** et les **invitations**, authentifié avec une clé d’API d’organisation. Chaque commande affiche du JSON, ce qui se scripte proprement et qu’un agent peut parser.

Vous voulez confier le CLI à un agent IA ? Pointez-le sur la skill prête à l’emploi : [raconte.ai/skill.md](/skill.md).

## Installation

```
npm install -g @raconte/cli
```

Ou sans installer :

```
npx @raconte/cli interviews list
```

Nécessite Node.js 20 ou plus récent.

## Authentification

Créez une clé d’API d’organisation depuis [Paramètres → API](/settings/api), puis exposez-la :

```
export RACONTE_API_KEY="VOTRE_CLE_API"
```

Chaque commande lit `RACONTE_API_KEY`. Vous pouvez aussi passer `--api-key <clé>` par appel.

## Sortie et codes de sortie

*   Toute la sortie est du JSON sur stdout. Redirigez-la vers `jq` ou parsez-la directement.
*   Les erreurs sont du JSON sur stderr : `{ "status", "error" }` pour les erreurs API, `{ "error" }` pour les erreurs de transport ou d’usage.
*   Codes de sortie : `0` succès, `2` erreur d’usage, `3` échec d’authentification (401/403), `1` toute autre erreur.
*   Les commandes ne demandent jamais d’interaction : elles sont déterministes et non interactives.

## Commandes

Lancez `raconte --help` ou `raconte <groupe> <commande> --help` pour la liste de référence.

### Interviews

Commande

Description

`interviews list [--archived]`

Lister les interviews.

`interviews get <id>`

Récupérer une interview.

`interviews create --prompt --locale --voice-id [...]`

Créer une interview.

`interviews update <id> [...]`

Mettre à jour une interview.

`interviews archive <id>`

Archiver une interview.

`interviews restore <id>`

Restaurer une interview archivée.

`interviews logs <id>`

Lire les logs d’activité.

`interviews regenerate-intro <id>`

Régénérer le message d’introduction de l’IA.

`interviews regenerate-first-message <id>`

Régénérer le premier message de l’IA.

### Invitations

Commande

Description

`invitations list <interviewId>`

Lister les invitations d’une interview.

`invitations get <invitationId>`

Récupérer une invitation.

`invitations create <interviewId> [--name --email --phone]`

Créer une invitation. Sans champ, renvoie une invitation vierge partageable ; name/email/phone ne font que la pré-remplir et ne sont pas envoyés.

`invitations create-bulk <interviewId> --invitees '<json>'`

Créer des invitations en masse et envoyer chacune immédiatement.

`invitations update <invitationId> --name <name>`

Modifier le nom affiché de l’invité. Email et téléphone ne sont pas modifiables ici (utiliser `send`).

`invitations send <invitationId> [--email --phone]`

Envoyer par email ou SMS (définit le contact et envoie).

`invitations cancel <invitationId>`

Annuler une invitation prête.

`invitations reactivate <invitationId>`

Réactiver une invitation annulée.

`invitations archive <invitationId>`

Archiver une invitation.

`invitations restore <invitationId>`

Restaurer une invitation archivée.

`invitations logs <invitationId>`

Lire les logs d’activité.

`invitations audio-url <invitationId> <messageId>`

Obtenir une URL audio temporaire pour un message de transcription.

**Juste besoin d’un lien partageable ?** Lancez `invitations create <interviewId>` sans autre champ. Cela crée une invitation READY ; le lien à partager est `https://raconte.ai/invitation/<slug>` (le `slug` est dans la réponse). Quiconque a le lien peut passer l’interview, et rien n’est envoyé par email ni SMS. Changer l’email ou le téléphone d’un destinataire envoie toujours (via `send`) ; `update` ne change que le nom affiché, les coordonnées ne sont donc jamais modifiées en silence.

### Voices

Commande

Description

`voices list [--language <code>]`

Lister les voix à passer en `--voice-id`. Public, aucune clé d’API requise.

`voices test-audio-url <voiceId>`

Obtenir une URL audio d’aperçu éphémère pour une voix. Public, aucune clé d’API requise.

Les commandes de modification acceptent aussi `--data '<objet json>'` pour le corps complet de la requête. Les options explicites priment sur ses clés.

## Exemple

```
# Choisir une voix, puis créer une interview et garder son id
VOICE=$(raconte voices list --language fr | jq -r '.[0].id')
ID=$(raconte interviews create \
  --title "Retour onboarding" \
  --prompt "Interroger sur la première semaine, relancer sur les points de friction." \
  --locale fr \
  --voice-id "$VOICE" | jq -r '.id')

# Obtenir un lien partageable sans rien envoyer
raconte invitations create "$ID" | jq -r '"https://raconte.ai/invitation/" + .slug'

# Ou inviter des personnes directement (chacune reçoit un email ou un SMS aussitôt)
raconte invitations create-bulk "$ID" \
  --invitees '[{"name":"Ada","email":"ada@example.com"},{"name":"Bo","phone":"+33600000000"}]'
```

## Usage programmatique

Vous construisez une intégration TypeScript ou Node ? Utilisez le [SDK](/fr/docs/sdk) (`@raconte/node-sdk`) plutôt que d’appeler le CLI : la même surface en fonctions typées avec des schémas Zod.

Sommaire

[1\. Installation](#installation)[2\. Authentification](#authentification)[3\. Sortie et codes de sortie](#sortie-et-codes-de-sortie)[4\. Commandes](#commandes)[5\. Exemple](#exemple)[6\. Usage programmatique](#usage-programmatique)
