Начало работы
Установка
| Команда | |
|---|---|
| Настольное приложение, macOS | brew install --cask irooftop/tap/irooftop |
| Настольное приложение, Windows | Установщик (.exe) или .msi |
| Настольное приложение, Linux | AppImage, .deb или .rpm |
| Сервер, macOS и Linux | brew install irooftop/tap/rooftop (затем brew services start rooftop) |
| Сервер, где угодно с Rust ≥ 1.88 | cargo install rooftop |
| Сервер, контейнер | docker pull ghcr.io/irooftop/rooftop (Docker) |
Настольному приложению терминал не нужен: см. Настольное приложение.
Запуск
export OPENAI_BASE_URL=https://openrouter.ai/api/v1 # значение по умолчанию; подойдёт любой API, совместимый с OpenAI
export OPENAI_API_KEY=…
export OPENAI_MODEL=openai/gpt-6-luna # должна поддерживать вызов инструментов
rooftop # http://127.0.0.1:8080Переменные могут также храниться в файле .env рядом с тем местом, откуда вы запускаете rooftop, или быть заданы позже в Настройках. Кнопка Проверить в Настройках отправляет небольшой запрос и простыми словами объясняет, что не так, например «openrouter.ai отклонил ключ API (401)».
Хотите, чтобы ничего не покидало ваш компьютер? Используйте локальную модель и автономный режим.
Ваш первый чат
┌──────────────┐ ┌────────────────────┐ ┌──────────────────────┐
│ 1. Экспорт │ ──▶ │ 2. Перетащите │ ──▶ │ 3. Новый чат: кого │
│ чата │ │ на страницу │ │ играет ИИ │
└──────────────┘ └────────────────────┘ └──────────────────────┘- Экспортируйте чат из Telegram Desktop или WhatsApp.
- Перетащите папку,
.zipили.txtWhatsApp на страницу (или запуститеrooftop --import <папка>). - Нажмите Новый чат и выберите персонажа: другого человека или себя («общаться с собой в своём стиле»).
Попробуйте без своих чатов
В репозитории есть два вымышленных экспорта в examples/: Джонас и Прия готовят лазанью в Telegram, Софи и Даниэль проводят выходные в WhatsApp.
git clone https://github.com/irooftop/rooftop && cd rooftop
rooftop --import ./examples/telegramНет экспорта? Начните с заметок
Новый чат → Из заметок требует только имя этого человека (ваше необязательно) и несколько строк о нём: кто он, что вы разделяете, как он пишет («зовёт меня солнышко, короткие сообщения, много ❤️»). ИИ пишет как он только по этим заметкам. Без истории нет профиля стиля и медиатеки, поэтому чем подробнее заметки о том, как он пишет, тем ближе получится. Заметки можно изменить в чате в любой момент (✎), а чатом поделиться по ссылке, как и любым другим. Удаление чата удаляет всё, что в нём было.
Что в окне
| Кнопка | Что делает |
|---|---|
| Поделиться | Ссылки, чтобы друзья могли говорить с персонажем |
| Медиатека | Каждый стикер, GIF, фото и голосовое с тем, что ИИ о них знает |
| Заметки | То, чего нет в экспорте. Персонаж их читает, посетители — никогда |
{ } | Точный JSON, отправленный модели, и потраченные токены |
| Переписать | Удаляет последний ответ персонажа и пишет его заново |
| Пусть пишет первым | Персонаж начинает разговор |