Перейти к содержанию

Десктоп-приложение

В комплекте с glia идёт небольшая графическая оболочка — окно чата, которое вдобавок показывает «стеклянный ящик» в реальном времени (стриминг токенов, вызовы инструментов, подтверждения). Под капотом работает настоящий glia.Agent, поэтому приложение заодно служит демонстрацией библиотеки.

оболочка glia — чат слева, живая панель «стеклянного ящика» справа

Два способа получить

1. Скачать бинарник (Python не нужен)

Возьмите готовую сборку под вашу ОС из последнего релиза:

  • glia-shell-windows.exe
  • glia-shell-macos
  • glia-shell-linux

Запустите двойным кликом (или из терминала). Приложение поднимает локальный сервер и открывается в браузере. Никуда ничего не загружается — всё работает на вашей машине.

2. Установить из PyPI (нативное окно)

pip install "glia-agents[shell]"
glia-shell

При такой установке приложение открывается в нативном окне (через pywebview), а при отсутствии оконного бэкенда — в браузере. Флаг glia-shell --web принудительно включает режим браузера.

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

  • История разговоров сохраняется. Сайдбар хранит историю чатов (как чек-пойнты траекторий glia в конфигурационной папке), поэтому она переживает перезапуск — создавайте новые чаты, переключайтесь и удаляйте их.
  • Ответы рендерятся как Markdown — жирный текст, списки, ссылки и блоки кода с кнопкой копирования. Тему (светлая/тёмная) можно выбрать в сайдбаре.
  • Работает офлайн из коробки. В режиме demo приложение отвечает эхом на ваши сообщения — можно попробовать интерфейс и посмотреть на поток событий без какой-либо настройки.
  • Запустите локальную модель — бесплатно. В Settings выберите Ollama, укажите модель (например, qwen2.5 или deepseek-r1) и хост, сохраните. Если установлен Ollama и модель скачана (ollama pull qwen2.5), всё работает локально на вашей машине — без ключа и без сети.
  • Добавьте ключ для настоящего Claude. Откройте Settings, выберите Claude, вставьте свой Anthropic API-ключ (он хранится локально в вашей конфигурационной папке и никогда не возвращается в UI), выберите модель и сохраните. Теперь сообщения идут в Claude, а два демо-инструмента (current_time, word_count) появляются в «стеклянном ящике» при вызове.
  • «Стеклянный ящик» справа перечисляет каждое событие ровно так, как их испускает библиотека — model_call, model_delta, tool_called, tool_returned, approval_resolved, run_finished. Переключается кнопкой Glass box.
  • New chat начинает новый разговор; Quit останавливает локальный сервер.

Как это сделано

Оболочка намеренно тонкая и с минимумом зависимостей:

  • Сервер — чистая стандартная библиотека Python (http.server), без веб-фреймворка. Ответы чата стримятся через Server-Sent Events.
  • UI — один самодостаточный HTML-файл (без шага сборки).
  • Единственная опциональная зависимость — pywebview, и только для нативного окна; скачиваемые бинарники работают в режиме браузера вообще без сторонних зависимостей.

Иными словами, приложение само — «стеклянный ящик»: весь его код можно прочитать в glia/shell/.