# n8n-binary-and-data-official

Скилл объясняет, как в n8n устроена работа с файлами, картинками и вложениями и почему бинарные данные не проходят через инструменты агента.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1900 установок · ★ 554
- Автор: n8n-io
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/n8n-io/skills/tree/HEAD/skills/n8n-binary-and-data-official/SKILL.md
- Обновлён: 2026-10-17
- HTML: https://affpapa.org/nevibecode/skills/n8n-binary-and-data-official

## Что делает

В n8n у каждого элемента два слота: `$json` с обычными данными и `$binary` с файлами. Скилл настаивает на простом правиле: содержимое файла лежит в `$binary`, а не в `$json`, и попытка прочитать его оттуда — типичная ошибка. Для записи бинарных данных в Code-узле показан возврат объекта с полем `binary`, где `data` — base64, плюс `mimeType` и `fileName`.

Отдельный блок посвящён инструментам агента. Параметры и результаты там только JSON, поэтому бинарные данные не пересекают эту границу ни в одну сторону. Входящий файл сначала кладут в хранилище, а в инструмент через `fromAi()` передают ключ; исходящий файл загружают в хранилище и возвращают ссылку в JSON. Флаг `passthroughBinaryImages: true` даёт модели увидеть картинку, но инструментам доступа к ней не даёт — это повод проверить свою схему, если вы рассчитывали на обратное.

Ещё две темы: сохранение бинарных данных после JSON-преобразования через узел Merge и требование к хранилищу с публичным URL, когда картинку нужно показать в чате вроде Slack или Telegram. Хранилище настраивает пользователь, в n8n его нет. Внутри скилла четыре справочных файла: `references/BINARY_BASICS.md`, `references/AGENT_TOOL_BINARY.md`, `references/MERGE_FOR_CONTEXT.md` и `references/CDN_REQUIREMENT.md`.

## Требования
- Работает с: n8n

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add n8n-io/skills --skill n8n-binary-and-data-official -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/n8n-binary-and-data-official/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/n8n-binary-and-data-official/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add n8n-io/skills --skill n8n-binary-and-data-official -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/n8n-binary-and-data-official/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add n8n-io/skills --skill n8n-binary-and-data-official -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/n8n-binary-and-data-official/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install n8n-io/skills n8n-binary-and-data-official
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/n8n-binary-and-data-official/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add n8n-io/skills --skill n8n-binary-and-data-official -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/n8n-io/skills --path skills/n8n-binary-and-data-official
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/n8n-binary-and-data-official/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add n8n-io/skills --skill n8n-binary-and-data-official -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/n8n-io/skills/tree/HEAD/skills/n8n-binary-and-data-official/SKILL.md

## Когда брать
- прочитать содержимое файла из `$binary`, а не из `$json`
- собрать бинарные данные в Code-узле и вернуть их дальше по workflow
- передать загруженный пользователем файл в инструмент агента через ключ в хранилище
- вернуть из инструмента ссылку на сгенерированный файл вместо сырых байтов
- не потерять вложение после JSON-преобразования в узле Merge

## Примеры запросов агенту
- Почему мой Code-узел не видит файл из предыдущего шага? Проверь, что я читаю `$binary`, а не `$json`.
- Мне нужно, чтобы инструмент агента принял загруженную картинку. Покажи схему с предварительной загрузкой в хранилище и передачей ключа через `fromAi()`.
- После Edit Fields пропало вложение. Как собрать его обратно через Merge?

## Похожие
- [n8n-binary-and-data](https://affpapa.org/nevibecode/skills/n8n-binary-and-data.md) — скилл · 1900 установок
- [n8n-workflow](https://affpapa.org/nevibecode/skills/n8n-workflow.md) — скилл · 4800 установок
- [n8n-agents](https://affpapa.org/nevibecode/skills/n8n-agents.md) — скилл · 1900 установок
- [workflow-automation](https://affpapa.org/nevibecode/skills/workflow-automation.md) — скилл · 1661 установка
- [airtable-automation](https://affpapa.org/nevibecode/skills/airtable-automation.md) — скилл · 6200 установок
- [cloud](https://affpapa.org/nevibecode/skills/browser-use-cloud.md) — скилл · 3200 установок

Из того же набора: [n8n-io/skills](https://affpapa.org/nevibecode/by/n8n-io/skills.md) — 14 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
