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

# Uso de Linkly AI CLI

> Aprenda a usar Linkly AI CLI para obtener mayor flexibilidad y una experiencia más técnica.

## Introducción a Linkly AI CLI

Linkly AI CLI es una herramienta de línea de comandos que, conectándose al servicio MCP de Linkly AI Desktop, le permite buscar, explorar y leer documentos locales desde la terminal. También funciona como puente entre AI Agent (como Claude Desktop, Cursor) y Linkly AI.

<CardGroup cols={2}>
  <Card title="Búsqueda en terminal" icon="terminal" iconType="duotone">
    Busque sus documentos directamente desde la línea de comandos, ideal para
    desarrolladores y usuarios avanzados
  </Card>

  <Card title="Puente MCP" icon="plug" iconType="duotone">
    Se ejecuta en modo MCP stdio, permitiendo que herramientas de IA como Claude
    Desktop y Cursor invoquen Linkly AI
  </Card>
</CardGroup>

## Instalación

<Tabs>
  <Tab title="macOS / Linux" icon="apple">
    Ejecute en la terminal:

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

    O instale mediante Homebrew:

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

  <Tab title="Windows" icon="windows">
    Ejecute en PowerShell:

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

  <Tab title="Cargo" icon="box">
    Instale desde [crates.io](https://crates.io/crates/linkly-ai-cli) (requiere la cadena de herramientas Rust):

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

Después de la instalación, verifique:

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

<Note>
  Antes de ejecutar CLI, debe iniciar la aplicación Linkly AI Desktop. CLI
  descubrirá y se conectará automáticamente al servicio MCP de la aplicación de
  escritorio a través del archivo `~/.linkly/port`.
</Note>

## Métodos de uso

CLI sigue el flujo de trabajo progresivo **search → outline → read**: primero buscar para encontrar el documento objetivo, luego ver el esquema para entender la estructura, y finalmente leer el contenido específico. Cuando el usuario menciona un contenedor ("en mis notas de Notion", "en mi carpeta de Dropbox") cuya ruta real no se conoce, llame a `find-paths` antes de `search` para localizarla.

<Note>
  Cada salida de comando exitosa termina con una línea de marca de tiempo UTC
  `[meta] now=2026-05-08T...Z` (o un campo `_meta.now` de nivel superior en modo
  JSON). Estos son metadatos que Desktop proporciona a los asistentes de IA para
  calcular fechas relativas como "el mes pasado". Los usuarios humanos pueden
  ignorarlos; al procesar con scripts, se recomienda filtrar la última línea
  antes del análisis posterior.
</Note>

### Verificar el estado de conexión

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

Devuelve el estado de ejecución de Linkly AI Desktop, la versión, el número de documentos indexados y el estado de la indexación.

### Buscar documentos

```bash theme={null}
linkly search "palabras clave o frase"
```

Busca en sus documentos locales y devuelve la lista de resultados más relevantes, incluyendo título, ruta, relevancia y resumen del contenido.

**Parámetros frecuentes:**

```bash theme={null}
# Limitar el número de resultados (predeterminado 20, máximo 50)
linkly search "diseño de API" --limit 5

# Filtrar por tipo de documento
linkly search "acta de reunión" --type pdf,docx

# Salida en formato JSON (adecuado para procesamiento por scripts)
linkly search "informe de presupuesto" --json

# Limitar por ventana temporal (informes trimestrales del Q3 2024)
linkly search "quarterly report" --modified-after 2024-07-01 --modified-before 2024-09-30

# Ordenar por fecha ("el más reciente", "el más antiguo" — sin rango fijo)
linkly search "weekly retro" --time-sort newest --limit 5
```

<Tip>
  `--modified-after` / `--modified-before` aceptan formato ISO 8601 UTC: una
  fecha simple `2024-01-01` (interpretada como `00:00:00Z`) o una marca de
  tiempo RFC 3339 completa `2024-01-01T00:00:00Z`. `--time-sort` acepta `newest`
  / `oldest`; omítalo para preservar el orden de relevancia híbrido BM25 +
  vectorial.
</Tip>

### Ver el esquema del documento

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

Obtiene el esquema estructurado y los metadatos del documento. `DOC_ID` se obtiene de los resultados de búsqueda. Permite ver múltiples documentos a la vez:

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

<Tip>
  La función de esquema funciona mejor con documentos Markdown, DOCX, PowerPoint (PPTX) y EPUB, cuyos
  títulos pueden ser analizados estructuralmente. Para texto plano o PDF sin
  marcadores, se recomienda usar directamente el comando `read`.
</Tip>

### Leer el contenido del documento

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

Lee el contenido completo del documento con números de línea. Para documentos extensos, puede leer por páginas:

```bash theme={null}
# Comenzar desde la línea 50, leer 100 líneas
linkly read <DOC_ID> --offset 50 --limit 100
```

**Estrategia de paginación:** Por defecto se leen 200 líneas por vez (máximo 500). Para documentos extensos, lea progresivamente ajustando `--offset`:

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

### Localización de rutas (find-paths)

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

Realiza una coincidencia aproximada de palabras clave contra el campo **ruta de archivo** de los documentos indexados, agrega las coincidencias a nivel de carpeta y devuelve los mejores candidatos. Está posicionada como una herramienta auxiliar de `search`: cuando el usuario nombra un contenedor ("en mis notas de Notion", "en mi carpeta de Dropbox") sin conocer su ruta en el disco, llame primero a `find-paths`, y luego pase un segmento distintivo de la ruta retornada como `--path-glob` a `search`. Cuando el nombre de una carpeta contiene metacaracteres glob (`* ? [`), use directamente el campo `path_glob` retornado — ya está escapado para coincidir literalmente con esa carpeta.

**Flujo de trabajo típico de dos pasos:**

```bash theme={null}
# Paso 1: localizar la ruta real
linkly find-paths --patterns Notion,notion --limit 5
# Supongamos que devuelve .../Documents/Notion-Export-abc/workspace (1240 archivos)

# Paso 2: buscar dentro de ese contenedor
linkly search "shopping receipt" --path-glob "*Notion-Export*"
```

**Coincidencia con variantes:** `--patterns` acepta una lista de palabras clave separadas por comas, combinadas internamente por OR contra la ruta. **Pase varias variantes en una sola llamada** (pares de traducción, mayúsculas/minúsculas, identificadores reales de aplicación) para maximizar la recuperación al primer intento:

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

<Tip>
  `find-paths` es una herramienta para "encontrar carpetas", no para "encontrar
  archivos": solo cuentan las coincidencias en **segmentos de directorio**. Si
  las palabras clave coinciden únicamente con el segmento de nombre de archivo
  (un "archivo huérfano"), se descartan silenciosamente. Si una consulta no
  devuelve carpetas a pesar de que espera coincidencias, recurra a llamar
  `linkly search` directamente sin `--path-glob`.
</Tip>

### Modo MCP

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

Se ejecuta en modo servidor MCP stdio, exponiendo las herramientas de Linkly AI a clientes de IA compatibles con MCP.

**Configurar aplicaciones de IA locales como Claude Desktop:**

Agregue el siguiente contenido al archivo de configuración de Claude Desktop u otras aplicaciones:

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

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

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

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

**Configurar Cursor:**

En Cursor, abra Settings → MCP Servers → Add Server y agregue:

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

### Actualizar CLI

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

Verifica y actualiza automáticamente a la última versión. CLI también comprueba actualizaciones en segundo plano con cada inicio y le notificará si hay una nueva versión disponible.

## Descripción de parámetros

### Opciones globales

| Opción             | Descripción                                                                                |
| ------------------ | ------------------------------------------------------------------------------------------ |
| `--endpoint <URL>` | Especificar endpoint MCP (por defecto, se descubre automáticamente desde `~/.linkly/port`) |
| `--json`           | Salida en formato JSON (adecuado para scripts y automatización)                            |
| `-V, --version`    | Mostrar la versión de CLI                                                                  |
| `-h, --help`       | Mostrar información de ayuda                                                               |

### Parámetros de search

| Parámetro                 | Descripción                                                                                                                                                                        | Predeterminado |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `<QUERY>`                 | Palabras clave o frase (obligatorio)                                                                                                                                               | —              |
| `--limit <N>`             | Número máximo de resultados (1-50)                                                                                                                                                 | 20             |
| `--type <TYPES>`          | Filtrar por tipo de documento (separado por comas, ej. `pdf,md,docx,epub`)                                                                                                         | Todos          |
| `--library <NAME>`        | Restringir la búsqueda a una biblioteca específica                                                                                                                                 | —              |
| `--path-glob <PATTERN>`   | Filtrar por ruta de archivo; búsqueda por subcadena (en cualquier posición, sin `*` al inicio o al final). Cuando la ruta real es desconocida, ejecute primero `linkly find-paths` | —              |
| `--modified-after <ISO>`  | Límite inferior inclusivo de la fecha de modificación. ISO 8601 UTC: fecha simple `2024-01-01` o completa `2024-01-01T00:00:00Z`                                                   | —              |
| `--modified-before <ISO>` | Límite superior inclusivo de la fecha de modificación. Mismo formato que `--modified-after`                                                                                        | —              |
| `--time-sort <MODE>`      | Reordenamiento temporal: `newest` / `oldest`. Omitir para mantener el orden de relevancia                                                                                          | —              |

### Parámetros de find-paths

| Parámetro           | Descripción                                                                                                                                                                                                            | Predeterminado |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `--patterns <LIST>` | Lista de palabras clave separadas por comas (obligatorio). Múltiples palabras se combinan por OR; pase varias variantes (pares de traducción, mayúsculas/minúsculas). Insensible a mayúsculas para ASCII; CJK literal. | —              |
| `--library <NAME>`  | Restringir a una biblioteca específica                                                                                                                                                                                 | —              |
| `--limit <N>`       | Número máximo de carpetas candidatas (1-50)                                                                                                                                                                            | 10             |

### Parámetros de outline

| Parámetro | Descripción                                      | Predeterminado |
| --------- | ------------------------------------------------ | -------------- |
| `<ID...>` | ID del documento (obligatorio, admite múltiples) | —              |

### Parámetros de read

| Parámetro      | Descripción                          | Predeterminado |
| -------------- | ------------------------------------ | -------------- |
| `<ID>`         | ID del documento (obligatorio)       | —              |
| `--offset <N>` | Línea de inicio (desde 1)            | 1              |
| `--limit <N>`  | Número de líneas a leer (máximo 500) | 200            |
