# Stripe Projects CLI

Ajoutez des services tiers à votre application, synchronisez les identifiants avec votre projet et gérez les mises à jour.

Pour plus de détails, consultez la [documentation de l’interface de ligne de commande (CLI) Stripe](https://docs.stripe.com/cli.md).

> Stripe Projects est disponible en version bêta publique. Inscrivez-vous sur la liste d’attente sur [projects.dev](https://projects.dev/) pour demander un accès anticipé.

Un projet Stripe représente une seule application ou base de code et regroupe les services et ressources d’un compte fournisseur.

- **Compte fournisseur**&nbsp;: le compte auprès de votre fournisseur, tel que Vercel, Supabase, Clerk ou PostHog.
- **Service**&nbsp;: les produits proposés par le fournisseur, comme une base de données, un service d’autorisation ou d’analyse.
- **Ressource**&nbsp;: une instance du service pour votre compte, ainsi que les identifiants et les variables d’environnement associés. Par exemple, `test-db-1`, `auth` ou `test-analytics-1`.

Vous pouvez utiliser un projet pour&nbsp;:

- Associer un compte fournisseur existant ou en créer un nouveau
- Mettre à disposition des ressources, telles que des bases de données, des instances d’autorisation et des projets d’analyse
- Stocker les identifiants dans le coffre-fort et les synchroniser avec votre environnement (`.env`) en tant que variables d’environnement
- Gérer les mises à niveau et renouveler les identifiants

Après avoir associé un compte fournisseur à votre compte Stripe, celui-ci reste autorisé jusqu’à ce que vous supprimiez explicitement l’association. Vous pouvez réutiliser un compte fournisseur pour de nouveaux projets dans le même compte Stripe. Si vous souhaitez utiliser un compte Stripe différent, vous devez associer à nouveau le compte fournisseur.

Vous pouvez initialiser un projet dans un nouveau répertoire ou une base de code existante. Si vous utilisez une base de code existante et ajoutez des services, de nouveaux identifiants et de nouvelles variables d’environnement sont fusionnés dans votre environnement existant (`.env`) et la configuration du projet.

## Before you begin

- Un compte Stripe
- Le [Stripe&nbsp;CLI](https://docs.stripe.com/stripe-cli/install.md) installé et à jour
- Le plugin Projects installé&nbsp;:

```bash
stripe plugin install projects
```

### Utiliser un agent de codage

Vous pouvez demander à un agent de codage d’installer la CLI Stripe, et le plugin Projects&nbsp;:

```bash
Install the Stripe CLI, install the `projects` plugin, verify `stripe projects --help` works.
```

## Démarrage rapide

Cet exemple rattache un hébergement, une base de données, l’authentification et l’analytique à un projet, puis synchronise les identifiants avec votre environnement local.

```bash
# Create a project
stripe projects init my-app

# Associate a provider account or add a service
stripe projects link vercel
# or
stripe projects add vercel/project

# Add more services
stripe projects add clerk/auth
stripe projects add posthog/analytics
```

Stripe Projects stocke les identifiants dans le coffre-fort et synchronise automatiquement les variables d’environnement avec votre environnement local (`.env`)&nbsp;:

```bash
VERCEL_PROJECT_ID=...
SUPABASE_DATABASE_URL=...
CLERK_SECRET_KEY=...
POSTHOG_PROJECT_API_KEY=...
```

## Créer un projet

Exécutez `init` dans le répertoire que vous souhaitez utiliser pour votre projet&nbsp;:

```bash
stripe projects init [name]
```

Cela initialise un projet Stripe pour ce répertoire. Si vous omettez le nom, Stripe Projects utilise le nom du dossier.

Stripe Projects écrit l’état du projet sous `.projects/`, qui suit les comptes de fournisseur associés, les ressources provisionnées et la configuration du projet local. Vous pouvez voir les outils utilisés par votre projet dans `.projects/state.json`. Le fichier `.projects/state.local.json` dans votre référentiel privé contient les ID de ressources dont votre équipe a besoin pour partager le même état de projet.

## Utiliser un agent de codage

Lorsque vous initialisez un projet, Stripe Projects écrit les compétences des agents de codage dans le répertoire local du projet. Ces compétences fournissent un contexte et des actions permettant à votre agent de travailler avec votre projet via le flux de travail Stripe Projects.

Vous pouvez ensuite demander à votre agent d’accomplir des tâches, telles que&nbsp;:

- «&nbsp;Associer mon compte Neon existant et fournir une base de données&nbsp;»
- «&nbsp;Ajouter l’authentification Turso et PostHog avec l’offre gratuite.&nbsp;»
- «&nbsp;Configurer les services dont ce dépôt a besoin et expliquer ce qui a changé.&nbsp;»

Votre agent utilise les mêmes commandes de l’interface de ligne de commande Stripe Projects. Cela signifie que vous pouvez provisionner, mettre à niveau, configurer et synchroniser les identifiants en utilisant le même chemin déterministe et vérifiable qu’en utilisant directement l’interface de ligne de commande.

Pour éviter les fenêtres contextuelles du navigateur lors du provisionnement et de l’échange d’identifiants, nous recommandons le flux suivant&nbsp;:

- Connexion à votre compte Stripe.
- Associez votre compte fournisseur existant (ou créez-en un nouveau) à `stripe projects link`.
- Ajoutez un moyen de paiement avec `stripe projects billing add`.
- Démarrez la session d’agent.

## Vérifier l’état du projet

Après avoir ajouté des services ou connecté des fournisseurs, exécutez `status` pour examiner votre projet&nbsp;:

```bash
stripe projects status
```

Cela affiche le nom de votre projet, votre compte Stripe, les comptes fournisseurs associés, les ressources provisionnées, les niveaux actuels et l’état de santé.

## Intégrez des projets à votre flux de travail

Vous pouvez utiliser Stripe Projects pour les nouvelles applications, les bases de code existantes et les configurations actives.

### Démarrez un nouveau projet

Si vous avez une nouvelle application, vous pouvez créer un projet, associer des comptes fournisseurs ou en créer de nouveaux, et provisionner des ressources telles qu’une base de données, l’autorisation et l’analytique.

### Ajoutez des services à une base de code existante

Vous pouvez initialiser Stripe Projects dans un répertoire d’application existant. Si vous utilisez un répertoire existant et ajoutez des services, les nouveaux identifiants et variables d’environnement sont fusionnés avec votre environnement existant (`.env`) et la configuration du projet. Cela est utile lorsqu’une application dispose déjà d’un hébergement mais nécessite des services, tels qu’une base de données, l’authentification, l’analytique, les indicateurs de fonctionnalités ou d’autres infrastructures gérées.

### Gérez une configuration existante

Lorsque vous associez les comptes de fournisseurs que vous utilisez déjà à votre compte Stripe, le projet est représenté à un emplacement unique. Cela vous permet également d’associer des ressources existantes et d’ajouter des variables d’environnement pertinentes.

### Travailler dans plusieurs environnements

Un seul projet Stripe peut représenter plusieurs environnements, y compris le développement et la production. Associez ou fournissez les ressources dont vous avez besoin pour chaque environnement, puis synchronisez les variables dans la configuration de projet appropriée et les fichiers `.env` locaux.

## Parcourir le catalogue de services

Utilisez `catalog` pour lister tous les fournisseurs disponibles, leurs catégories de services, les niveaux de plan, les modules complémentaires et les tarifs&nbsp;:

```bash
stripe projects catalog
stripe projects catalog <provider>
stripe projects catalog <category>
```

## Gérer un service

### Ajouter un service

Ajoutez un service de prestataire à votre projet&nbsp;:

```bash
stripe projects add <provider>/<service>
```

Lorsque vous ajoutez un service, cette action associe un compte fournisseur existant à votre compte Stripe ou en crée un, avant d’ajouter le service.

L’ajout d’un service permet de provisionner une ressource dans votre compte fournisseur. Utilisez la commande `add` pour provisionner une base de données, une instance d’autorisation, un projet d’analyse, des indicateurs de fonctionnalités ou toute autre infrastructure gérée pour votre application.

### Associez un fournisseur avec la commande link

Associez un compte fournisseur ou créez un compte sans provisionner de ressource. Cela est utile dans les workflows pilotés par un agent, lorsque vous souhaitez établir une connexion avec le fournisseur avant de provisionner des ressources.

```bash
stripe projects link <provider>
```

### Supprimer un service

Supprimez un service de votre compte opérateur et de votre projet local&nbsp;:

```bash
stripe projects remove <provider>/<service>
#or
stripe projects remove <resource_name>
```

### Faire pivoter un identifiant

Faites pivoter les identifiants pour un service spécifique&nbsp;:

```bash
stripe projects rotate <provider>/<service>
#or
stripe projects rotate <resource_name>
```

### Mettre à niveau un niveau de service

Vous pouvez mettre à niveau le niveau de service lorsqu’un service nécessite plus de capacité, de fonctionnalités ou de limites que ce que le niveau actuel offre.

```bash
stripe projects upgrade <provider> | <provider>/<service> | <resource_name>
```

Avant de procéder à la mise à niveau, vérifiez le niveau actuel de chaque service dans l’état ou sur le Dashboard de votre fournisseur.

Vous ne devez ajouter votre moyen de paiement à Stripe qu’une seule fois. Lorsque vous sélectionnez un forfait payant dans l’interface en ligne de commande (CLI), Stripe tokenise vos informations de paiement en un [token de paiement partagé](https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens.md) et accorde au fournisseur un identifiant de paiement pour cette mise à niveau. Le fournisseur effectue la facturation à l’aide de ce token. Vos informations de paiement sous-jacentes ne sont pas partagées.

> Dans l’aperçu pour les développeurs, ce transfert de paiement est uniquement disponible aux États-Unis, dans l’Union européenne, au Royaume-Uni et au Canada.

### Ouvrir le Dashboard du fournisseur

Ouvrez le Dashboard d’un fournisseur dans votre navigateur par défaut&nbsp;:

```bash
stripe projects open <provider>
```

## Gérer les variables d’environnement

Stripe Projects stocke les identifiants dans le coffre-fort et synchronise automatiquement les variables d’environnement avec votre environnement local (`.env`) lorsque vous ajoutez ou modifiez des services.

### Lister les variables

Affichez toutes les variables d’environnement du projet. Les valeurs ne sont pas révélées dans la sortie&nbsp;:

```bash
stripe projects env
```

Les variables d’environnement se synchronisent également automatiquement après la mise en service des ressources.

### Synchroniser les variables

Mettez à jour vos fichiers locaux `.env` et remplissez votre coffre d’identifiants. Il se met également à jour automatiquement après le provisionnement des ressources.

```bash
stripe projects env --pull
```

## Gérer la facturation

Moyens de paiement associés à votre compte Stripe

### Afficher le moyen de paiement

Affichez votre moyen de paiement enregistré&nbsp;:

```bash
stripe projects billing show
```

### Ajouter ou mettre à jour un moyen de paiement

Ajoutez un moyen de paiement ou remplacez un moyen existant&nbsp;:

```bash
stripe projects billing add
```

## Générer un contexte LLM

Affichez et écrivez un fichier local qui combine le contexte de votre projet avec tous les fichiers de contexte LLM fournis par les fournisseurs&nbsp;:

```bash
stripe projects llm-context
```

## Utiliser des environnements non interactifs

Chaque commande prend en charge des indicateurs pour les environnements non interactifs, tels que les pipelines CI/CD, les scripts et les agents.

### Indicateurs globaux

| Indicateur         | Description                                                                                                                                   |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `--json`           | Renvoie la sortie sous forme de JSON structuré au lieu d’un texte formaté.                                                                    |
| `--no-interactive` | Désactive les invites interactives et les boîtes de dialogue de confirmation. Les commandes échouent lorsqu’une entrée requise est manquante. |
| `--auto-confirm`   | Accepte automatiquement les invites de confirmation, par exemple lorsque vous supprimez un service.                                           |
| `--quiet`          | Supprime les sorties non essentielles et renvoie uniquement les résultats finaux ou les erreurs.                                              |

## Fournisseurs disponibles

Ces fournisseurs ont co-conçu le protocole d’intégration avec Stripe. Ce protocole normalise le provisionnement, la sélection des plans, les mises à niveau et la transmission des identifiants.

| Fournisseur  | Catégories principales                      |
| ------------ | ------------------------------------------- |
| Vercel       | Hébergement                                 |
| Cloudflare   | Hébergement, domaines                       |
| Railway      | Hébergement, base de données, stockage      |
| Fly.io       | Hébergement, base de données                |
| Supabase     | Base de données, authentification, stockage |
| Neon         | Base de données, authentification           |
| PlanetScale  | Base de données                             |
| Turso        | Base de données                             |
| Chroma       | Base de données vectorielle                 |
| Clerk        | Identification                              |
| PostHog      | Analytique, indicateurs de fonctionnalités  |
| Amplitude    | Analytique, indicateurs de fonctionnalités  |
| Mixpanel     | Analyses                                    |
| Firecrawl    | Recherche                                   |
| OpenRouter   | Modèles d’IA                                |
| Hugging Face | IA                                          |
| Inngest      | IA                                          |
| Runloop      | Environnements de test, hébergement         |

Exécutez `stripe projects catalog` à tout moment pour consulter la liste la plus récente des fournisseurs et des niveaux de service disponibles. Vous pouvez également consulter le répertoire sur [projects.dev/providers](https://projects.dev/providers).

> #### Demander un fournisseur
> 
> Contactez [provider-request@stripe.com](mailto:provider-request@stripe.com) si vous souhaitez devenir fournisseur sur le réseau Stripe Projects ou demander l’ajout d’un fournisseur spécifique.

## Référence des commandes

| Commande                                         | Description                                                              |
| ------------------------------------------------ | ------------------------------------------------------------------------ |
| `init <name>`                                    | Créer un projet et se connecter ou s’inscrire.                           |
| `status`                                         | Afficher le nom du projet, les services, les niveaux et l’état de santé. |
| `catalog`                                        | Dressez la liste des fournisseurs, catégories et services disponibles.   |
| `add <provider>/<category>`                      | Ajouter un service à votre projet.                                       |
| `link <provider>`                                | Connecter un fournisseur à votre projet.                                 |
| `remove <provider>/<service> | <resource_name>`  | Supprimer un service de votre projet.                                    |
| `rotate <provider>/<service> | <resource_name>`  | Faire pivoter les identifiants d’un service.                             |
| `upgrade <provider>/<service> | <resource_name>` | Modifier le niveau d’un service.                                         |
| `open <provider>`                                | Ouvrir le Dashboard d’un fournisseur dans le navigateur.                 |
| `env [--pull]`                                   | Répertoriez ou synchronisez les variables d’environnement du projet.     |
| `billing show`                                   | Afficher le moyen de paiement actuel.                                    |
| `billing add`                                    | Ajouter ou remplacer un moyen de paiement.                               |
| `llm-context`                                    | Générer un fichier de contexte LLM combiné.                              |
