Разработка на 1С-Битрикс Михаил Базаров
HARNES-S · ИИ-агент для macOS

Ассистент помнит.
Агент умеет. HARNES-S делает и то, и другое

HARNES-S — персональный ИИ-агент для macOS. Один чат, одна память, ваши файлы: он помнит вас месяцами и в том же разговоре правит код, гоняет тесты, коммитит и ходит в браузер. Нативное приложение на Swift — без Electron и без облака.

Открытый исходный код Релизов нет — собирается из исходников
Нативное приложение, а не браузер в окнеSwift 6 и SwiftUI, без Electron и Node.js в рантайме. 48 МБ, около 150 МБ памяти в простое: ответ идёт напрямую, без DOM на каждый токен.
  • ЛокальноПамять и файлы на вашем диске
  • Свои ключиЛюбой OpenAI-совместимый провайдер
  • 188 тестовЗелёные на каждый коммит
HARNES-S: агент нашёл причину падения сборки, поправил код и прогнал тесты
Нашёл причину, поправил, прогнал тесты — в одном разговоре
Обсуждение

Идея, пожелание или баг?

Напишите в тему HARNES-S на форуме: пожелания, идеи и найденные ошибки. Это не техподдержка, а живое обсуждение — читаю всё и отвечаю по возможности.

Тема на форуме
Проблема

Ассистент помнит, но не умеет работать руками. Агент умеет, но не помнит

Между ними вы таскаете контекст вручную и на каждом шаге объясняете заново, кто вы и над чем работаете. А длинный разговор упирается в окно модели: через сотню сообщений запрос перестаёт влезать, приложение съедает гигабайты, интерфейс подтормаживает на каждом токене.

HARNES-S убирает и то, и другое: память живёт в локальной базе, история не занимает оперативку, а контекст сжимается до того, как модель упрётся в предел.

Как обычно
  • Ассистент — в одном окне
  • Кодовый агент — в терминале
  • Контекст — в буфере обмена
  • Память — в заметках
  • История — обрезана или потеряна
  • Модель — ещё в одном приложении

HARNES-S собирает всё в один разговор. Переключать нечего: память и руки живут в одной сессии.

Что внутри

Один агент вместо трёх инструментов

Память, руки и контекст — не режимы с переключателем, а одна и та же сессия.

01

Помнит вас, а не только разговор

Всё, что вы просите запомнить, ложится в локальную SQLite: факты, решения, предпочтения. Память подмешивается в контекст сама — не нужно каждый раз объяснять, кто вы и над чем работаете.

  • Поиск по памяти: полнотекстовый FTS5 плюс эмбеддинги
  • Закреплённые записи не вытесняются
  • «Забудь» удаляет сразу, а не «когда-нибудь»
Память HARNES-S: сохранённые факты и решения проекта
02

Помнит манеру речи

Агент незаметно изучает форму общения: ты или вы, сленг, эмодзи, директивность. Не содержание — только стиль. Один эмоциональный вечер персону не меняет: нужны наблюдения за несколько дней.

  • Режимы «Авто», «Нейтрально» и «Вручную»
  • Длина ответа — температурой, а не просьбой в промпте
  • Карточку стиля можно задать дословно
HARNES-S: разметка и оформление ответов в чате
03

Правит код и знает 1С-Битрикс

Читает и правит файлы, применяет диффы, ищет по смыслу и по regex, гоняет сборку и тесты, коммитит. Понимает Битрикс: знает, что код живёт в local/, что ядро bitrix/ трогать нельзя, а dbconn.php содержит креды.

  • После правок PHP проверяет синтаксис через php -l
  • Для Swift собирает проект и прогоняет тесты
  • Коммит — обычная операция, а не отдельный ритуал
HARNES-S: правка кода и прогон тестов в чате
04

Смотрит на мир

Работает с изображениями напрямую: пришлите скриншот — он посмотрит. Умеет снимать скриншоты экрана и страниц, распознавать текст. Ходит по сайтам скрапером, а если нужно — настоящим браузером с кликами и формами.

  • Скриншоты экрана и страниц, OCR через Vision
  • Быстрый MCP-скрапер с обходом защиты
  • Playwright подключается только когда нужен
HARNES-S: работа с браузером и веб-страницами
05

Разговор длиной в месяц

История не живёт в памяти целиком: в приложении последние 200 сообщений, остальное — в SQLite и подгружается по мере прокрутки. Когда контекст не помещается, старые сообщения сворачиваются в саммари по семи разделам.

  • Бюджет контекста считается под конкретную модель
  • Из базы не удаляется ничего — саммари это слой
  • Смена модели на меньшую не теряет историю
HARNES-S: поиск по истории разговора и файлам проекта
06

Расширяется скиллами и MCP

Скиллы — обычные SKILL.md с frontmatter. Они не вшиты в бинарник: агент умеет ставить их себе сам — «установи скилл из этой папки» или «подключи вот этот MCP-сервер».

  • В промпт попадает только индекс включённых скиллов
  • Инструкции подгружаются по требованию
  • Расписания: «каждый час проверяй сайт» — без вашего участия
HARNES-S: работа с git, диффы и коммиты
Почему локально

Ваши файлы, память и ключи остаются у вас

У HARNES-S нет своего сервера. Всё, что вы создаёте, лежит на вашем Mac.

Данные не уходят в облако

Память, история и файлы хранятся локально в SQLite и на диске. Чужого сервера, который их видит, просто нет.

Свои ключи и модели

Любой OpenAI-совместимый провайдер: облачный API, Ollama, LM Studio, llama.cpp. Оплата напрямую, без посредника.

Бэкап — это копирование

Данные — обычная папка с SQLite-файлом. Её можно скопировать, заархивировать и открыть без приложения.

Без подписок и lock-in

Нет ежемесячной платы за сам агент. Исходники открыты: можно собрать самому, изменить под себя или уйти без экспорта.

Для кого

Если работа — это код и долгие проекты

Разработчики 1С-Битрикс

Агент знает структуру проектов на Битриксе, не лезет в ядро и проверяет PHP после правок.

Те, кто ведёт проект месяцами

Память и саммари не дают контексту потеряться, даже когда разговор перевалил за сотни сообщений.

Чувствительные данные

Память, история и пароли под алиасами остаются на устройстве, а не на чужом сервере.

Сборка

Релизов пока нет — собирайте сами из исходников

Готовых установщиков нет: приложение собирается из исходников за пару команд. Нужны macOS, Xcode и XcodeGen — всё ставится с официального сайта и через Homebrew.

git clone https://github.com/mibazarow/harnes-s-macos.git cd harnes-s-macos xcodegen generate xcodebuild -project Harness.xcodeproj -scheme Harness \ -configuration Release -derivedDataPath .build build open .build/Build/Products/Release/Harness.app
  • macOS 27+ (Apple Silicon)
  • Xcode 27+
  • XcodeGen: brew install xcodegen

Полные инструкции — в README репозитория: сборка, тесты и установка.

macOS

Apple Silicon · из исходников

сборка

Windows

Порт в работе

в работе

Linux

Пока не заявлен

не заявлен
Под капотом

Нативное приложение, а не браузер в окне

Swift 6 и SwiftUI без Electron и Node.js в рантайме. Поток ответа идёт через URLSession напрямую в модель, история и память — в SQLite, поиск — на FTS5 и локальных эмбеддингах. Playwright ставится отдельно и только по необходимости.

Swift 6SwiftUISQLite FTS5URLSession SSEVisionMCPOpenAI-compatible API
Исходники

Код открыт — можно собрать, изменить и предложить правку

Весь проект лежит на GitHub: собирайте, форкайте, присылайте pull request. Ошибки и пожелания — в Issues, там же видно, что уже в работе.

Открыть репозиторий
Попробовать

Один агент. Одна память. Ваши файлы

Склонируйте репозиторий, соберите приложение и подключите провайдера. Первый разговор можно начать через пару минут.

На скриншотах — демонстрационные диалоги из встроенного демо приложения. HARNES-S — source-available: исходный код открыт, сборка и изменения разрешены.