---
title: "Rappels"
description: "Un rappel relance une session plus tard, une seule fois ou de façon répétée, jusqu’à ce que vous le supprimiez."
---

Un rappel envoie un prompt à une [session](/docs/fr/work/sessions) existante à l’heure que vous définissez. Il se déclenche une fois ou se répète jusqu’à ce qu’une personne le supprime. Un agent utilise un rappel pour revenir sur son propre travail : « dans 24 heures, vérifier si le fournisseur a répondu », « toutes les heures, vérifier si le déploiement est au vert ».

Un rappel est un [déclencheur](/docs/fr/connect/triggers) limité à une session. Voici les différences :

| | Déclencheur | Rappel |
| --- | --- | --- |
| Stocké dans | `beeuni.yaml`, avec validation dans la branche par défaut | La base de données. Pas de modification du manifeste ni de commit. |
| Lors d’un déclenchement | Démarre généralement une nouvelle session | Envoie un prompt à sa session. Ne démarre jamais de session. |
| Durée de vie | Jusqu’à ce qu’une personne le supprime du manifeste | Jusqu’à ce qu’une personne le supprime. Il se met en pause si sa session est supprimée ou en échec. |
| Qui peut le créer | Les responsables de projet (`project.trigger.create`) | Toute personne pouvant envoyer un prompt à la session. Un agent ne peut en créer un que sur sa propre session. |
| Où il est répertorié | `beeuni triggers ls`, la page Triggers | `beeuni reminders ls`, par session |

Utilisez un déclencheur pour les tâches de projet que tout le monde devrait voir, comme un résumé quotidien. Utilisez un rappel pour un suivi lié à une seule tâche.

<a id="turn-reminders-on"></a>

## Activer les rappels

Les rappels sont un [indicateur de fonctionnalité](/docs/fr/feature-flags) par projet, `reminders`, désactivé par défaut. Activez-le dans **Settings → Feature flags**, ou :

```sh
beeuni projects features enable reminders
```

Lorsque l’indicateur est désactivé, chaque route de rappel répond `403` avec `code: "feature_disabled"`, la page Reminders explique comment l’activer et les rappels existants ne se déclenchent pas. Si vous réactivez l’indicateur, un créneau manqué pendant la désactivation se déclenche une fois, puis le calendrier reprend.

<a id="set-a-reminder"></a>

## Définir un rappel

Dans une session, l’interface CLI cible la session en cours. En dehors d’une session, indiquez `--session <id>`.

```sh
# Fire once, 24 hours from now.
beeuni remind "Check whether the vendor replied to the contract email." --in 24h

# First fire in 24 hours, then every hour until removed.
beeuni remind "Did the vendor reply? If yes, summarize it and remove this reminder." --in 24h --every 1h

# Fire at an exact instant.
beeuni remind "Post the launch checklist to #launch." --at 2026-10-01T09:00:00Z

# Repeat on a cron expression in a time zone.
beeuni reminders add "Post the standup summary." --cron "0 0 9 * * 1-5" --timezone Europe/Berlin
```

La commande affiche l’ID du rappel, par exemple `reminder.3f9a1c2e7b04`, et sa prochaine heure de déclenchement.

<a id="schedule-rules"></a>

## Règles de planification

- `--in <duration>` ou `--at <ISO-8601>` définit le premier déclenchement. Sans autre paramètre, le rappel ne se déclenche qu’une fois.
- `--every <duration>` définit la répétition. La période minimale est `5m`. Chaque période commence lorsque le déclenchement précédent est pris en charge.
- `--cron "<expr>"` définit une répétition selon une expression cron à 6 champs (les secondes en premier). `--timezone` définit le fuseau horaire ; par défaut, il s’agit de `UTC`. Un rappel cron ne peut se déclencher plus d’une fois toutes les 5 minutes. Il n’accepte pas `--in` ni `--at`.
- Les durées sont exprimées en `30m`, `24h`, `2d` ou en secondes entières.
- `--in`, `--at` et `--every` acceptent une durée maximale de 366 jours.
- Une session peut avoir au maximum 20 rappels actifs. Un projet peut en avoir au maximum 200. Le dépassement de l’une ou l’autre limite renvoie `409`.

<a id="what-a-fire-does"></a>

## Effet d’un déclenchement

À chaque déclenchement, le texte du rappel est ajouté à la file de la session sous forme de prompt commençant par un en-tête :

```text
[REMINDER reminder.3f9a1c2e7b04 — recurring scheduled check-in on this session, not a new user message. When it is no longer needed, run `beeuni reminders rm reminder.3f9a1c2e7b04`.]

Did the vendor reply? If yes, summarize it and remove this reminder.
```

- Une session en veille est réactivée. L’agent a accès à toute la conversation et à l’espace de travail de la session.
- Un déclenchement ne démarre jamais de nouvelle session. Si la session est supprimée ou en échec, le rappel est mis en pause et la raison est consignée dans `last_error`.
- Un déclenchement conserve les connexions personnelles de la session, comme le compte Gmail d’un membre. Définir un rappel sur une session au nom de laquelle vous n’agissez pas les efface, comme lorsque vous envoyez un prompt à cette session.
- La mise en pause des déclencheurs à l’échelle du projet (`beeuni triggers pause`) arrête également les rappels.

Chaque déclenchement correspond à un tour de modèle. Supprimez un rappel récurrent dès que sa condition est remplie.

<a id="manage-reminders"></a>

## Gérer les rappels

| Commande | Effet |
| --- | --- |
| `beeuni reminders ls [--json]` | Liste les rappels de la session : ID, état, calendrier, prochain déclenchement et texte. |
| `beeuni reminders pause <id>` | Arrête les déclenchements sans supprimer le rappel. |
| `beeuni reminders resume <id>` | Déclenche à nouveau le rappel, puis le réarme à partir de maintenant. Un rappel ponctuel déjà déclenché reste `done`. |
| `beeuni reminders rm <id>` | Supprime le rappel. Alias : `stop`, `delete`. |

Un rappel est `active` (planifié), `paused` (désactivé) ou `done` (un rappel ponctuel qui s’est déclenché).

<a id="api-and-sdk"></a>

## API et SDK

Les routes sont limitées à une session :

| Route | Effet |
| --- | --- |
| `GET /v1/projects/:projectId/sessions/:sessionId/reminders` | Liste les rappels. |
| `POST /v1/projects/:projectId/sessions/:sessionId/reminders` | En crée un. Corps : `prompt`, `name` facultatif et `every`, `cron` + `timezone`, `at` ou `in`. Renvoie `201`. |
| `PATCH /v1/projects/:projectId/sessions/:sessionId/reminders/:reminderId` | Le corps `{ "enabled": false }` met en pause ; `{ "enabled": true }` reprend. |
| `DELETE /v1/projects/:projectId/sessions/:sessionId/reminders/:reminderId` | En supprime un. |

Un calendrier invalide renvoie `400` avec la raison. Une session supprimée renvoie `409`. Un identifiant d’agent qui désigne une autre session renvoie `403`.

```ts
const reminders = beeuni.session(projectId, sessionId).reminders;
const reminder = await reminders.create({ prompt: 'Did the vendor reply?', in: '24h', every: '1h' });
await reminders.update(reminder.id, { enabled: false });
await reminders.remove(reminder.id);
```
