Utiliser Ferret
Projets et URL
Un projet est un dossier (en général la racine de votre dépôt). Chaque projet garde ses propres URL enregistrées : local, dev et production sont ainsi à un clic l'un de l'autre.
#Ajouter un projet
- Fichier → Ouvrir un dossier de projet… (⌘O / CtrlO), Ajouter un projet dans la barre latérale, ou Ajouter un projet… dans le menu des projets de la barre de titre.
- Choisissez la provenance du projet :
- Sur cet ordinateur : choisissez un dossier.
- Cloner depuis GitHub / GitLab : choisissez l'un de vos dépôts (listés grâce à votre connexion
ghouglab) ou collez une URL, choisissez le dossier parent, et Ferret le clone puis l'ouvre. - Ouvrir via SSH : choisissez un hôte dans
~/.ssh/config. Le terminal et les agents s'exécutent sur la machine distante ; les relectures restent sur cet ordinateur.
Par défaut, le nom est celui du dossier. Ajouter un dossier déjà enregistré l'ouvre simplement (sur macOS et Windows, les chemins sont comparés sans tenir compte de la casse). Depuis le menu de la barre latérale, vous pouvez Renommer un projet ou le Retirer de la liste. Le retirer ne supprime jamais le dossier.
Les terminaux s'ouvrent dans le dossier du projet, et les relectures sont enregistrées sous <project>/.ferret/.
#Enregistrer des URL
- Ouvrez la page dans le navigateur intégré.
- Cliquez sur + (Enregistrer l'URL actuelle) dans la barre d'outils du navigateur. L'URL actuelle est préremplie.
- Saisissez un Nom et cliquez sur Enregistrer.
Chaque URL enregistrée a un type, sous Ce que vous relisez : App (l'application que vous développez), Design (Figma, Penpot, Canva, un prototype) ou Doc / spécification (Google Docs, Notion, Confluence, une spécification Markdown sur GitHub, un PDF). Le type est déduit de l'URL et vous pouvez le changer. Voir Relire des designs et des documents, pas seulement du code.
Seules les URL http:// et https:// sont acceptées. Pour une URL d'application, si vous gardez le nom proposé, il est déduit de l'hôte :
| Hôte | Nom |
|---|---|
localhost, 127.*, ::1, 0.0.0.0, *.localhost | local |
contient dev, develop, development | dev |
contient stg, stage, staging | stg |
| tout autre hôte | prd |

#Panneau des cibles de relecture
En mode Retours, le panneau Cibles de relecture, à droite, liste tout ce que vous pouvez relire pour le projet actuel. Changer de cible n'arrête pas l'enregistrement. Affichez ou masquez le panneau avec Présentation → Afficher/masquer les cibles de relecture (⌘⇧K / CtrlShiftK) ou Masquer le panneau.
- Cibles : les URL enregistrées du projet. Sous chacune se trouve l'arborescence des pages que vous avez visitées sur ce site. Les sites visités qui ne sont pas enregistrés apparaissent dans leurs propres groupes.
- Fichiers : le dossier du projet. Un fichier s'ouvre en aperçu (Markdown et Mermaid rendus, autres textes en lecture seule), ce qui permet aussi de relire de la documentation. Le crayon (Ouvrir dans l'éditeur) l'ouvre dans l'éditeur.
Filtrer les cibles filtre à la fois les cibles, les pages et les fichiers, avec la même recherche approximative que Aller au fichier…. Dans la liste, ↑ ↓ Enter ou 1–9 changent de cible. Ouvrir une URL… ouvre une URL ponctuelle, et Enregistrer dans les URL du projet la conserve.
Les cibles proviennent de projects[].urls dans settings.json (voir l'exemple). Chaque entrée a besoin d'une url, d'une launchCommand (exécutée dans un terminal, par exemple pour lancer une application de bureau) ou d'un windowMatch (la fenêtre à enregistrer), et peut avoir un purpose (app, design ou doc). Choisir une cible de type fenêtre en fait la source d'enregistrement : ce n'est donc pas possible pendant un enregistrement. Les pages visitées sont mémorisées par projet, sur cette machine uniquement (jusqu'à 200).
#Ouvrir et changer d'environnement
Cliquez sur une URL enregistrée pour l'ouvrir. Si la page actuelle relève d'une autre URL enregistrée, Ferret conserve le chemin, la query et le hash, et ne remplace que l'origine. Par exemple, sur http://localhost:3000/pricing?plan=pro, cliquer sur prd ouvre https://example.com/pricing?plan=pro.
La puce correspondant à la page actuelle (préfixe le plus long) est mise en évidence. Faites un clic droit sur une puce ou utilisez son icône de crayon pour la modifier ou la Supprimer. À l'ouverture d'un projet sans URL précédente, sa première URL enregistrée se charge.
Les puces sont regroupées par type : d'abord les URL d'application, puis les designs, puis les documents, avec un séparateur et une icône pour chaque type. Passer à un design ou à un document, ou en revenir, ouvre son URL enregistrée telle quelle, sans reporter le chemin.
#Relire des designs et des documents, pas seulement du code
Les retours ne portent pas forcément sur du code. Tout ce qui s'ouvre dans le navigateur intégré peut être enregistré et annoté au stylo de la même façon : un design Figma ou Penpot, un prototype, une spécification dans Google Docs ou Notion, un document de conception sur GitHub, un PDF. Enregistrez ces URL dans le projet avant la relecture, à côté de local et dev.
- Ouvrez Modifier le projet… depuis le menu de la barre latérale (ou cliquez sur + dans la barre d'outils du navigateur), puis Ajouter une cible.
- Collez l'URL. Un lien
figma.comdevient Design et un liendocs.google.comounotion.sodevient Doc / spécification, nommésFigmaouSpec. Changez le type sous Ce que vous relisez si la déduction est fausse (par exemple pour un prototype sur votre propre serveur). - Ouvrez la cible et connectez-vous une fois dans le navigateur intégré si le site le demande. Le navigateur conserve ses cookies d'un lancement à l'autre : vous restez connecté.
- Enregistrez comme d'habitude : parlez, pointez, dessinez sur le design ou le document.
Les remarques enregistrées sur un design ou un document sont étiquetées avec ce type dans l'onglet Remarques et dans feedback.md, et l'instruction envoyée à l'agent le précise. L'agent modifie alors le design ou le document plutôt que le code :
- Si le document se trouve dans le projet (une spécification Markdown, un ADR), l'agent modifie ce fichier.
- S'il ne peut pas le modifier (un fichier Figma, un Google Doc), l'agent marque la remarque Question de l’agent en indiquant la modification exacte à faire, pour que vous l'appliquiez ou la transmettiez.
Exemple : en lisant la spécification des tarifs dans Google Docs, vous entourez le tableau des formules et dites « la formule Pro est maintenant à 9 800 yens, pas 8 800 ». feedback.md liste la remarque sous la cible Spec avec Kind: document, et l'agent répond avec la phrase corrigée pour la spécification au lieu de toucher au code de la page des tarifs. Enregistrez la spécification et l'application en cours d'exécution dans le même enregistrement : les remarques sont séparées par cible, et l'agent peut mettre à jour la spécification d'abord, puis le code qui l'implémente.
Les pages non enregistrées sur figma.com, docs.google.com, notion.so et des hôtes similaires sont aussi reconnues. Les fichiers du dossier du projet (Markdown, Mermaid) se relisent depuis la liste Fichiers du panneau Cibles de relecture.
Aider à traduire cette page sur GitHub (s'ouvre dans un nouvel onglet)