AIKraft Agents

iwe-org/iwe

Граф знаний на основе Markdown — LSP для вашего редактора, CLI и MCP-память для ваших AI-агентов

Агенты⭐ 1 815Rustпоследний релиз: iwe-v0.31.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

IWE — это инструмент на Rust, который превращает папку с Markdown-файлами в структурированный граф знаний с поддержкой LSP для редакторов и MCP/CLI для AI-агентов.

Зачем нужен

Инструмент решает проблему неструктурированных заметок, позволяя выполнять запросы к ним как к базе данных без переноса данных в специализированные системы. Он предоставляет AI-агентам доступ к контексту через структуру (связи и иерархию), а не через поиск по схожести, и обеспечивает прозрачность изменений через Git.

Что можно реализовать

  • Создание личной базы знаний с возможностью навигации по связям между заметками в IDE.
  • Предоставление AI-агентам (Claude, Gemini и др.) структурированного контекста через MCP для точных ответов на вопросы по истории решений.
  • Управление проектной документацией с валидацией структуры через OKF (Open Knowledge Format).
  • Рефакторинг и переименование заметок с автоматическим обновлением всех ссылок в графе.
  • Быстрый поиск и фильтрация заметок по YAML-frontmatter и тексту в CLI.

Ключевые возможности

  • Работа с обычными Markdown-файлами и Git, без проприетарных форматов и облачных зависимостей.
  • Поддержка LSP для VS Code, Neovim, Zed и Helix с функциями поиска, автодополнения и рефакторинга.
  • Интеграция с AI через CLI и MCP Server, позволяющая агентам запрашивать контекст по структуре графа.
  • Валидация изменений агентами: проверка заявленного диапазона изменений (scope) перед записью.
  • Высокая производительность: обработка 20 000 файлов менее чем за секунду на Rust.

👤 Кому подойдёт: Разработчики, инженеры по AI, технические писатели и исследователи, использующие Markdown для ведения заметок и интегрирующие AI-агентов в свои рабочие процессы.

Релизы

iwe-v0.31.0patch
🕐 вчера · релиз на GitHub ↗

Исправлены критические баги нормализации: сохранение wiki-вставок, email-ссылок, пробелов в путях и frontmatter при инлайне.

  • Fixed: Wiki-вставки (![[...]]), email-автоссылки и пути с пробелами теперь корректно сохраняются при нормализации и переименовании.
  • Fixed: Команда inline больше не копирует frontmatter встраиваемого документа в тело хоста.
  • Fixed: Операторы обновления корректно обрабатывают $section как единый блок, предотвращая дублирование вставленного контента.
  • Fixed: Режим --dry-run теперь корректно проверяет схему и сообщает об ошибках, как при реальном запуске.
iwe-v0.30.0minor
🕐 3 дн назад · релиз на GitHub ↗

В утилиту iwec добавлены флаги для указания инструкций и произвольной директории рабочего пространства.

  • Added: Добавлены флаги --instructions и --instructions-file для передачи инструкций, чтобы агент понимал назначение каждого рабочего пространства.
  • Added: Появился флаг --workspace, позволяющий серверу обслуживать любую директорию, а не только текущую.
iwe-v0.29.3patch
🕐 8 дн назад · релиз на GitHub ↗

Исправлено отображение документов без заголовков в дереве и значительно ускорена работа с вложенными документами в CLI и MCP.

  • Fixed: Команда tree теперь включает документы без заголовков и работает быстрее в проектах с глубокой вложенностью.
  • Fixed: Инструмент MCP iwe_tree и ресурс iwe://tree исправлены аналогичным образом.
  • Added: В библиотеке liwe добавлен метод Graph::root_keys для получения отсортированных ключей корневых документов.
iwe-v0.29.2minor
🕐 8 дн назад · релиз на GitHub ↗

iwe v0.29.2: статические сборки для Linux, ускорение MCP и исправление рассинхрона заметок.

  • Added: Добавлены статические сборки Linux (musl) для совместимости с любыми дистрибутивами, включая Alpine.
  • Added: Сервер MCP стал быстрее при одновременном чтении.
  • Fixed: Исправлено исчезновение заметок при их удалении и повторном создании вне редактора.
  • Fixed: Устранено отображение устаревшего контента для закрытых заметок.
  • Fixed: Исправлена гонка записей и потеря данных при изменении файлов через файловый менеджер.
iwe-v0.29.1patchbreaking
🕐 13 дн назад · релиз на GitHub ↗

Исправлена работа вики-ссылок с якорями (#section) при переименовании и в навигации.

  • Fixed: Переименование заметок теперь корректно сохраняет якоря в вики-ссылках вида [[note#section]].
  • Fixed: Вики-ссылки с якорями теперь правильно учитываются в backlinks, find, tree и переходе к определению.
  • Breaking: В библиотеке liwe Target::Name изменён на структуру с полями name и fragment.
  • Added: Добавлены вспомогательные методы with_name и with_fragment для Target.
iwe-v0.29.0minor
🕐 16 дн назад · релиз на GitHub ↗

Снижение потребления памяти при загрузке больших рабочих пространств и исправление потери текста в списках после блоков кода.

  • Added: Снижено потребление памяти при загрузке больших рабочих пространств в iwe, iwes и библиотеках.
  • Fixed: Исправлена потеря или слияние текста, следующего за блоком кода, горизонтальной чертой или заголовком внутри элемента списка без пустой строки.
  • Added: Добавлены сериализация и десериализация для типов Inline, Attributes, Reference, Target, ReferenceType, LinkType и MathType в liwe.
iwe-v0.28.0minor
🕐 20 дн назад · релиз на GitHub ↗

В iwe v0.28.0 добавлена локализованная сортировка текста с учётом языка и правил колляции, а также исправлена обработка модификаторов локали.

  • Added: В CLI и query-документах появился параметр сортировки с поддержкой локали (collation), позволяющий учитывать язык и правила естественного порядка.
  • Added: Текстовые поля теперь сортируются с учётом регистра, акцентов и числовых значений, а эмодзи используются только для разделения равных элементов.
  • Added: Добавлена поддержка явного указания языка колляции через тег локали (например, sv-SE) или принудительного байтового порядка (binary).
  • Fixed: Исправлено форматирование дат для значений локали с модификаторами (например, de_DE@euro), которые ранее падали в POSIX.
  • Added: В библиотеку liwe добавлен TitleCollator для локализованного сравнения строк и обновлены методы сортировки деревьев.
iwe-v0.27.0minor
🕐 21 дн назад · релиз на GitHub ↗

Радикально улучшена работа с wiki-ссылками при переименовании и перемещении заметок, устранены стабильные ссылки и ошибки стека.

  • Added: Wiki-ссылки теперь динамически обновляются при создании, перемещении или удалении заметок без необходимости редактировать исходные файлы.
  • Added: Переименование заметок стало менее шумным: ссылки сохраняются, если они всё ещё корректны, иначе используется кратчайшее рабочее имя.
  • Fixed: Исправлена логика переименования: ссылки на другие заметки, которые могли бы случайно начать указывать на переименованную заметку, теперь корректно обновляются.
  • Fixed: Устранена ошибка переполнения стека при переиндексации графов и очистке обратных ссылок для документов с тысячами блоков.
  • Added: Добавлены новые модули и типы для работы с файловой системой, индексацией ключей и разрешением целей ссылок в библиотеках liwe и diwe.
iwe-v0.26.1patch
🕐 29 дн назад · релиз на GitHub ↗

Исправлены падения и зависания запросов при ссылках на отсутствующие или не-Markdown файлы.

  • Fixed: find, count и MCP-инструмент iwe_query больше не падают и не зависают при ссылках на отсутствующие страницы или не-Markdown файлы.
  • Fixed: Флаги --referenced-by и --included-by теперь возвращают только существующие документы.
  • Fixed: Исправлено панирование $matches, $blocks и $content из-за ссылок на цели без документов.
  • Fixed: Ссылки на локальные файлы, не являющиеся документами, корректно обрабатываются как Inline::Link.
iwe-v0.26.0patch
🕐 29 дн назад · релиз на GitHub ↗

Исправлено искажение ссылок на директории и форматирования в тексте ссылок при записи Markdown-документов.

  • Fixed: Ссылки на директории (например, [docs](docs/)) теперь сохраняются без изменений, не преобразуясь в несуществующие .md-файлы.
  • Fixed: Внутри текста ссылок теперь корректно сохраняются код-спаны и выделение жирным, а не сплющиваются в обычный текст.
  • Fixed: Редактирование Markdown в Claude Code больше не приводит к фоновой переформатированию файлов, сохраняя исходное оформление.
  • Added: В библиотеке liwe добавлена функция is_document_url для проверки, является ли ссылка относительной ссылкой на документ.
iwe-v0.25.0majorbreaking
🕐 1 мес назад · релиз на GitHub ↗

Ренейминг библиотеки в workspace, обновление конфига до v4, строгая валидация ключей и исправления в сервере.

  • Breaking: Конфиг-таблица [library] переименована в [workspace], версия конфига обновлена до 4.
  • Breaking: Команды с ключом -k теперь вызывают ошибку при неизвестных ключах, а не возвращают пустой результат.
  • Added: Инициализация проекта теперь использует флаг --workspace вместо --library.
  • Fixed: Исправлен вывод ошибок: теперь сообщаются все неизвестные ключи сразу, а не только первый.
  • Deprecated: Флаг --library и старые типы URL сохранены как скрытые алиасы для обратной совместимости.
iwe-v0.24.2patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлен критический сбой при загрузке документов с плоской структурой в iwe, iwes и iwec.

  • Fixed: Устранена ошибка переполнения стека при чтении документов с длинными последовательностями элементов без вложенности.
  • Fixed: CLI-инструмент iwe больше не аварийно завершает работу при открытии таких файлов.
  • Fixed: Сервер LSP iwec стабильно обрабатывает рабочие пространства с плоскими документами.
  • Fixed: MCP-сервер iwes больше не падает при загрузке workspace с аналогичной структурой.
iwe-v0.24.1patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлены критические уязвимости выхода за пределы рабочей области и оптимизировано обновление файлов для сохранения истории изменений.

  • Fixed: Заблокирована возможность записи, удаления или перезаписи файлов за пределами рабочей области через ключи с '..' или абсолютным путём.
  • Fixed: Команда normalize больше не перезаписывает файлы без изменений, сохраняя время модификации и историю редактирования библиотеки.
  • Fixed: Ошибки записи на диск теперь корректно возвращаются как ошибки, а не вызывают панику или ложное сообщение об успехе.
  • Fixed: Исправлено поведение iwes: переименование и переход к определению теперь учитывают границы рабочей области, избегая висячих ссылок.
iwe-v0.24.0minor
🕐 1 мес назад · релиз на GitHub ↗

В iwe v0.24.0 добавлена фильтрация документов по префиксу ключа через оператор $startsWith.

  • Added: Добавлена возможность фильтрации документов по префиксу ключа с помощью оператора $startsWith.
  • Added: Поддержка фильтрации по префиксу доступна в CLI через флаг --filter и в инструменте MCP iwe_query.
  • Fixed: Исправлено сообщение об ошибке для некорректных выражений $key: теперь выводятся допустимые операторы.
iwe-v0.23.2patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена критическая ошибка форматирования: маркеры блоков больше не ломают параграфы при переносе строк.

  • Fixed: iwe normalize больше не превращает перенесённые параграфы в списки, заголовки или HTML, экранируя маркеры.
  • Fixed: textDocument/formatting в iwes исправлено: маркеры блоков корректно экранируются при обёртке строк.
  • Fixed: Библиотека liwe теперь экранирует маркеры списков, цитат, заголовков и HTML-теги, попавшие в начало строки.
iwe-v0.23.1minor
🕐 2 мес назад · релиз на GitHub ↗

Исправлена работа с внешними ссылками, регистронезависимые вики-ссылки и корректное форматирование Djot-документов.

  • Fixed: Ссылки с URI-схемами (tel, ftp, file) больше не считаются сломанными, а обрабатываются как внешние.
  • Fixed: Вики-ссылки теперь разрешаются без учёта регистра, например [[target]] открывает Target.md.
  • Fixed: Djot-документы корректно применяют preserve_newlines и wrap_column, сохраняя разрывы строк.
  • Fixed: Экранированные маркеры блоков в Djot больше не преобразуются в списки или заголовки.
iwe-v0.23.0majorbreaking
🕐 2 мес назад · релиз на GitHub ↗

MEMORY.md теперь использует гибкие запросы вместо глобального фильтра, добавлен JSON Schema для валидации.

  • Breaking: Срезы injection в MEMORY.md стали самостоятельными запросами с фильтрами и лимитами, убран глобальный knowledge_filter.
  • Added: Добавлена команда iwe docs query-schema для вывода JSON Schema языка запросов и их валидации.
  • Breaking: Удалены устаревшие настройки knowledge_filter, recency_field и источники recent/changed, бюджет токенов теперь настраивается на уровне среза.
  • Added: Обновлены параметры дистилляции: изменены названия ключей и логика работы напоминаний (remind_after_days).
  • Added: Библиотека liwe теперь поддерживает разрешение внешних ссылок на опубликованные схемы IWE по их URI.
iwe-v0.22.0majorbreaking
🕐 2 мес назад · релиз на GitHub ↗

Поля фронтматтера с префиксами _, #, @ теперь обычные; $-поля защищены от фильтрации, но сохраняются.

  • Breaking: Поля фронтматтера, начинающиеся на _, # или @, теперь обрабатываются как обычные: доступны для фильтрации, сортировки и обновления, больше не удаляются при записи.
  • Fixed: Поля с префиксом $ теперь корректно валидируются на этапе парсинга пути (InvalidPathSegment), вместо того чтобы вызывать ошибки времени выполнения или игнорироваться.
  • Added: Клиент iwec включает в результаты запроса все поля фронтматтера, включая те, что начинаются на $, которые ранее опускались.
  • Deprecated: Удалены устаревшие функции strip_reserved, is_reserved_segment и модуль query::frontmatter, замененные на is_operator_segment в query::document.
iwe-v0.21.0majorbreaking
🕐 2 мес назад · релиз на GitHub ↗

Полная переработка работы с памятью: дистилляция сессий, нормализация документов и новые настройки в MEMORY.md.

  • Breaking: Удалена автоматическая обработка транскриптов сессий; теперь требуется ручная дистилляция через команду `/iwe:distill`.
  • Added: Документы автоматически нормализуются и проверяются по схемам при записи, а также дублируются при совпадении с существующими.
  • Added: Добавлена команда `iwe normalize -k <key>` для точечной нормализации конкретных документов и новые настройки в MEMORY.md.
  • Added: Состояние памяти перенесено в `.iwe/claude/`, а процесс дистилляции стал интерактивным с поддержкой пакетного выбора.
  • Deprecated: Устарели параметры `sweep_threshold_lines`, `max_chunks_per_sweep` и другие, связанные со старой системой очистки.
iwe-v0.20.1minor
🕐 2 мес назад · релиз на GitHub ↗

MCP-сервер расширил поддержку протокола до 2026 года и исправил ошибки инициализации.

  • Added: Поддержка ревизий MCP-протокола расширена с 2025-06-18 до 2026-07-28, включая метод server/discover.
  • Fixed: Запрос initialize без protocolVersion теперь возвращает корректную ошибку JSON-RPC вместо молчаливого завершения.
  • Fixed: Исправлена переговорная логика: сервер больше не эхом возвращает неизвестную версию, а предлагает поддерживаемую.
iwe-v0.20.0minorbreaking
🕐 2 мес назад · релиз на GitHub ↗

iwe v0.20.0: интеграция памяти Claude Code, строгая валидация config.toml и исправления валидации схем.

  • Added: iwe теперь поддерживает память между сессиями Claude Code: автоматический сбор, дистилляция и хранение транскриптов.
  • Breaking: Неизвестные ключи в .iwe/config.toml теперь вызывают ошибку парсинга, а не игнорируются, что может помешать запуску LSP.
  • Added: Добавлена команда iwe delete -k для удаления записей по ключу и скрытые команды iwe internal для управления памятью.
  • Fixed: Исправлено чтение схем из корня проекта, что устранило ошибки валидации при использовании library.path.
  • Added: Добавлены команды iwe internal claude prompt и iwe docs agent для вывода инструкций агента и политик использования CLI.
iwe-v0.19.1patch
🕐 2 мес назад · релиз на GitHub ↗

Технический релиз iwe-v0.19.1: переиздание npm-пакетов для публикации сервера MCP в официальном реестре.

  • Added: Сервер MCP теперь можно установить напрямую из официального реестра по адресу io.github.iwe-org/iwe.
  • Added: npm-пакеты переизданы с корректными метаданными обладания, требуемыми официальным реестром MCP.
  • Внешние изменения для CLI, LSP-сервера и инструментов MCP отсутствуют.
iwe-v0.19.0minor
🕐 3 мес назад · релиз на GitHub ↗

Добавлена инициализация OKF-бандлов и поддержка gitignore-стиля с отрицаниями в схемах.

  • Added: Команда iwe init --okf автоматически создаёт структуру OKF v0.2 бандла, схемы и конфигурацию.
  • Added: В паттернах match схем добавлена поддержка отрицаний через !, работающих по принципу gitignore.
  • Added: Библиотеки liwe и diwe теперь корректно обрабатывают negated-паттерны для управления валидацией документов.