health-os
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Персональная система управления здоровьем на Claude Code: 14 AI-врачей, консилиум с обязательным спором, холистический анализ, локальное хранение данных. Не медицинское изделие.
Health-OS
Персональная система управления здоровьем на базе Claude Code. Медкарта, анализы, визиты, лекарства и цели живут локальными файлами, а разбираются консилиумом AI-специалистов, который умеет спорить сам с собой.
▶ Полный разбор системы на YouTube
Как устроена, что умеет и почему сделана именно так
Александр Ярыгин
@alxyrgin
·
Glake
·
Telegram-блог
⚠️ Прочитайте до установки
Это не медицинское изделие. Программа не зарегистрирована, не сертифицирована и не проходила клинических испытаний. Она не диагностирует, не лечит и не предотвращает заболевания.
Это не медицинская рекомендация. Система построена на языковой модели. Модели ошибаются, уверенно излагают неверное и не видят вашего клинического контекста. Любое решение о диагностике и терапии принимает врач.
Некоммерческий проект. Распространяется бесплатно по лицензии MIT, разрабатывается добровольно, не связан с оказанием медицинских услуг, не содержит рекламы и не монетизируется.
Предоставляется «как есть», без гарантий. Вы используете программу исключительно на собственный риск. Авторы не несут ответственности за вред здоровью, ошибочные выводы, утрату или разглашение данных.
Все демонстрационные данные вымышлены. Демо-набор описывает несуществующего человека. Совпадения случайны.
За свои данные отвечаете вы. У проекта нет серверной части, авторы не имеют доступа к вашим файлам. Но и защита этих файлов — шифрование диска, резервные копии, ограничение доступа, соблюдение законодательства вашей юрисдикции — целиком на вас.
Данные уходят в API языковой модели. Иначе система не смогла бы их анализировать. Это основной канал выхода данных за пределы устройства — условия обработки определяет поставщик модели, а не этот проект.
Полные условия — DISCLAIMER.md. Установка означает согласие с ними.
🚨 При признаках неотложного состояния обращайтесь в скорую помощь. Программа не является системой мониторинга и не способна вызвать помощь.

Дашборд на демо-наборе. Все данные вымышлены — реальных сведений о здоровье на снимке нет.
Зачем это нужно
Медицинские данные человека размазаны по десятку мест: PDF из лаборатории, бумажка от врача, приложение фитнес-браслета, память. При этом медицина устроена так, что каждый специалист смотрит в свою зону — и причина симптома регулярно оказывается за её границей.
Health-OS решает две задачи:
- Собрать всё в одном месте в структурированном виде, чтобы данные пятилетней давности можно было сопоставить со вчерашними.
- Заставить систему рассуждать холистически — искать первопричину, а не описывать отклонения, и учитывать образ жизни и среду наравне с анализами.
Что внутри
15 AI-специалистов
Кардиолог, гематолог, эндокринолог, невролог, гастроэнтеролог, уролог, гинеколог, педиатр, дерматолог, ЛОР, ортопед, психиатр, стоматолог, офтальмолог и health-коуч. Каждый — отдельный агент со своей клинической зоной, работающий в изолированном контексте.
Ключевой принцип: в промпте специалиста нет ни одного факта о пациенте. Клиническую картину он строит сам, читая данные. Промпт — это методология, а не медкарта, иначе он неизбежно устаревает и начинает утверждать то, что уже опровергнуто анализами.
Консилиум с настоящим спором
Параллельный запуск специалистов сам по себе консилиумом не является — это набор монологов, где слабая гипотеза выглядит так же убедительно, как сильная. Здесь три раунда:
| Раунд | Что происходит |
|---|---|
| 1 | Независимые заключения вслепую — специалисты не видят выводов друг друга, иначе якорятся на первом озвученном |
| 2 | Перекрёстная критика: те, чьи зоны пересеклись, обязаны оспорить коллег по существу |
| 3 | Разрешение споров по уровню доказательности и синтез общей первопричины |
Искусственный консенсус запрещён. Неразрешённое разногласие попадает в отчёт с обеими позициями — именно оно точно указывает, какое обследование нужно следующим. Сглаженная формулировка эту информацию уничтожает.
Чего это не даёт — сразу и прямо. Пятнадцать агентов работают на одной языковой модели, поэтому их ошибки коррелированы: систематическое заблуждение модели воспроизведётся во всех ролях, включая адвоката дьявола. Согласие специалистов означает, что модель последовательна, а не что вывод верен. Это не пятнадцать независимых мнений и не независимое подтверждение диагноза.
Ценность отчёта — в разделах «Неразрешённые разногласия» и «Пробелы в данных». Там написано, чего система не знает, и это самая надёжная её часть.
Учёт пола
Пол определяет, какие состояния вероятны, какой скрининг показан по возрасту и как читаются одни и те же цифры. В профиле три независимых поля: sex для медицинских выводов, gender_identity для обращения к человеку, hormone_therapy для поправки на терапию. Смешивать их нельзя ни в одну сторону.
Показательный пример — снижающийся ферритин. У женщины детородного возраста это прежде всего вопрос о менструальной кровопотере, у мужчины — показание к эндоскопии. Одни и те же цифры, разный первый шаг обследования. Без поля пола система выбрала бы неверное направление поиска и не сообщила бы об этом.
Если пол не указан, специалист прямо говорит, какие выводы недоступны, — а не предполагает молча.
Профили членов семьи
Одна установка ведёт медкарты нескольких человек: владельца, супруга, детей,
пожилых родителей. Каждый профиль изолирован — данные одного человека не
используются при разборе другого. Единственный канал наследственности —
поле family_history в профиле самого пациента, заполняемое сознательно,
а не автоматическим чтением чужих карт.
Активный профиль один на систему: тот же указатель читают дашборд и
Claude Code. Разойтись и показывать данные разных людей они не могут.
Работа не с тем профилем — самая дорогая ошибка этой подсистемы, поэтому
текущий человек всегда виден в шапке дашборда, объявляется первой строкой
в /day, а проверка целостности отклоняет данные, записанные мимо профиля.
Детский профиль включает педиатрический контур. Взрослые референсы к
детским анализам не применяются: у растущего ребёнка щелочная фосфатаза
кратно выше взрослой нормы и это норма, до 4–5 лет в лейкоформуле
физиологически преобладают лимфоциты, а рост и вес читаются перцентилем по
возрасту, а не абсолютным значением. Специалист, применивший взрослый
интервал, выдал бы патологию там, где её нет. Педиатр ведёт детский случай
и рецензирует заключения остальных.
Профиль другого взрослого заводится с его ведома — см. раздел о данных
третьих лиц в DISCLAIMER.md.
Граф связей
JSON-файлы хранят значения: маркеры, даты, дозировки. Они точны, но между
собой не связаны. Wiki-слой хранит связи и суждения — почему маркер
важен, какая гипотеза его объясняет, кто из врачей что сказал.
Метод — LLM Wiki Андрея Карпаты,
адаптированный под медкарту. Ключевое отличие: числа на страницы не
переносятся. У Карпаты источники неструктурированы, поэтому markdown —
шаг вперёд. Здесь значения уже лежат в JSON, на них построены тренды и
проверки. Страница ссылается на запись, а не копирует её: копия неизбежно
разъезжается с оригиналом.
Практическая ценность не в картинке, а в трёх проверках, которые человек
делать устаёт, а агент — нет:
| Проверка | Что находит в медкарте |
|---|---|
| Противоречия | Кардиолог сказал одно, невролог другое. Гипотеза утверждает «маркер стабилен», свежий анализ показывает падение |
| Сиротки | Анализ загружен и никем не интерпретирован. Гипотеза без следующего шага. Назначение врача, о котором забыли |
| Битые ссылки | Препарат назван в протоколе визита и отсутствует в списке лекарств |
Противоречие не разрешается автоматически: показываются обе позиции и то,
что их рассудит. Расхождение между источниками — это и есть находка.
Холистическая рамка
Обязательна для всех специалистов. Не декларация «мыслите шире», а конкретная машинерия:
- Каузальная лестница из пяти уровней: сигнал → орган → регуляция → первопричина → контекст жизни. Остановка на втором уровне считается незавершённым анализом
- 13 сквозных осей (вегетативная, ГГН, тиреоидная, воспаление, циркадные ритмы, оксигенация и другие) с указанием, какие специальности каждая пересекает
- Матрица контекста жизни: география, климат, жильё, работа, питание, сон, движение, вещества, соцсреда
- Правило приоритета: модифицируемый бытовой фактор проверяется раньше редкой патологии
Методологическая основа — биопсихосоциальная модель Энгеля, аллостатическая нагрузка, парадигма экспосома. Это системная медицина, а не альтернативная.
Доказательная база
Каждое содержательное утверждение маркируется уровнем A/B/C/D/⚠️. Приоритет международных источников: Cochrane, PubMed, NICE, USPSTF, WHO, руководства профильных обществ.
Отдельное жёсткое правило — ссылки подтверждаются, а не выдумываются. У специалистов есть узкий канал в сеть, ограниченный белым списком доменов, ради одной задачи: проверить, что цитируемое руководство существует и говорит именно то, что ему приписывают. Конкретика — DOI, автор, номер руководства — допустима только с открываемым URL, страницу по которому агент открыл. Без URL остаётся прежний режим: орган и тема, без конкретики.
Данные пациента в поисковый запрос не попадают. Запрос формулируется как вопрос о литературе, обезличенно, и показывается вам до отправки. Каждый запрос пишется в журнал — иначе утверждение о приватности непроверяемо. Подробнее — .claude/shared/source-verification.md.
Реагирование на критическое
Пороги неотложных состояний, при которых обычный workflow останавливается: panic values по лабораторным маркерам, гипертонический криз, красные флаги психического состояния с немедленным выводом контактов экстренной помощи.
24 скилла и дашборд
Скиллы покрывают весь цикл: приём документов, расшифровка анализов, визиты, лекарства, зубы, прививки, метрики тела, настроение, цели, поиск врача и анализов. Дашборд на Next.js показывает тренды и карточки. Преимущественно на чтение, но часть роутов умеет писать в Data/ — путь резолвится через resolveWithin(), ввод валидируется. Привязан к 127.0.0.1, CSRF-защиты нет: см. docs/SECURITY.md.

Раздел анализов на демо-данных: тренд маркера, отклонения, ключевые показатели.
Для чего это годится, а для чего нет
Разделение прямое, без смягчений. Оно совпадает с тем, к чему приходят
внешние рецензенты, и лучше сказать это самому.
| Задача | Вердикт |
|---|---|
| Хранить документы, анализы и историю в одном месте | Да — основной сценарий |
| Строить динамику показателей за годы | Да, со сверкой извлечённых цифр с оригиналом |
| Находить противоречия между источниками и пропущенные назначения | Да — то, что человек делать устаёт |
| Готовить сводку и вопросы к приёму | Да — пожалуй, самый недооценённый сценарий |
| Получать второе информационное мнение | Осторожно — только с проверяемыми источниками и как вход для разговора с врачом |
| Искать «первопричину» | Нет — гипотеза системы не является установленной причиной |
| Ставить диагноз или исключать заболевание | Нет — заложено запретом |
| Менять лекарства, дозировки, план обследования | Нет — только после врача |
| Оценивать неотложное состояние | Нет — при подозрении звоните в скорую |
Причина, по которой правая половина таблицы выглядит именно так: у проекта
нет клинических испытаний, нет тестового набора с эталонными диагнозами,
не измерены чувствительность и специфичность, нет независимой врачебной
валидации. Пока этого нет, любой вывод системы остаётся гипотезой, а не
заключением.
Приватность
Проект спроектирован из предположения, что медданные не должны покидать устройство.
| Механизм | Как работает |
|---|---|
| Локальный git | Репозиторий без remote. Пушить некуда по построению |
Инвертированный .gitignore |
Игнорируется всё содержимое Data/, исключения перечислены поимённо. Ошибка приводит к тому, что файл не попадёт в git, а не к утечке |
| Оригиналы вне контроля версий | PDF и сканы содержат PHI в сыром виде и переживают в истории любое удаление |
| Дашборд только на loopback | 127.0.0.1, без доступа из локальной сети. Часть роутов пишет в Data/, поэтому привязка к loopback — основная защита |
| Промпты без PII | Ни один агент не содержит данных пациента |
| Изоляция профилей | Данные одного члена семьи не читаются при разборе другого; проверка целостности отклоняет записи мимо профиля |
| Поиск без данных пациента | Запрос к сети — обезличенный вопрос о литературе, показывается до отправки и пишется в журнал |
Подробнее — docs/SECURITY.md.
Быстрый старт
Сначала — посмотреть на демо-данных
Прежде чем вносить своё, разверните набор вымышленного пациента и осмотритесь:
git clone <репозиторий> health-os && cd health-os
./setup.sh --demo
cd Dashboard && npm install && npm run dev
Дашборд откроется на http://127.0.0.1:3000.
Затем — своя установка
Демо и рабочий режим не смешиваются: перед переходом очистите Data/, иначе индексы разойдутся с файлами. Команда очистки — в INSTALL.md.
./setup.sh
Затем откройте проект в Claude Code и запустите:
/onboarding
Скилл проведёт discovery-интервью и соберёт стартовую медкарту.
Подробная установка — INSTALL.md. Пошаговый онбординг — docs/ONBOARDING.md.
Требования
- macOS или Linux. На Windows — через WSL2: установка и хуки написаны на bash
- Claude Code
- Python 3.10+ — для скрипта проверки целостности
jq— для хуков сессий- Node.js 20+ и npm — только для дашборда, система работает и без него
Опционально: MCP-серверы для WHOOP, Todoist и Google Calendar.
Документация
| Файл | О чём |
|---|---|
| DISCLAIMER.md | Условия использования и отказ от ответственности — прочитать первым |
| INSTALL.md | Установка по шагам |
| docs/ONBOARDING.md | Первые дни работы с системой |
| docs/ARCHITECTURE.md | Как устроено внутри |
| docs/SECURITY.md | Модель угроз и правила |
| CLAUDE.md | Инструкции для Claude Code |
| .claude/shared/ | Рамки рассуждения и схемы данных |
Ограничения, о которых стоит знать заранее
- Система не заменяет врача и не предназначена для самодиагностики
- Доступ в сеть узкий и односторонний — специалисты могут подтвердить источник по белому списку доменов (Cochrane, PubMed, NICE, USPSTF, WHO), но не ищут свободно. Данные пациента в запросы не попадают
- Качество выводов зависит от полноты данных. Пустая медкарта даст пустой анализ
- Проект ориентирован на российский контекст в части ОМС, лабораторий и маршрутизации, но клиническая часть универсальна
- Это персональный инструмент, а не медицинская информационная система: нет многопользовательского режима, аудита доступа и сертификации
Автор
|
|
Александр Ярыгин — @alxyrgin Основатель Health-OS вырос из личной задачи: собрать разрозненную медкарту в одно место и заставить систему рассуждать о ней целиком, а не по кусочкам. Проект сделан для себя и открыт как есть. 📺 Полный разбор системы на YouTube — как устроена и почему именно так |
Проект остаётся некоммерческим: он бесплатен, не содержит рекламы, не продаёт услуг и не собирает ваши данные. Ссылки выше — указание авторства, а не предложение чего-либо купить.
Лицензия
MIT — см. LICENSE.
Лицензия распространяется на код и промпты. Ваши медицинские данные принадлежат вам и остаются на вашем устройстве.
⚕️ Информация, которую выдаёт система, носит справочный характер. Для принятия решений о лечении обратитесь к врачу. При признаках неотложного состояния звоните в скорую помощь.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi