Claude Semafor
Настольный светофор для сессий Claude Code. Каждая сессия на каждом подключённом компьютере получает свой светодиод и показывает, работает ли Claude, ждёт ли он вас или уже закончил.
1Как это работает
Claude Code умеет вызывать внешние команды в ключевые моменты: вы отправили запрос,
Claude запускает инструмент, задаёт вопрос, заканчивает ответ. Небольшой скрипт
semafor.py на вашем компьютере ловит эти события и по Wi-Fi сообщает о них
семафору. Семафор зажигает светодиод этой сессии нужным цветом.
Claude Code ──hooks──► semafor.py ──Wi-Fi/HTTP──► Claude Semafor
(ваш компьютер) (светодиоды + экран)
Одна сессия — один светодиод
Открыли три окна Claude Code — горят три светодиода. Сессия закрылась — её светодиод гаснет.
До 8 компьютеров
Каждый компьютер сопрягается отдельно. Кнопкой переключаете, чьи сессии сейчас на ленте.
Без облака
Всё работает в вашей локальной сети. Скрипту нужен только Python 3, без сторонних пакетов.
2Устройство и кнопка
| Элемент | Назначение |
|---|---|
| Светодиодная лента | По одному светодиоду на сессию Claude Code активного компьютера |
| Экран | Номер и имя активного компьютера, заряд батареи, служебные режимы |
| Кнопка | Переключение компьютеров, сопряжение, выключение, включение |
| USB-C | Зарядка встроенного аккумулятора |
Кнопка
| Действие | Что происходит |
|---|---|
| Короткое нажатие | Показать сессии следующего компьютера. В режиме сопряжения — отменить его. При сигнале «лимит» — убрать сигнал. |
| Удержание 3 с | Включается режим сопряжения на 60 секунд.
Отпустите кнопку, как только на экране появится PAIRING. |
| Удержание ещё 5 с | Обратный отсчёт 5…1 на экране, лента гаснет красным — устройство выключается. Отпустили раньше — выключение отменено. |
| Нажатие на выключенном | Устройство включается. |
3Что значат цвета
Сессии Claude Code
| Светодиод | Состояние | Когда |
|---|---|---|
| Жёлтый, «дышит» | Claude работает: обрабатывает запрос, запускает инструменты | |
| Красный, мигает | Нужны вы: Claude задал вопрос или ждёт разрешения | |
| Зелёный | Ответ готов, Claude ждёт следующий запрос | |
| Жёлтый ↔ белый | Работает субагент (Claude запустил помощника) | |
| Не горит | Слот свободен или сессия давно неактивна (через 5 минут зелёный и жёлтый гаснут сами) |
Служебные режимы ленты
| Лента | Что значит |
|---|---|
| Голубая точка бегает туда-обратно — подключение к Wi-Fi | |
| Янтарная волна от центра — сети нет, поднята точка настройки Wi-Fi (раздел 5) | |
| Красные через один, попеременно — достигнут лимит использования Claude. Короткое нажатие убирает сигнал | |
| Вся лента красная и гаснет — идёт отсчёт до выключения, кнопка удерживается |
4Включение и зарядка
Нажмите кнопку — устройство включится и начнёт подключаться к Wi-Fi (голубая бегущая точка). Значок батареи в левом верхнем углу экрана показывает заряд. Когда заряда мало, значок мигает.
Заряжайте через USB-C любым зарядным устройством на 5 В. Если подключить кабель к
выключенному устройству, оно не включится полностью: загорится только экран с
надписью CHARGE, а по окончании — DONE. Лента и Wi-Fi при этом
выключены. Чтобы включить устройство, нажмите кнопку.
На работающем устройстве во время зарядки рядом с батареей виден значок молнии, а
когда аккумулятор заряжен — надпись DONE.
Если аккумулятор сильно разряжен, устройство покажет LOW BAT
и сразу выключится. Поставьте его на зарядку на 15–20 минут и включите снова.
Сильно разряженный аккумулятор при включённой ленте и Wi-Fi не заряжается, поэтому
устройство само уходит в режим зарядки.
5Подключение к Wi-Fi
При первом включении устройство не знает вашу сеть. Через несколько секунд (до
полуминуты, если оно пробует старые сети) оно поднимает собственную точку доступа, а на экране появляется WiFi setup.
На телефоне или ноутбуке откройте список Wi-Fi сетей и подключитесь к открытой сети
Semafor-XXXX. Её имя написано на экране под AP:(на экран помещаются первые 10 символов).- Страница настройки обычно открывается сама. Если нет — откройте в браузере
http://4.3.2.1. - Выберите свою сеть в списке, введите пароль и нажмите Save & Connect.
Устройство отключит точку доступа и подключится к сети. Когда подключение пройдёт,
лента погаснет, а на экране появится
noHost: компьютеры ещё не подключены.
Устройство запоминает до 10 сетей. При включении оно по очереди пробует те, что видит, сверху вниз. Если связь пропала, через 30 секунд оно само переключится на другую сохранённую сеть. Список сетей можно менять позже в веб-интерфейсе.
Нужна сеть 2,4 ГГц: сети 5 ГГц устройство не видит.
Если за 5 минут к точке доступа никто не подключился, устройство выключается, чтобы не тратить батарею. Нажмите кнопку, чтобы попробовать снова.
6Установка на компьютер
На компьютер ставится один файл, semafor.py. Он регистрирует обработчики
событий (hooks) в Claude Code. Поддерживаются macOS и Linux.
Исходный код, README и обновления лежат в репозитории claude_semafor_host на GitHub.
Что понадобится
- Claude Code, уже установленный и хотя бы раз запущенный.
- Python 3. Проверьте в Терминале:
Если команда не найдена:python3 --version- macOS: выполните
xcode-select --installилиbrew install python; - Ubuntu / Debian:
sudo apt install python3.
- macOS: выполните
- Компьютер и семафор должны быть в одной сети.
Установка
- Скачайте скрипт:
git clone https://github.com/vovan-io/claude_semafor_host.git cd claude_semafor_host - Установите его:
Скрипт скопирует себя вpython3 semafor.py install~/.claude/semafor.pyи добавит обработчики в~/.claude/settings.json. Ваши настройки сохранятся, а рядом появится резервная копияsettings.json.bak. Команду можно запускать повторно, например после обновления: дубликатов не будет. - Перезапустите Claude Code, если он был открыт: обработчики читаются при старте.
7Сопряжение
Сопряжение выдаёт компьютеру личный ключ (токен). Без него устройство не принимает команды. Это нужно сделать один раз для каждого компьютера.
Удерживайте кнопку 3 секунды, пока на экране не появится PAIRINGс таймером, и сразу отпустите. Если держать дальше, начнётся отсчёт до выключения.- За 60 секунд выполните на компьютере:
Ответ при успехе:python3 ~/.claude/semafor.py registerpaired as host_id=0 (name=macbook) via 192.168.1.108 (mdns semafor.local), leds=8 saved -> /Users/you/.claude/semafor.json - Режим сопряжения закроется сам. На экране появится номер компьютера и его имя.
Своё имя на экране: register --name work. Помещаются примерно
4 символа, более длинное имя прокручивается бегущей строкой.
Если semafor.local не находится (в некоторых сетях и на Linux без
Avahi), укажите IP-адрес устройства: register --host 192.168.1.108.
Адрес можно посмотреть в роутере.
8Проверка
Прогоните первый светодиод через все цвета:
python3 ~/.claude/semafor.py test
Светодиод должен загореться жёлтым, затем красным, зелёным и погаснуть. После этого откройте Claude Code и отправьте любой запрос. Пока Claude работает, светодиод «дышит» жёлтым. Когда ответ готов, он становится зелёным.
Посмотреть состояние всех компьютеров и сессий:
python3 ~/.claude/semafor.py status
9Несколько компьютеров
Повторите установку и сопряжение на каждом компьютере. Подключить можно до 8 компьютеров. Лента показывает сессии одного, активного, компьютера. Его номер и имя крупно видны на экране.


- Короткое нажатие переключает ленту на следующий компьютер.
- Если на неактивном компьютере Claude ждёт ответа, в правом верхнем углу
экрана появляется
!. Нажимайте кнопку, пока не увидите красный светодиод. - Переименовать компьютер, сделать его активным или удалить можно в веб-интерфейсе.
10Веб-интерфейс
Откройте в браузере на любом устройстве в той же сети
http://semafor.local или IP-адрес семафора.
Компьютеры
Настройки устройства
Сети Wi-Fi
Питание и диагностика
В разделе Power показаны заряд и напряжение батареи. Run self-test в разделе Diagnostics перезагружает устройство в режим проверки железа: по ленте бежит радуга, по экрану — шахматная доска. Выход из проверки — нажатие кнопки.
11Экраны дисплея











12Сон и энергосбережение
Устройство выключается само, чтобы беречь аккумулятор:
- через 60 минут без активности Claude Code;
- через 5 минут в режиме настройки Wi-Fi, если к нему никто не подключился;
- при критическом разряде батареи;
- по вашей команде: удержание кнопки 3 + 5 секунд.
Включается коротким нажатием кнопки. Подключённые компьютеры и сети Wi-Fi запоминаются, повторно настраивать ничего не нужно.
13Обновление прошивки
Готовые файлы прошивки выкладываются на странице Releases. Обновлять можно по Wi-Fi, кабель не нужен.
- Скачайте
firmware.binиз последнего релиза. - Узнайте токен вашего компьютера:
Браузер запомнит токен, вводить его нужно один раз.python3 -c "import json,os;print(json.load(open(os.path.expanduser('~/.claude/semafor.json')))['token'])" - В веб-интерфейсе вставьте токен в поле Token, выберите файл и нажмите
Flash. На экране появится
OTA. Через полминуты устройство перезагрузится с новой прошивкой.
Если обновление прервётся, ничего не сломается: новая прошивка пишется во вторую область памяти. Пока она не проверена, устройство продолжает загружаться со старой.
14Если что-то не так
| Проблема | Что сделать |
|---|---|
pair failed при register |
Окно сопряжения длится 60 секунд. Снова удерживайте кнопку 3 секунды и
выполните команду сразу. Если ошибка повторяется, укажите адрес:
--host <IP>. |
| Светодиоды не реагируют на Claude Code | Перезапустите Claude Code после install. Проверьте связь командой
semafor.py test. Убедитесь, что на экране выбран нужный компьютер:
короткое нажатие переключает их. |
| Голубая точка бегает и не останавливается | Устройство не может подключиться к сохранённой сети. Проверьте роутер и что сеть
2,4 ГГц. Если сеть сменилась, подождите: появится точка доступа
Semafor-XXXX. |
| Сменили роутер или пароль Wi-Fi | Включите устройство: не найдя сеть, оно само поднимет точку настройки (раздел 5). |
semafor.local не открывается |
Откройте IP-адрес устройства (его видно в роутере или в
~/.claude/semafor.json, поле addr). |
| Светодиод «застрял» в жёлтом или зелёном | Если сессия закрылась аварийно, светодиод погаснет сам через 5 минут. |
| Горят не все светодиоды или лишние | Задайте правильное число в веб-интерфейсе (LED count) и выполните
register ещё раз, чтобы компьютер узнал новое число. |
| Устройство не включается | Поставьте на зарядку на 20 минут. Если показывает LOW BAT —
аккумулятор сильно разряжен, заряжайте дольше. |
| Удалить с компьютера | semafor.py unpair забывает сопряжение. Обработчики удаляются из
~/.claude/settings.json вручную (строки с semafor.py). |
15Справочник команд
Все команды: python3 ~/.claude/semafor.py <команда>. Любую можно
направить на конкретный адрес ключом --host 192.168.1.108.
| Команда | Что делает |
|---|---|
install | Копирует скрипт в ~/.claude и добавляет обработчики |
register [--name N] | Сопрягает компьютер (устройство в режиме PAIRING) |
status | Состояние всех компьютеров и сессий |
config | Показать настройки устройства |
config --leds 8 | Число светодиодов |
config --bright 128 --contrast 100 | Яркость ленты и экрана (1–255) |
test | Прогнать первый светодиод через все цвета |
unpair | Забыть сопряжение на этом компьютере |
Claude Semafor · прошивка 1.2.0