[!IMPORTANT] This extension was developed entirely with the assistance of Claude Code and Gemini CLI, with no real coding skills from the author. Use at your own risk.
This Raycast extension allows you to quickly search for legal and financial information about a French company using its SIREN or SIRET number. It connects directly to the INPI API to provide up-to-date and reliable data.
[Instructions to come once the extension is published]
Clone this repository:
git clone https://github.com/fma16/french-company-search.git
cd french-company-search
Install dependencies:
npm install
Import the extension into Raycast:
npm run dev
Create an INPI Account
Go to data.inpi.fr
Create an account if you don't have one
Log in to your personal space
Request API Access
In your personal space, navigate to the API section
Request access to the National Register of Companies API
Wait for approval
Retrieve Your Credentials
Once access is approved, note your username (email) and password
These credentials will be required to configure the extension
Launch Raycast and search for "Search Company"
On first use, Raycast will automatically open the preferences
Enter your INPI credentials:
INPI Username: Your INPI login email
INPI Password: Your INPI password
The credentials are stored securely by Raycast
The extension generates standardized French legal text using two different templates depending on the entity type:
La société [DENOMINATION]
[FORME JURIDIQUE] au capital de [CAPITAL] âŹ
Immatriculée au RCS de [VILLE] sous le n° [NUMERO_RCS]
Dont le siÚge social est situé [ADRESSE]
Représentée aux fins des présentes par [REPRESENTANT] en sa qualité de [ROLE], dûment [habilité/habilitée].
[Monsieur/Madame] [PRENOM] [NOM]
[Né/Née](e) le [DATE] à [LIEU]
De nationalité [NATIONALITE]
Demeurant [ADRESSE]
N° : [SIREN]
This extension relies on open and official data sources to ensure the quality of the information:
INPI API: The main company information (name, capital, representatives, etc.) is retrieved in real-time via the official API of the Institut National de la Propriété Industrielle (INPI).
Datainfogreffe: To ensure the accuracy of the RCS (Trade and Companies Register) city of registration, the extension uses the Référentiel Communes - Greffes dataset. This dataset is provided by Datainfogreffe and is used in accordance with the Licence Ouverte / Open Licence.
Open Raycast and type "Search Company" or use your configured shortcut
Enter the SIREN or SIRET of the desired company (9 or 14 digits)
Press Enter to start the search
View the results in the Raycast interface
Copy the summary by pressing Cmd+C
or using the "Copy to Clipboard" button
123456789
)12345678901234
) - only the first 9 digits (SIREN) will be usedIn development mode, the extension logs additional information to the console:
# View Raycast logs
tail -f ~/Library/Logs/Raycast/raycast.log
If you encounter a bug:
Enable development mode with npm run dev
Reproduce the issue
Check the console logs
Open an issue on GitHub with the details
Contributions are welcome!
Fork the project
Create a feature branch (git checkout -b feature/new-feature
)
Commit your changes (git commit -m 'feat: add new feature'
)
Push to the branch (git push origin feature/new-feature
)
Open a Pull Request
This extension features a comprehensive testing architecture with hybrid CI/CD strategy, built-in performance monitoring, and complete troubleshooting diagnostics. See TESTING_GUIDE.md for complete details.
# Unit tests (fast, no network)
npm run test:unit
# Integration tests with mocked data (CI/CD compatible)
npm run test:integration
# Performance tests (benchmarks)
npm run test:performance
# Complete test suite
npm run test:full
# Tests with real INPI API (uses Raycast preferences automatically)
npm run test:integration:real
# Or with environment variables
INPI_USERNAME=your_user INPI_PASSWORD=your_pass npm run test:integration:real
assets/mocked-api-responses.json
)Test Type | Count | Execution Time | Coverage |
---|---|---|---|
Unit Tests | 56 | ~0.4s | Core business logic |
Integration Tests (Mocked) | 25 | ~2.9s | End-to-end workflows |
Performance Tests | 6 | ~0.3s | Speed & memory benchmarks |
Total | 87 | ~3.6s | Complete functionality |
# Navigate to local directory
cd local/
# Run the dataset generator (requires INPI credentials)
npx ts-node generate-mock-dataset.ts
The mock dataset contains real API responses from 10 different company types (SA, SARL, SAS, Auto-entrepreneur, etc.) for comprehensive testing coverage.
The extension uses court registry (greffe) data to determine the correct RCS registration city for companies. This system has been optimized for performance and maintainability.
# Compress existing greffe data (one-time or after updates)
npm run compress-greffes
# Build new greffe index from CSV source (when available)
npm run build-greffes
assets/
âââ greffes-index.json # Original full dataset (1.5MB)
âââ greffes-index-compressed.json # Optimized dataset (251KB)
âââ role-mappings.json # Legal role mappings
data/
âââ referentiel.csv # Source CSV (when updating data)
scripts/
âââ compress-greffes.ts # Compression utility
Download Latest Data
data/referentiel.csv
Rebuild Index
npm run build-greffes # Generate from CSV
npm run compress-greffes # Compress for performance
npm run test # Validate accuracy
Validate Changes
The system uses a hybrid approach:
[!IMPORTANT] Cette extension a été entiÚrement développée avec l'assistance de Claude Code et Gemini CLI, sans réelle compétence en code de la part de l'auteur. A utiliser à ses risques et périls.
Cette extension Raycast vous permet de rechercher rapidement les informations légales et financiÚres d'une entreprise française en utilisant son numéro SIREN ou SIRET. Elle se connecte directement à l'API de l'INPI pour fournir des données à jour et fiables.
[Instructions à venir une fois l'extension publiée]
Clonez ce repository :
git clone https://github.com/fma16/french-company-search.git
cd french-company-search
Installez les dépendances :
npm install
Importez l'extension dans Raycast :
npm run dev
Créer un compte INPI
Rendez-vous sur data.inpi.fr
Créez un compte si vous n'en avez pas
Connectez-vous Ă votre espace personnel
Demander l'accĂšs Ă l'API
Dans votre espace personnel, naviguez vers la section API
Demandez l'accĂšs Ă l'API du Registre National des Entreprises
Attendez l'approbation
Récupérer vos identifiants
Une fois l'accÚs approuvé, notez votre nom d'utilisateur (email) et mot de passe
Ces identifiants seront nécessaires pour configurer l'extension
Lancez Raycast et recherchez "Rechercher une entreprise"
Si c'est la premiÚre utilisation, Raycast ouvrira automatiquement les préférences
Renseignez vos identifiants INPI :
Nom d'utilisateur INPI : Votre email de connexion INPI
Mot de passe INPI : Votre mot de passe INPI
Les identifiants sont stockés de maniÚre sécurisée par Raycast
L'extension génÚre du texte juridique français standardisé en utilisant deux modÚles différents selon le type d'entité :
La société [DENOMINATION]
[FORME JURIDIQUE] au capital de [CAPITAL] âŹ
Immatriculée au RCS de [VILLE] sous le n° [NUMERO_RCS]
Dont le siÚge social est situé [ADRESSE]
Représentée aux fins des présentes par [REPRESENTANT] en sa qualité de [ROLE], dûment [habilité/habilitée].
[Monsieur/Madame] [PRENOM] [NOM]
[Né/Née](e) le [DATE] à [LIEU]
De nationalité [NATIONALITE]
Demeurant [ADRESSE]
N° : [SIREN]
Cette extension s'appuie sur des sources de données ouvertes et officielles pour garantir la qualité des informations :
API INPI : Les informations principales sur les entreprises (dénomination, capital, représentants, etc.) sont récupérées en temps réel via l'API officielle de l'Institut National de la Propriété Industrielle (INPI).
Datainfogreffe : Pour assurer l'exactitude de la ville d'immatriculation au RCS, l'extension utilise le jeu de données Référentiel Communes - Greffes. Ce jeu de données est fourni par Datainfogreffe et est utilisé conformément à la Licence Ouverte / Open Licence.
Ouvrir Raycast et tapez "Rechercher une entreprise" ou utilisez le raccourci configuré
Entrez le SIREN ou SIRET de l'entreprise recherchée (9 ou 14 chiffres)
Appuyez sur Entrée pour lancer la recherche
Consultez les résultats dans l'interface Raycast
Copiez le résumé en appuyant sur Cmd+C
ou via le bouton "Copy to Clipboard"
123456789
)12345678901234
) - seuls les 9 premiers chiffres (SIREN) seront utilisésEn mode développement, l'extension log des informations supplémentaires dans la console :
# Voir les logs Raycast
tail -f ~/Library/Logs/Raycast/raycast.log
Si vous rencontrez un bug :
Activez le mode développement avec npm run dev
Reproduisez le problĂšme
Consultez les logs de la console
Ouvrez une issue sur GitHub avec les détails
Les contributions sont les bienvenues !
Fork le projet
Créez une branche feature (git checkout -b feature/nouvelle-fonctionnalite
)
Committez vos changements (git commit -m 'feat: ajouter nouvelle fonctionnalité'
)
Push vers la branche (git push origin feature/nouvelle-fonctionnalite
)
Ouvrez une Pull Request
Cette extension dispose d'une architecture de tests complÚte avec stratégie CI/CD hybride, monitoring de performance intégré, et diagnostics de dépannage complets. Voir TESTING_GUIDE.md pour tous les détails.
# Tests unitaires (rapides, sans réseau)
npm run test:unit
# Tests d'intégration avec données mockées (compatible CI/CD)
npm run test:integration
# Tests de performance (benchmarks)
npm run test:performance
# Suite complĂšte de tests
npm run test:full
# Tests avec l'API INPI réelle (utilise automatiquement vos préférences Raycast)
npm run test:integration:real
# Ou avec des variables d'environnement
INPI_USERNAME=votre_user INPI_PASSWORD=votre_pass npm run test:integration:real
assets/mocked-api-responses.json
)Type de Test | Nombre | Temps d'Exécution | Couverture |
---|---|---|---|
Tests Unitaires | 56 | ~0,4s | Logique métier principale |
Tests d'Intégration (Mockés) | 25 | ~2,9s | Flux de bout en bout |
Tests de Performance | 6 | ~0,3s | Benchmarks vitesse & mémoire |
Total | 87 | ~3,6s | Fonctionnalité complÚte |
# Naviguer vers le répertoire local
cd local/
# Lancer le générateur de dataset (nécessite identifiants INPI)
npx ts-node generate-mock-dataset.ts
Le dataset de mock contient des réponses API réelles de 10 types d'entreprises différentes (SA, SARL, SAS, Auto-entrepreneur, etc.) pour une couverture de test complÚte.