À propos du projet

Semble est une bibliothèque de recherche de code conçue pour les agents de codage. Elle permet aux agents d'interroger une base de code en langage naturel et de recevoir uniquement les extraits de code pertinents, évitant ainsi les flux de travail grep-et-lecture qui consomment de grands contextes. Elle peut être utilisée comme serveur MCP, CLI autonome ou bibliothèque Python, et s'intègre avec des agents tels que Claude Code, Cursor, Codex et OpenCode. Les capacités clés incluent une indexation et une interrogation rapides uniquement sur CPU, la prise en charge de dépôts locaux et distants, la recherche multi-dépôts, le filtrage de contenu code/docs/config, et la découverte de code connexe. Les index sont mis en cache et mis à jour de manière incrémentale lorsque les fichiers changent. La sélection de fichiers respecte .gitignore et .sembleignore, avec des options pour forcer l'inclusion d'extensions non par défaut. Le pipeline de récupération combine des embeddings statiques Model2Vec avec une correspondance lexicale BM25, fusionnés via Reciprocal Rank Fusion et réordonnés avec des signaux sensibles au code tels que les boosts de définitions, le stemming d'identifiants, la cohérence des fichiers et les pénalités de bruit. Le projet rapporte des résultats de référence montrant une qualité de récupération comparable à un transformateur spécialisé en code, tout en étant nettement plus rapide en indexation et interrogation, avec des économies de tokens d'environ 99% par rapport à grep+read à rappel équivalent. Semble est distribué comme un paquet Python sous licence MIT. Il ne nécessite ni clés API, ni GPU, ni services externes, bien que le modèle d'embedding soit téléchargé depuis Hugging Face lors de la première utilisation. Un modèle personnalisé compatible Model2Vec peut être configuré via une variable d'environnement.