Вместе с Claude сделал бесплатный Spotlight с ИИ для Mac и Windows: ищет файлы и отвечает на вопросы в одной строке. chatgpt.. chatgpt. Claude.. chatgpt. Claude. claude code.. chatgpt. Claude. claude code. macOS.. chatgpt. Claude. claude code. macOS. ollama.. chatgpt. Claude. claude code. macOS. ollama. Open source.. chatgpt. Claude. claude code. macOS. ollama. Open source. openrouter.. chatgpt. Claude. claude code. macOS. ollama. Open source. openrouter. spotlight.. chatgpt. Claude. claude code. macOS. ollama. Open source. openrouter. spotlight. windows.. chatgpt. Claude. claude code. macOS. ollama. Open source. openrouter. spotlight. windows. ИИ.. chatgpt. Claude. claude code. macOS. ollama. Open source. openrouter. spotlight. windows. ИИ. искусственный интеллект.. chatgpt. Claude. claude code. macOS. ollama. Open source. openrouter. spotlight. windows. ИИ. искусственный интеллект. лаунчер.

Каждый день я делал одно и то же: открывал Spotlight, чтобы найти файл или запустить программу, а потом лез в браузер, открывал вкладку с ИИ и вставлял туда вопрос. Два разных места для одного действия — «мне нужно что-то быстро». Захотелось, чтобы это была одна строка: нажал клавишу, напечатал — и если это файл, он открывается, а если вопрос, отвечает нейросеть.

Так появилась Lumi — бесплатная программа с открытым кодом для macOS и Windows. Сделал я её не один, а вместе с ИИ-ассистентом Claude Code: о том, как это было, — в конце статьи.

Что умеет

Одна клавиша на всё. Строка открывается по ⌥ Ё на Mac и Alt+Ё на Windows — клавише слева от единицы. Она не занята ни системой, ни популярными программами, и до неё легко дотянуться левой рукой.

Сама понимает, поиск это или вопрос. Набираете «отчёт» — видите файлы и программы. Набираете «как перевести дюймы в сантиметры» — внизу появляется строка «Спросить Claude», и по Enter ответ печатается прямо в окне. Если надо спросить модель, даже когда нашлись файлы, — ⌘↩ / Ctrl+Enter. Уточняющие вопросы продолжают разговор, Esc — назад.

Поиск — системный. На Mac Lumi использует индекс Spotlight, на Windows — меню «Пуск» и Windows Search. Своего индексатора нет, ничего не сканируется заново и не грузит диск.

Любая нейросеть на выбор:

  • Подписки без API-ключей. Если у вас уже есть подписка Claude, ChatGPT или Google-аккаунт для Gemini, Lumi работает через их официальные консольные программы: Claude Code, Codex CLI и Gemini CLI. Вы один раз входите в свой аккаунт в самой программе сервиса, а Lumi просто передаёт ей вопрос. Ключи и пароли Lumi не видит.

  • Любой OpenAI-совместимый сервис: OpenRouter, OpenAI, DeepSeek, Groq, Mistral, а также YandexGPT и GigaChat. Достаточно вставить адрес, ключ и название модели.

  • Локальные модели через Ollama или LM Studio — бесплатно, без интернета и без ограничений по странам.

Пять языков интерфейса: русский, английский, немецкий, испанский и французский.

Как пользоваться бесплатно

Платить за подписку не обязательно. Два самых простых варианта:

  1. OpenRouter. Регистрируетесь на openrouter.ai, создаёте ключ и в Lumi выбираете «Подключить модель» → OpenRouter. Модели с пометкой :free бесплатны, например google/gemma-4-31b-it:free (хорошо знает русский) или nvidia/nemotron-3-super-120b-a12b:free. У бесплатных моделей бывают очереди: если пришёл пустой ответ, подождите или возьмите другую.

  2. Ollama. Ставите Ollama, скачиваете модель командой ollama pull <модель>, в Lumi выбираете «Подключить модель» → Ollama. Всё работает на вашем компьютере, вопросы никуда не уходят. Для слабых машин берите модели поменьше — на 3–8 миллиардов параметров.

Если вы в России: Claude, ChatGPT и Gemini официально здесь недоступны, а сервисы иногда отвечают ошибкой 403. Lumi в этом случае так и объясняет: сервис не принимает запросы из вашей страны или сети, а ключ, скорее всего, в порядке. Без ограничений работают Ollama, GigaChat и YandexGPT.

Как это устроено

Для тех, кому интересно заглянуть внутрь.

Две отдельные программы, без кроссплатформенных фреймворков. Версия для Mac написана на Swift (AppKit + SwiftUI), для Windows — на C# (WPF, .NET 8). Electron не хотелось: программа, которая висит в фоне целый день и открывается по клавише, должна стартовать мгновенно и почти не занимать память. Mac-версия собирается одним вызовом swiftc без проекта Xcode — весь процесс сборки умещается в короткий shell-скрипт.

Окно поиска. На Mac это NSPanel, который не отбирает фокус у текущего приложения и появляется поверх полноэкранных окон, а SwiftUI внутри подстраивает его высоту под результаты. Поиск — через NSMetadataQuery, тот же движок, что у Spotlight.

Горячая клавиша на любой раскладке. На Mac клавиша регистрируется через Carbon RegisterEventHotKey сразу под двумя кодами: ANSI-клавиатуры сообщают её как Grave, европейские ISO — как Section. На Windows было интереснее: RegisterHotKey принимает виртуальный код клавиши, а он зависит от раскладки (` на английской, ^ на немецкой, ² на французской). Поэтому Lumi ставит низкоуровневый хук клавиатуры и узнаёт клавишу по скан-коду 0x29 — её физическому месту. Попутно пришлось учесть, что Ctrl+Alt на европейских раскладках — это AltGr, которым печатают символы, и такие нажатия Lumi пропускает.

Ответы потоком. С консольными программами Lumi общается через их JSON-потоки: claude -p --output-format stream-json, codex exec --json, gemini --output-format stream-json. Каждая строка — событие, из которого берётся новый кусок текста. Codex и Gemini запускаются в режиме «только чтение» в пустой папке: Lumi задаёт вопросы, а не даёт нейросети управлять компьютером. С OpenAI-совместимыми сервисами — обычный Server-Sent Events. Подвох: некоторые сервисы возвращают ошибку не HTTP-кодом, а событием error внутри успешного потока, и без отдельной обработки пользователь видел бы просто пустой ответ.

Ключи хранятся в Связке ключей на Mac и шифруются через DPAPI на Windows — в настройках на диске их нет.

Сборка и выпуск — целиком на GitHub Actions. Тег v* запускает сборку обеих версий: .dmg для Mac, установщик Inno Setup и portable-.exe для Windows. Windows-версию перед публикацией прогоняет автотест: запускает программу на виртуальной машине, нажимает горячую клавишу, ищет, задаёт вопрос и сохраняет скриншот после каждого шага. Затем публикуется релиз, а заметка о версии сама уходит постом в Telegram-канал.

Как мы это делали: я и Claude Code

Скрывать не буду: код Lumi писал не я руками, а Claude Code — ИИ-ассистент для программирования, который работает прямо в терминале. Но и «нажал кнопку — получил приложение» тоже не про это. Получилась настоящая совместная работа, где у каждого своя роль.

Что делал я. Придумывал, что должна уметь программа, и объяснял это обычными словами: «объедини Spotlight и свою строку в одно приложение», «сделай так, чтобы можно было подключать разные модели», «добавь Windows», «поддержи разные языки». Пользовался каждой сборкой сам и решал, что оставить, а что переделать: какая горячая клавиша удобнее, какая иконка лучше, не слишком ли острые углы у маскота. Выбрал название и маскота из десятков вариантов, записал видео для демонстрации. И, что оказалось очень важным, раздал программу друзьям и приносил их проблемы.

README и тексты я не писал с нуля, но решал, что в них должно быть: на каких языках, с какой гифкой, как разделить инструкции для Mac и Windows. Потом читал и просил поправить, пока не становилось понятно человеку, который видит проект впервые.

Что делал Claude. Писал код на Swift и C#, разбирался с системными API, настроил сборку и автотесты на GitHub, писал README и тексты к обновлениям. Когда я присылал скриншот с ошибкой, он находил причину и чинил.

Что я понял по ходу:

  • Реальные пользователи важнее всего. Самые полезные исправления появились из жалоб друзей. У одного Lumi писала «Claude Code не найден», хотя он вообще не хотел пользоваться Claude, а хотел другую модель. А когда сервис отвечал ошибкой 403, Lumi называла её «неверным ключом», хотя на деле запросы блокировались по стране. Сам я бы этого не заметил: у меня всё работало.

  • Нужно проверять, а не верить на слово. Windows-компьютера у меня нет, поэтому Windows-версию проверяет автотест на виртуальной машине GitHub: он запускает программу, нажимает клавиши и делает скриншоты. Он не раз ловил ошибки, которые иначе ушли бы к пользователям.

  • Решения остаются за человеком. ИИ быстро пишет код, но что делать, как назвать, когда выпускать и что публиковать — решал я. Каждый пост в канал и каждый релиз выходил только после моего «да».

Если давно хотели сделать свою программу, но не умеете программировать или не хватает времени, — попробуйте так. Главное — чётко понимать, что вы хотите получить, и много пользоваться тем, что получается.

Что дальше

В планах — история вопросов, вопрос по снимку экрана («что на этой картинке?») и свои быстрые команды вроде «переведи» или «объясни код». Буду рад идеям в комментариях: чего вам не хватает в Spotlight или в «Поиске» Windows?

Ссылки

Программа пока не подписана сертификатами Apple и Microsoft, поэтому при первом запуске система предупредит о неизвестном разработчике. На Mac: правый клик → «Открыть» → «Открыть». На Windows: «Подробнее» → «Выполнить в любом случае». Весь код открыт — можно проверить, что программа делает, или собрать её самому.

Lumi — независимый проект, не связан с Anthropic, OpenAI или Google.

Автор: AlbertS15

Источник