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

# Настройка Linkly AI для агентов

> Передайте эту страницу ИИ-агенту, чтобы он помог установить, подключить и проверить Linkly AI.

Эта страница предназначена прежде всего для **ИИ-агента**. Пользователь может отправить ему:

```text theme={null}
Set up https://linkly.ai/docs/ru/agent-setup.md
```

## Инструкция для ИИ-агента

### Задача

Помоги пользователю довести Linkly AI до проверенного рабочего состояния:

1. Определи, установлен и запущен ли Desktop
2. Проверь локальный MCP и CLI
3. Проведи пользователя через действия с интерфейсом, которые нельзя выполнить самому
4. Настрой один рабочий путь доступа — CLI или MCP
5. Установи Linkly AI Skills только после согласия пользователя на команду установки
6. Выполни сквозную проверку поиска и отчитайся о результате

### Ограничения и правила

* Не притворяйся, что нажал кнопку или установил приложение, если этого не сделал
* Не отключай песочницу, защиту ОС или браузера целиком
* Не загружай личные документы во внешние сервисы
* Не изменяй исходные документы; инструменты Linkly AI предназначены для чтения
* Команды установки, требующие сети, сначала покажи пользователю и получи разрешение
* Если `linkly` доступен в песочнице, но Desktop недостижим, повторяй вне сетевой песочницы только точную команду Linkly после разрешения
* Не проси запустить Desktop, пока разрешённая проверка вне песочницы не подтвердила недоступность

### Сначала проверь возможность выполнения команд

Если оболочка недоступна, не выдумывай результаты: используй ручные шаги и проси пользователя присылать точный вывод.

## Шаг 0. Проверка состояния

### macOS / Linux

```bash theme={null}
echo "--- 1. port file ---"
cat ~/.linkly/port 2>/dev/null || echo "NO_PORT_FILE"
echo "--- 2. health ---"
PORT=$(sed -n 's/.*"port":\([0-9]*\).*/\1/p' ~/.linkly/port 2>/dev/null)
curl -sf --max-time 5 "http://127.0.0.1:${PORT:-60606}/health" || echo "UNREACHABLE"
echo "--- 3. cli ---"
linkly --version 2>/dev/null || echo "NO_CLI"
echo "--- 4. status ---"
linkly status --json 2>/dev/null || echo "NO_STATUS"
echo "--- 5. skills ---"
ls ~/.claude/skills/linkly-ai/SKILL.md ~/.agents/skills/linkly-ai/SKILL.md 2>/dev/null || echo "NO_SKILLS"
```

### Windows PowerShell

```powershell theme={null}
Write-Output "--- 1. port file ---"
$port = 60606
if (Test-Path "$HOME\.linkly\port") {
  Get-Content "$HOME\.linkly\port"
  $port = (Get-Content "$HOME\.linkly\port" | ConvertFrom-Json).port
} else { Write-Output "NO_PORT_FILE" }
Write-Output "--- 2. health ---"
try { Invoke-RestMethod "http://127.0.0.1:$port/health" -TimeoutSec 5 | ConvertTo-Json -Compress } catch { "UNREACHABLE" }
Write-Output "--- 3. cli ---"
if (Get-Command linkly -ErrorAction SilentlyContinue) { linkly --version } else { Write-Output "NO_CLI" }
Write-Output "--- 4. status ---"
if (Get-Command linkly -ErrorAction SilentlyContinue) { linkly status --json } else { Write-Output "NO_STATUS" }
Write-Output "--- 5. skills ---"
if ((Test-Path "$HOME\.claude\skills\linkly-ai\SKILL.md") -or (Test-Path "$HOME\.agents\skills\linkly-ai\SKILL.md")) { Write-Output "SKILLS_OK" } else { Write-Output "NO_SKILLS" }
```

### Как читать результат

`/health` — самый надёжный пробник. Успешный ответ HTTP 200 содержит `version`, `doc_count`, `mcp_endpoint`, `index_status` и `capabilities`.

* **Не фиксируй порт 60606:** это только значение по умолчанию; фактический порт всегда читай из JSON `~/.linkly/port`.
* Файл порта остаётся после аварийного завершения, поэтому сам по себе не доказывает, что служба запущена. HTTP 200 доказывает здоровье; недоступность внутри сетевой песочницы ещё ничего не доказывает.
* `mcp_endpoint: null` означает, что MCP выключен в **Settings → MCP**, а не проблему порта.
* `index_status`: `watching` — завершено, также возможны `scanning`, `indexing`, `idle`, `error`.
* `doc_count` показывает общий объём индекса, но не доказывает, что в него попал конкретный пользовательский файл.

### Таблица состояний

| Результат                             | Значение                                           | Действие                                                                                                                                         |
| ------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Нет файла порта, `/health` недоступен | Не установлен или не запускался                    | Шаг 1                                                                                                                                            |
| Файл есть, `/health` недоступен       | Desktop остановлен либо мешает песочница           | Используй настроенный MCP или с разрешения повтори точную проверку вне сетевой песочницы; проси запустить Desktop только после повторной неудачи |
| HTTP 200, `index_status: error`       | Ошибка индексирования                              | Сначала `linkly doctor`; без CLI — **Settings → About → Logs**                                                                                   |
| HTTP 200, `linkly status` не работает | Desktop готов, CLI отсутствует или не подключается | Шаг 2                                                                                                                                            |
| Status работает, Skills нет           | Цепочка готова                                     | Шаг 3                                                                                                                                            |
| Всё готово                            | Настройка почти завершена                          | Шаг 4                                                                                                                                            |

Если `doc_count` остаётся примерно на уровне встроенных примеров (\~150), предложи в итоговом отчёте добавить свои папки, но не считай это блокером.

## Шаг 1. Установка и инициализация

### 1. Скачать и установить

Открой [официальную страницу](https://linkly.ai/#download) и выбери ОС:

* macOS: открой `.dmg`, перетащи **LinklyAI** в **Applications**, запусти из Launchpad.
* Windows: открой `.exe`, пройди мастер и запусти из меню Start.
* Linux: x86\_64 AppImage требует glibc 2.35+; выполни `chmod +x LinklyAI-*.AppImage && ./LinklyAI-*.AppImage`. При проблеме см. [FAQ AppImage](/docs/ru/faq).

Не скачивай другой пакет и не обходи предупреждения безопасности без проверки подписи и источника.

### 2. Мастер первого запуска

Последовательность: обложка → вход → подготовка → панель начала работы. На обложке пользователь выбирает язык и тему, обязательно принимает Privacy Policy и может отключить включённую по умолчанию телеметрию. Вход OAuth можно пропустить ссылкой мелким текстом: он нужен для пробной квоты официальных моделей и облачных функций, но локальный индекс, поиск и MCP работают без сети. На подготовке распаковываются и индексируются примеры; дождись активной кнопки **Get started**. В последней панели можно открыть любую из шести карточек и закрыть её крестиком.

### 3. Добавить документы

Напомни, что после мастера проиндексированы только примеры. Добавление своих файлов необязательно: попроси добавить нужные папки в **Settings → Folders** или поместить файлы в автоматически наблюдаемую `~/LinklyAI`. Не выбирай личные каталоги за пользователя. При ошибках разрешений macOS добавь Linkly AI в **System Settings → Privacy & Security → Full Disk Access** и перезапусти приложение.

### 4. Фоновая загрузка моделей

Объясни, что приложение в фоне загружает около **710 МБ** моделей: примерно 639 МБ для семантического поиска и 70 МБ для OCR. Это может занять от нескольких минут до часа. Ключевой поиск работает сразу; до готовности моделей `search` автоматически переходит на полнотекстовый режим с немного худшей релевантностью. Не объявляй это поломкой.

### 5. Подтверждение

Попроси пользователя один раз ответить, когда Desktop запущен, мастер завершён и хотя бы одна папка добавлена.

Критерий приёмки: `/health` возвращает 200 и `doc_count > 0`. Если мастер завершён, но идёт `scanning`/`indexing`, повторяй проверку каждые 10 секунд до 6 раз. После этого нулевой счётчик обрабатывай как ошибку. Собственная папка не обязательна — встроенных примеров достаточно.

## Шаг 2. Подключение инструмента

CLI и MCP можно настроить вместе. Сначала предпочтителен CLI, потому что его можно проверить в текущем сеансе; MCP появляется только после перезагрузки клиента. В начале прочитай реальный порт:

```bash theme={null}
PORT=$(sed -n 's/.*"port":\([0-9]*\).*/\1/p' ~/.linkly/port)
MCP_URL="http://127.0.0.1:$PORT/mcp"
```

В PowerShell используй `$mcpUrl = "http://127.0.0.1:$port/mcp"`. Не подставляй 60606 напрямую.

### Вариант A. CLI (рекомендуется для агентов с оболочкой)

Покажи команду, объясни, что она скачивает и запускает установщик, и получи согласие. Варианты:

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

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

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

```bash theme={null}
cargo install linkly-ai-cli
```

Перед её запуском получи разрешение пользователя. После установки открой новый shell или обнови PATH и выполни:

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

Если PATH ещё не обновился, открой новый терминал или используй полный путь: `~/.linkly/bin/linkly` на macOS/Linux либо `%LOCALAPPDATA%\linkly\bin\linkly.exe` на Windows. Критерий: `linkly --version` печатает версию, а `linkly status --json` содержит `app_version` и `doc_count`.

### Вариант B. MCP

Для клиента на том же компьютере используй вычисленный `$MCP_URL` с именем `linkly-ai`:

```bash theme={null}
claude mcp add --transport http linkly-ai "$MCP_URL"
codex mcp add linkly-ai --url "$MCP_URL"
```

Cursor: **Settings → MCP Servers → Add Server**, имя `linkly-ai`, тип `StreamableHTTP`, URL — вычисленное значение.

Новый сервер обычно не появляется в текущем сеансе. Сначала начни новый разговор; если не помогло, полностью заверши клиент и открой снова (закрыть окно недостаточно). Запись конфигурации уже завершает шаг; не опрашивай текущий сеанс бесконечно.

Сервис можно проверить прямым рукопожатием:

```bash theme={null}
curl -sf --max-time 5 -X POST "$MCP_URL" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"setup-probe","version":"1"}}}'
```

`"serverInfo":{"name":"linkly-ai"` подтверждает здоровье; HTTP 403 означает, что переключатель MCP выключен в **Settings → MCP**.

## Шаг 3. Установка Skills

После разрешения пользователя:

```bash theme={null}
npx skills add LinklyAI/linkly-ai-skills
```

Либо для определённого клиента:

```bash theme={null}
git clone https://github.com/LinklyAI/linkly-ai-skills.git ~/.claude/skills/linkly-ai
git clone https://github.com/LinklyAI/linkly-ai-skills.git ~/.agents/skills/linkly-ai
```

Если GitHub недоступен, резервный пакет находится по адресу:

```text theme={null}
https://updater.linkly.ai/skills/linkly-skills-latest.zip
```

Если целевой каталог уже существует, пропусти установку; для обновления используй `git pull` внутри него. Skills также требуют нового разговора или полного перезапуска клиента. Не считай наличие каталога достаточным: критерий — `SKILL.md` по одному из путей `~/.claude/skills/linkly-ai/`, `.claude/skills/linkly-ai/` или `~/.agents/skills/linkly-ai/`. Текущий сеанс не обязан уже видеть Skill.

## Шаг 4. Сквозная проверка

```bash theme={null}
linkly search "Holmes" --json
```

Если `doc_count` примерно равен уровню примеров (\~150), ищи `Holmes`. Если он явно выше, выбери слово из собственных документов пользователя. Успех означает реальные записи документов с `doc_id`, после чего `linkly outline <DOC_ID>` или `linkly read <DOC_ID>` получает содержимое.

При только MCP-подключении текущий сеанс не может закончить проверку. Сообщи: конфигурация записана, рукопожатие успешно, проверка ожидает перезагрузки. Повтори оба способа перезагрузки и передай самодостаточную фразу: «После перезагрузки выполни `search Holmes` через сервер `linkly-ai`». Убедись, что реально вызван инструмент, а не дан ответ из памяти модели.

Пустой поиск не означает проблему модели: пока она не готова, работает полнотекстовый fallback. По порядку проверь запрос, `doc_count == 0`, добавленные папки и поддерживаемый формат. `index_status: indexing` означает ожидание, `error` — устранение неполадки. Сразу после сканирования `watching` может появиться на короткое время до извлечения содержимого, поэтому повтори проверку и посмотри, растёт ли `doc_count`.

## Устранение неполадок

<AccordionGroup>
  <Accordion title="App: Unreachable">Если файла порта нет, Desktop не установлен или не запускался. Если файл есть, он мог устареть после сбоя либо localhost блокирует песочница. Прочитай реальный порт, с разрешения повтори точную проверку вне песочницы и только затем проси запустить приложение.</Accordion>
  <Accordion title="MCP возвращает 403">Включи переключатель в **Settings → MCP**; не отлаживай порт.</Accordion>
  <Accordion title="Index status: error">Выполни `linkly doctor`; без CLI открой **Settings → About → Logs**. Не продолжай до восстановления.</Accordion>
  <Accordion title="CLI не найден после установки">Открой новый shell. Полные пути: `~/.linkly/bin/linkly` или `%LOCALAPPDATA%\linkly\bin\linkly.exe`. При блокировке PowerShell можно временно выполнить `Set-ExecutionPolicy -Scope Process -Bypass` в этом окне либо использовать Cargo.</Accordion>
  <Accordion title="MCP подключён, но инструментов нет">Начни новый разговор; если не помогло, полностью заверши клиент и открой снова. Это механизм загрузки, а не ошибка конфигурации.</Accordion>
  <Accordion title="Поиск пуст">Проверь запрос, `doc_count`, добавленные папки и формат. Не обвиняй модель: полнотекстовый fallback работает без неё.</Accordion>
  <Accordion title="Индекс долго в состоянии indexing">Для большой коллекции или загрузки моделей это нормально; проверь, растёт ли `doc_count`.</Accordion>
  <Accordion title="Ошибки разрешений macOS">Добавь Linkly AI в **System Settings → Privacy & Security → Full Disk Access** и перезапусти приложение.</Accordion>
  <Accordion title="Нужна глубокая диагностика">Запусти `linkly doctor`.</Accordion>
</AccordionGroup>

## Итоговый отчёт

Сообщи пользователю факты: какие шаги и каким путём выполнены, нужен ли новый разговор или полный перезапуск, версия Desktop и CLI, состояние индекса и `doc_count`, состояние Skills, команда проверки и результат. Объясни использование: например, добавить `use linkly-ai` к запросу или открыть launcher через `CMD/Ctrl + Shift + L`. Отдельно перечисли незавершённые ручные шаги.

### Заверши четырьмя примерами вопросов

Сначала вызови `linkly explore` и подстрой вопросы под реальные материалы пользователя. Если есть только встроенные примеры, предложи:

1. Прочитай «A Life in 10 Years» и проанализируй повторяющиеся жизненные паттерны в дневниках Сэмюэла Пипса и его возможные слепые зоны.
2. Прочитай 12 дел в Detectives Library, выдели формулу Шерлока Холмса и преврати её в чек-лист диагностики сложных бизнес-проблем.
3. Прочитай Federalist Papers: чего боялись основатели США, как они противопоставляли амбицию амбиции и фракцию фракции, и какие принципы это даёт для управления современными AI-компаниями.
4. По воспоминаниям бывших рабов из WPA Slave Narratives объясни, что учебники американской истории обычно не проговаривают прямо.

## Дополнительные материалы

* [Быстрый старт](/docs/ru/quickstart)
* [CLI](/docs/ru/use-cli)
* [MCP](/docs/ru/use-mcp)
* [Skills](/docs/ru/use-skills)
