Skip to main content

Présentation du Linkly AI CLI

Le Linkly AI CLI est un outil en ligne de commande qui se connecte au service MCP de Linkly AI Desktop, vous permettant de rechercher, parcourir et lire vos documents locaux depuis le terminal. Il sert également de passerelle entre les AI Agents (comme Claude Desktop, Cursor) et Linkly AI.

Recherche en terminal

Recherchez directement vos documents depuis la ligne de commande, idéal pour les développeurs et les utilisateurs avancés

Passerelle MCP

Fonctionne en mode MCP stdio, permettant à Claude Desktop, Cursor et d’autres outils IA d’appeler Linkly AI

Installation

Exécutez dans le terminal :
Ou installez via Homebrew :
Si Linkly AI Desktop est déjà installé, vous pouvez aussi installer le CLI depuis l’application de bureau : à l’écran « Connecter un agent » de l’assistant de premier lancement, cliquez sur « Installer » pour installer à la fois le CLI et les Skills ; ou, dans la zone « Avancé » de la page « Utilisation par les agents » de la fenêtre principale, cliquez sur « Installer » sur la ligne « Linkly AI CLI ». Si la fenêtre « Une dernière étape » apparaît, cliquez sur « Configurer » pour que le terminal puisse exécuter directement la commande linkly.
Après l’installation, vérifiez :
Par défaut, le CLI découvre et se connecte à l’application Linkly AI Desktop locale via le fichier ~/.linkly/port. Vous pouvez également vous connecter à un appareil distant via le réseau local ou le tunnel cloud — voir Modes de connexion ci-dessous.

Méthodes d’utilisation

Le CLI suit le flux de travail progressif search → grep ou outline → read : d’abord rechercher pour trouver les documents cibles, puis utiliser grep pour localiser des motifs ou consulter le sommaire pour comprendre la structure, et enfin lire le contenu spécifique. Lorsque l’utilisateur évoque un conteneur (“dans mes notes Notion”, “dans mon dossier Dropbox”) dont le chemin réel est inconnu, appelez find-paths avant search pour le localiser.
Chaque sortie de commande réussie se termine par une ligne d’horodatage UTC [meta] now=2026-05-08T...Z (ou un champ _meta.now au niveau supérieur en mode JSON). Il s’agit de métadonnées que Desktop fournit aux assistants IA pour calculer des dates relatives comme « le mois dernier ». Les utilisateurs humains peuvent l’ignorer ; pour le scriptage, il est recommandé de filtrer la dernière ligne avant l’analyse ultérieure.

Vérifier l’état de la connexion

Retourne l’état de fonctionnement de Linkly AI Desktop, le numéro de version, le nombre de documents indexés et l’état de l’indexation.

Rechercher des documents

Recherche dans vos documents locaux et retourne la liste des résultats les plus pertinents, incluant le titre, le chemin, la pertinence et un extrait du contenu. Paramètres courants :
--modified-after / --modified-before acceptent le format ISO 8601 UTC : une date simple 2024-01-01 (interprétée comme 00:00:00Z) ou un horodatage RFC 3339 complet 2024-01-01T00:00:00Z. --time-sort accepte newest / oldest ; omettez-le pour conserver l’ordre de pertinence hybride BM25 + vecteur.
--scope notes restreint les résultats à vos notes et ignore --library et --path-glob — ces filtres sont silencieusement écartés plutôt que rejetés.

Consulter le sommaire d’un document

Obtient le sommaire structuré et les métadonnées d’un document. Le DOC_ID est récupéré depuis les résultats de recherche. Vous pouvez consulter plusieurs documents à la fois, ou transmettre les ID via un pipe avec - :
Quand le sommaire est long, certains nœuds sont repliés. Utilisez --expand pour indiquer les ID des nœuds à déplier, séparés par des virgules (les autres restent repliés) ; sans cette option, le choix des nœuds dépliés est automatique :
La fonctionnalité de sommaire est optimale pour les documents Markdown, DOCX, DOC, PowerPoint (PPTX), XLSX, CSV, EPUB et RTF, dont la structure de titres peut être analysée. Pour le texte brut ou les PDF sans signets, il est recommandé d’utiliser directement la commande read.

Rechercher des motifs dans les documents

Recherche les correspondances d’une expression régulière dans un ou plusieurs documents. À utiliser lorsque vous devez trouver un texte précis (termes, noms, dates, identifiants, etc.) :

Lire le contenu d’un document

Lit le contenu complet d’un ou plusieurs documents, avec des numéros de ligne. Pour les documents longs, vous pouvez lire par pages :
Avec --json, plusieurs documents sont affichés au format JSON Lines — un objet par ligne. Un seul ID produit toujours un objet unique : les scripts existants ne sont donc pas affectés.
Stratégie de pagination : Par défaut, chaque lecture récupère 200 lignes (maximum 500). Pour les documents longs, ajustez --offset pour lire progressivement :

Localisation de chemins (find-paths)

Effectue une correspondance approximative des mots-clés sur le champ chemin de fichier des documents indexés, agrège les correspondances au niveau du dossier et retourne les meilleurs candidats. Cet outil est positionné comme un complément de search : lorsque l’utilisateur nomme un conteneur (“dans mes notes Notion”, “dans mon dossier Dropbox”) sans en connaître le chemin sur le disque, appelez d’abord find-paths, puis transmettez un segment distinctif du chemin retourné comme --path-glob à search. Lorsqu’un nom de dossier contient des métacaractères glob (* ? [), utilisez directement le champ path_glob retourné — il est déjà échappé pour correspondre littéralement à ce dossier. Flux de travail typique en deux étapes :
Correspondance par variantes : --patterns prend une liste de mots-clés séparés par des virgules, combinés en interne par OR contre le chemin. Passez plusieurs variantes en un seul appel (paires de traduction, casse, identifiants réels d’application) pour maximiser le rappel au premier coup :
find-paths est un outil de “recherche de dossiers”, pas de “recherche de fichiers” : seules les correspondances sur des segments de répertoire comptent. Si les mots-clés ne correspondent qu’au segment du nom de fichier (un “fichier orphelin”), ils sont silencieusement écartés. Si une requête ne renvoie aucun dossier alors que vous attendez des correspondances, repassez à un appel direct à linkly search sans --path-glob.

Bibliothèques et vue d’ensemble (list-libraries, explore)

Liste les bibliothèques disponibles. Les noms renvoyés peuvent servir dans l’option --library des autres commandes.
Donne une vue d’ensemble de tous les documents ou d’une bibliothèque, pratique pour savoir ce qui est disponible avant de chercher. --library accepte un nom de bibliothèque ou local://<id> ; avec --remote, vous pouvez aussi passer cloud://<owner>/<slug>.

Notes

Linkly AI conserve de courtes notes Markdown dans le dossier de votre bibliothèque. Ce sont des fichiers locaux ordinaires — jamais téléversés — et ils sont indexés comme n’importe quel autre document.
La modification d’une note existante nécessite son note_id et sa version actuelle, tous deux retournés par linkly list --scope notes :
Les #tag présents dans le corps de la note sont les tags de celle-ci — --tags ne fait qu’ajouter (pour retirer un tag, effacez son #tag du contenu). Sur les Desktop antérieurs à la 0.11.0, en revanche, --tags est obligatoire lors d’une modification et vaut remplacement intégral. --base-version est un contrôle de concurrence : si la note a changé depuis que vous l’avez lue, la commande échoue avec NOTE_VERSION_CONFLICT au lieu d’écraser le contenu. Le contenu d’une note se limite à un sous-ensemble restreint de Markdown (paragraphes, gras, barré, listes) ; les titres, le code, les liens et les tableaux sont rejetés.

Diagnostiquer la connexion (doctor)

Vérifie la connexion à l’application de bureau locale, ainsi que la clé distante ou la connexion réseau local si vous en avez enregistré une. Chaque connexion affiche son propre groupe de résultats, avec une suggestion de correction en cas d’échec. La commande sort avec 0 dès qu’au moins une connexion fonctionne. Avec --remote, --lan ou --endpoint / --token, seule cette connexion est vérifiée, et le code de sortie ne dépend que d’elle :

Gérer les Skills (skills)

install installe les Skills dans ~/.agents/skills/linkly-ai et crée un lien vers ce dossier dans ~/.claude/skills/linkly-ai. Voir Utiliser les Skills. Quand une nouvelle version des Skills est disponible, la sortie des commandes se termine par une ligne d’information, au plus une fois toutes les 4 heures. Définissez la variable d’environnement LINKLY_NO_SKILLS_HINT=1 pour la désactiver. Si vous la définissez dans la configuration de votre client MCP, le pont linkly mcp n’affiche plus non plus cette information.

Complétion du shell

Affiche un script de complétion pour bash, zsh, fish, powershell ou elvish.
Ouvrez ensuite un nouveau shell. Le script est statique — il ne contacte jamais Linkly AI Desktop : il fonctionne donc même lorsque l’application est fermée et ne peut pas ralentir votre invite de commande.

Mode MCP

Fonctionne en mode serveur MCP stdio, exposant les outils de Linkly AI aux clients IA compatibles MCP. C’est l’amont qui détermine ce que le client peut atteindre :
--remote est le seul mode passerelle capable d’atteindre les bibliothèques cloud. Connectez-vous d’abord avec linkly auth login (voir Mode distant).
La passerelle ne peut pas se connecter à une application de bureau située sur un autre appareil du réseau local. Les clients IA du réseau local doivent se connecter directement à l’application de bureau en HTTP (voir Accès réseau local) ; les clients qui ne prennent en charge que stdio peuvent utiliser linkly mcp --remote à la place.
--client <nom> indique le nom de l’application dans le journal d’accès de l’application de bureau, comme dans les exemples ci-dessous. Avec --remote, ce nom est également envoyé à la passerelle cloud. Configurer Claude Desktop et d’autres applications IA locales : Ajoutez le contenu suivant au fichier de configuration de Claude Desktop ou d’autres applications :
Éditez ~/Library/Application Support/Claude/claude_desktop_config.json :
Configurer Cursor : Dans Cursor, ouvrez Settings → MCP Servers → Add Server, et ajoutez :
  • Name: linkly-ai
  • Command: linkly mcp --client cursor

Mettre à jour le CLI

Vérifie et met à jour automatiquement vers la dernière version. Le CLI vérifie également les mises à jour en arrière-plan à chaque démarrage ; si une nouvelle version est disponible, il vous invitera à exécuter cette commande.

Modes de connexion

Le CLI prend en charge trois façons de se connecter à votre base de connaissances Linkly AI : Sans --lan ni --remote, le CLI se connecte uniquement à l’application de bureau de cette machine.
Une clé API (qui commence par lkai_) et un jeton d’accès LAN équivalent à une clé d’accès à votre bibliothèque locale. Ne les collez dans aucune conversation avec une IA (ChatGPT, Claude, Cursor, Codex, Doubao, Kimi, etc.), et ne laissez pas un assistant IA exécuter linkly auth set-key à votre place : le contenu des conversations est envoyé au fournisseur du modèle et conservé dans l’historique, et certaines applications le synchronisent dans le cloud. Pour qu’un assistant IA se connecte à distance, utilisez la connexion en deux étapes linkly auth login ci-dessous : vous n’avez qu’à autoriser dans le navigateur. Exécutez set-key vous-même, dans votre propre terminal. Si une clé est déjà apparue dans une conversation, révoquez-la et créez-en une nouvelle dans le tableau de bord ; un jeton LAN se régénère dans « Voir la configuration de connexion MCP ».

Mode local (par défaut)

Aucune option supplémentaire n’est nécessaire. Le CLI lit ~/.linkly/port pour trouver l’application de bureau en cours d’exécution :

Mode réseau local

Connectez-vous à une instance de Linkly AI qui s’exécute sur un autre appareil de votre réseau local. L’adresse et le jeton se récupèrent sur cet appareil : dans son application de bureau, ouvrez la page « Utilisation par les agents », activez « Autoriser l’accès LAN » dans la zone « Gestion », puis cliquez sur « Voir la configuration de connexion MCP » dans la zone « Intégration » et copiez-les depuis la section « LAN » (voir Accès réseau local). Enregistrez-les ensuite une fois sur cette machine, vous-même, dans votre propre terminal :
Utilisez ensuite --lan avec n’importe quelle commande :
Si vous préférez ne rien enregistrer, vous pouvez aussi passer l’adresse et le jeton directement à chaque fois :
Si le jeton est régénéré, exécutez à nouveau auth set-key --lan avec le nouveau jeton. Lorsque vous n’en avez plus besoin, supprimez la configuration réseau local enregistrée avec linkly auth logout --lan.
L’enregistrement d’une connexion réseau local et l’option --lan nécessitent le CLI 1.0.0 ou plus récent. Le CLI ne peut enregistrer qu’une seule connexion réseau local : exécuter à nouveau auth set-key --lan écrase l’adresse et le jeton enregistrés. Pour vous connecter ponctuellement à un autre appareil, utilisez --endpoint et --token.

Mode distant

Connectez-vous à votre base de connaissances depuis n’importe où via le tunnel cloud. Commencez par vous identifier une fois :
Le CLI affiche un lien à usage unique et un code de confirmation (XXXX-XXXX), et ouvre le navigateur quand il le peut. Ouvrez le lien sur n’importe quel appareil (votre téléphone convient si le CLI tourne sur un serveur), connectez-vous, vérifiez que le code correspond à celui affiché dans le terminal, puis cliquez sur Autoriser. Le CLI enregistre alors une API Key nouvellement émise. Le lien est valable 10 minutes ; la page indique le compte que vous autorisez, le code de confirmation, l’appareil qui demande l’accès (tel qu’il se déclare lui-même) et les autorisations accordées. Si vous ne voulez pas que le CLI tente d’ouvrir le navigateur, ajoutez --no-browser : il se contente alors d’afficher le lien. Utilisez ensuite --remote avec n’importe quelle commande :
Les agents et les scripts qui ne peuvent pas attendre au premier plan découpent la connexion en deux étapes. L’agent vous transmet seulement le lien et le code ; le CLI enregistre lui-même la clé, qui ne passe donc jamais par la conversation. Exécutez-les dans le même environnement, avec le même utilisateur système et le même répertoire de configuration :
--wait abandonne au bout de 300 secondes (modifiable avec --timeout) avec le code timeout ; relancez-le tant que le lien est encore valable. En mode --json, les échecs portent un code : timeout, expired, denied, no_pending_login, login_in_progress (utilisez --wait, ou --restart pour recommencer), already_logged_in (exécutez d’abord linkly auth logout) et network. Chaque message indique la commande à exécuter ensuite. Chaque connexion crée une nouvelle API Key nommée cli-<hostname>-xxxx, visible et révocable dans le tableau de bord. Un compte peut détenir jusqu’à 10 API Keys ; si la limite est atteinte, la page d’autorisation le signale. Se connecter prouve seulement de quel compte il s’agit : cela ne garantit pas que vos bibliothèques cloud ou votre application de bureau sont joignables. Vous préférez coller une clé ? Créez-en une dans le tableau de bord et enregistrez-la vous-même, dans votre propre terminal :
Vous pouvez à tout moment vérifier ou supprimer la clé enregistrée :
logout révoque aussi une clé émise par auth login : elle cesse de fonctionner en 90 secondes environ. Une clé enregistrée avec set-key est seulement supprimée de cette machine, car elle peut servir ailleurs ; révoquez-la dans le tableau de bord si nécessaire. Les identifiants, ainsi qu’une connexion encore en attente d’autorisation, se trouvent par défaut dans ~/.linkly. Définissez LINKLY_CONFIG_DIR pour les placer ailleurs, par exemple un répertoire par utilisateur lorsqu’un agent sert plusieurs personnes depuis le même compte système. Chaque répertoire contient un seul compte. La détection de l’application de bureau locale (~/.linkly/port) n’est pas affectée.
--lan, --remote et --endpoint ne peuvent pas être combinés. --endpoint et --token doivent être fournis ensemble ; la configuration réseau local enregistrée est alors ignorée.

Description des paramètres

Options globales

--lan, --endpoint, --token et --remote sont disponibles sur les commandes documentaires (search, grep, outline, read, list, note-save, find-paths, explore, list-libraries) ainsi que sur status et doctor. La commande mcp n’accepte que --remote. --json est sans effet sur auth set-key, self-update, skills install, skills update, completions et mcp.

Codes de sortie

Par défaut, le CLI utilise les deux valeurs conventionnelles : 0 en cas de succès, 1 en cas d’échec. Notez qu’un « succès » inclut le fait de ne rien trouver — une recherche sans résultat sort tout de même avec le code 0. Les erreurs d’arguments (argument obligatoire manquant, valeur invalide, etc.) sortent toujours avec le code 2, avec ou sans --exit-code. Passez --exit-code pour distinguer les deux cas :
Cette option est facultative car elle change la signification de 1. Sans elle, 1 signifie « échec » — ce que testent les scripts existants.

Paramètres de find-paths

Paramètres de outline

Paramètres de grep

Paramètres de read

Paramètres de list

Paramètres de note-save

Paramètres de completions