> ## Documentation Index
> Fetch the complete documentation index at: https://linkly.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Utiliser Linkly AI CLI

> Découvrez comment utiliser le Linkly AI CLI pour bénéficier d'une plus grande flexibilité et d'une expérience geek.

## 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.

<CardGroup cols={2}>
  <Card title="Recherche en terminal" icon="terminal" iconType="duotone">
    Recherchez directement vos documents depuis la ligne de commande, idéal pour
    les développeurs et les utilisateurs avancés
  </Card>

  <Card title="Passerelle MCP" icon="plug" iconType="duotone">
    Fonctionne en mode MCP stdio, permettant à Claude Desktop, Cursor et
    d'autres outils IA d'appeler Linkly AI
  </Card>
</CardGroup>

## Installation

<Tabs>
  <Tab title="macOS / Linux" icon="apple">
    Exécutez dans le terminal :

    ```bash theme={null}
    curl -sSL https://updater.linkly.ai/cli/install.sh | sh
    ```

    Ou installez via Homebrew :

    ```bash theme={null}
    brew tap LinklyAI/tap
    brew install linkly
    ```
  </Tab>

  <Tab title="Windows" icon="windows">
    Exécutez dans PowerShell :

    ```powershell theme={null}
    irm https://updater.linkly.ai/cli/install.ps1 | iex
    ```
  </Tab>

  <Tab title="Cargo" icon="box">
    Installez depuis [crates.io](https://crates.io/crates/linkly-ai-cli) (nécessite la chaîne d'outils Rust) :

    ```bash theme={null}
    cargo install linkly-ai-cli
    ```
  </Tab>
</Tabs>

Après l'installation, vérifiez :

```bash theme={null}
linkly --version
```

<Note>
  Le CLI nécessite que l'application Linkly AI Desktop soit lancée au préalable.
  Le CLI découvre et se connecte automatiquement au service MCP de l'application
  de bureau via le fichier `~/.linkly/port`.
</Note>

## Méthodes d'utilisation

Le CLI suit le flux de travail progressif **search → outline → read** : d'abord rechercher pour trouver les documents cibles, puis 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.

<Note>
  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.
</Note>

### Vérifier l'état de la connexion

```bash theme={null}
linkly status
```

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

```bash theme={null}
linkly search "mots-clés ou expression"
```

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 :**

```bash theme={null}
# Limiter le nombre de résultats (par défaut 20, maximum 50)
linkly search "conception API" --limit 5

# Filtrer par type de document
linkly search "compte-rendu de réunion" --type pdf,docx

# Sortie au format JSON (adapté au traitement par script)
linkly search "rapport budgétaire" --json

# Limiter par fenêtre temporelle (rapports trimestriels Q3 2024)
linkly search "quarterly report" --modified-after 2024-07-01 --modified-before 2024-09-30

# Trier par date ("le plus récent", "le plus ancien" — sans plage fixe)
linkly search "weekly retro" --time-sort newest --limit 5
```

<Tip>
  `--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.
</Tip>

### Consulter le sommaire d'un document

```bash theme={null}
linkly outline <DOC_ID>
```

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 :

```bash theme={null}
linkly outline id1 id2 id3
```

<Tip>
  La fonctionnalité de sommaire est optimale pour les documents Markdown, DOCX, PowerPoint (PPTX) et EPUB, 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`.
</Tip>

### Lire le contenu d'un document

```bash theme={null}
linkly read <DOC_ID>
```

Lit le contenu complet d'un document, avec des numéros de ligne. Pour les documents longs, vous pouvez lire par pages :

```bash theme={null}
# À partir de la ligne 50, lire 100 lignes
linkly read <DOC_ID> --offset 50 --limit 100
```

**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 :

```bash theme={null}
linkly read <DOC_ID> --offset 1 --limit 200    # Lignes 1-200
linkly read <DOC_ID> --offset 201 --limit 200  # Lignes 201-400
linkly read <DOC_ID> --offset 401 --limit 200  # Lignes 401-600
```

### Localisation de chemins (find-paths)

```bash theme={null}
linkly find-paths --patterns <mot-clé,mot-clé,...>
```

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 :**

```bash theme={null}
# Étape 1 : localiser le chemin réel
linkly find-paths --patterns Notion,notion --limit 5
# Supposons que cela retourne .../Documents/Notion-Export-abc/workspace (1240 fichiers)

# Étape 2 : rechercher dans ce conteneur
linkly search "shopping receipt" --path-glob "*Notion-Export*"
```

**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 :

```bash theme={null}
linkly find-paths --patterns Notion,notion,Notion-Export
linkly find-paths --patterns Slack,slack --library work-notes
```

<Tip>
  `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`.
</Tip>

### Mode MCP

```bash theme={null}
linkly mcp
```

Fonctionne en mode serveur MCP stdio, exposant les outils de Linkly AI aux clients IA compatibles MCP.

**Configurer Claude Desktop et d'autres applications IA locales :**

Ajoutez le contenu suivant au fichier de configuration de Claude Desktop ou d'autres applications :

<Tabs>
  <Tab title="macOS / Linux">
    Éditez `~/.config/Claude/claude_desktop_config.json` :

    ```json theme={null}
    {
      "mcpServers": {
        "linkly-ai": {
          "command": "linkly",
          "args": ["mcp"]
        }
      }
    }
    ```
  </Tab>

  <Tab title="Windows">
    Éditez `%APPDATA%\Claude\claude_desktop_config.json` :

    ```json theme={null}
    {
      "mcpServers": {
        "linkly-ai": {
          "command": "linkly",
          "args": ["mcp"]
        }
      }
    }
    ```
  </Tab>
</Tabs>

**Configurer Cursor :**

Dans Cursor, ouvrez Settings → MCP Servers → Add Server, et ajoutez :

* Name: `linkly-ai`
* Command: `linkly mcp`

### Mettre à jour le CLI

```bash theme={null}
linkly self-update
```

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.

## Description des paramètres

### Options globales

| Option             | Description                                                                                     |
| ------------------ | ----------------------------------------------------------------------------------------------- |
| `--endpoint <URL>` | Spécifier le point de terminaison MCP (par défaut, découverte automatique via `~/.linkly/port`) |
| `--json`           | Sortie au format JSON (adapté aux scripts et à l'automatisation)                                |
| `-V, --version`    | Afficher la version du CLI                                                                      |
| `-h, --help`       | Afficher l'aide                                                                                 |

### Paramètres de search

| Paramètre                 | Description                                                                                                                                                                    | Valeur par défaut |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- |
| `<QUERY>`                 | Mots-clés ou expression de recherche (obligatoire)                                                                                                                             | —                 |
| `--limit <N>`             | Nombre maximum de résultats retournés (1-50)                                                                                                                                   | 20                |
| `--type <TYPES>`          | Filtrer par type de document (séparés par des virgules, ex. `pdf,md,docx,epub`)                                                                                                | Tous              |
| `--library <NAME>`        | Restreindre la recherche à une bibliothèque spécifique                                                                                                                         | —                 |
| `--path-glob <PATTERN>`   | Filtrer par chemin de fichier ; recherché comme sous-chaîne (n'importe où, sans `*` en début ou fin). Lorsque le chemin réel est inconnu, exécutez d'abord `linkly find-paths` | —                 |
| `--modified-after <ISO>`  | Borne inférieure incluse sur la date de modification. ISO 8601 UTC : date simple `2024-01-01` ou complète `2024-01-01T00:00:00Z`                                               | —                 |
| `--modified-before <ISO>` | Borne supérieure incluse sur la date de modification. Même format que `--modified-after`                                                                                       | —                 |
| `--time-sort <MODE>`      | Réordonnement temporel : `newest` / `oldest`. Omettez pour conserver l'ordre de pertinence                                                                                     | —                 |

### Paramètres de find-paths

| Paramètre           | Description                                                                                                                                                                                                      | Valeur par défaut |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `--patterns <LIST>` | Liste de mots-clés séparés par des virgules (obligatoire). Plusieurs mots-clés sont combinés par OR ; passez plusieurs variantes (paires de traduction, casse). Insensible à la casse pour ASCII ; CJK littéral. | —                 |
| `--library <NAME>`  | Restreindre à une bibliothèque spécifique                                                                                                                                                                        | —                 |
| `--limit <N>`       | Nombre maximum de dossiers candidats (1-50)                                                                                                                                                                      | 10                |

### Paramètres de outline

| Paramètre | Description                                       | Valeur par défaut |
| --------- | ------------------------------------------------- | ----------------- |
| `<ID...>` | ID du document (obligatoire, plusieurs possibles) | —                 |

### Paramètres de read

| Paramètre      | Description                               | Valeur par défaut |
| -------------- | ----------------------------------------- | ----------------- |
| `<ID>`         | ID du document (obligatoire)              | —                 |
| `--offset <N>` | Numéro de ligne de départ (à partir de 1) | 1                 |
| `--limit <N>`  | Nombre de lignes à lire (maximum 500)     | 200               |
