Универсальный инструмент разработки
Git • Редактор кода • AI-модели • Агенты • Мониторинг
Версия документации: 4.0 | Дата: 2026-06-01
- Установка и первый запуск
- Панель мониторинга
- Работа с проектами и Git
- Файловый менеджер
- Редактор кода
- AI-агенты и чат
- Управление моделями LM Studio
- Мониторинг логов
- Справочная система
- PWA — установка как приложение
- Горячие клавиши
- Устранение неполадок
- Кроссплатформенная установка
Способ 1 — Автоматический скрипт (рекомендуется)
# Открыть Terminal.app на MacBook
~/Projects/automation/start-ai-services.shСкрипт проверяет и запускает 4 сервиса:
| Сервис | Порт | Что делает |
|---|---|---|
| LM Studio | 1234 | Локальный LLM-сервер (OpenAI-совместимый API) |
| Open WebUI | 8080 | Веб-интерфейс для чатов с моделями |
| Agent TARS | 8888 | Автономный AI-агент с браузером |
| Control Center | 9090 | Эта панель — единый интерфейс |
Способ 2 — Запуск вручную по отдельности
# 1. LM Studio — запустить приложение через Spotlight (⌘+Space → "LM Studio")
# Затем загрузить модель через GUI или CLI:
~/.lmstudio/bin/lms load qwen/qwen3-vl-32b
# 2. Open WebUI
source ~/open-webui-env/bin/activate
OPENAI_API_BASE_URLS="http://localhost:1234/v1" \
OPENAI_API_KEYS="lm-studio" \
ENABLE_OPENAI_API=true \
open-webui serve --port 8080
# 3. Agent TARS
/opt/homebrew/bin/agent-tars run --server-port 8888 \
--provider openai-compatible \
--api-base-url http://localhost:1234/v1 \
--model qwen/qwen3-vl-32b
# 4. Control Center
cd ~/Projects/automation/control-panel
python3 server.pyПроверка: Открыть в браузере http://localhost:9090
Все 4 индикатора на вкладке «Панель» должны быть зелёными ●
Если MacBook доступен по сети (IP или Tailscale):
# С любого компьютера в той же сети:
http://192.168.1.xxx:9090 # Локальная сеть
# Через Tailscale (VPN):
http://your-mac-ip:9090 # Tailscale IP MacBook
# Через SSH-туннель (если порт закрыт):
ssh -L 9090:localhost:9090 user@your-mac-ip
# Затем открыть http://localhost:9090 на своём компьютере| Сервис | URL | Логин | Пароль |
|---|---|---|---|
| Open WebUI | http://localhost:8080 | your-email@example.com | your-password |
| Control Center | http://localhost:9090 | — (без авторизации) | — |
| LM Studio API | http://localhost:1234/v1 | — | API Key: lm-studio |
| Your Web App | https://your-domain.com | your-email@example.com | your-password |
~/Projects/
├── your-project/ # 🏠 Главный проект (master)
│ ├── nextjs_space/ # Исходный код Next.js
│ │ ├── app/ # Страницы и API
│ │ ├── components/ # UI-компоненты
│ │ ├── lib/ # Библиотеки (auth, db, s3)
│ │ ├── prisma/ # Схема БД
│ │ └── .env # Переменные окружения
│ └── docs/ # Документация
├── project-feature-a/ # 🔐 SSO разработка
├── project-feature-b/ # 📋 DevTask разработка
├── project-tests/ # 🧪 Тесты
└── automation/
├── control-panel/
│ ├── server.py # Control Center (2479 строк)
│ └── projects.json # Конфигурация доп. проектов
├── start-ai-services.sh # Запуск всех сервисов
├── start-agent-team.sh # Запуск 4 агентов в tmux
└── agent-manager/
└── logs/agents.log # Логи агентов
Шаги:
- Открыть
http://localhost:9090 - Нажать 🎛 в sidebar (первая кнопка) — вкладка «Панель»
- Секция Сервисы — 4 карточки:
- ● зелёный = сервис работает
- ● красный = сервис не отвечает
- Клик по карточке — открывает URL сервиса в новой вкладке
Шаги:
- На вкладке 🎛 Панель — секция Info bar
- Показатели:
- RAM bar:
Используется/Всего GB (процент)— фиолетовый градиент - Swap: объём файла подкачки (должен быть 0 GB)
- Давление:
нет/низкое/среднее/высокое
- RAM bar:
Когда действовать:
- Swap > 0 → выгрузить неиспользуемые модели
- Давление «среднее» → закрыть Agent TARS если не нужен
- Давление «высокое» → СРОЧНО выгрузить модели, система тормозит
Шаги:
- На вкладке 🎛 Панель — секция Модели
- Каждая модель показывает:
- Имя, размер (GB), параметры, статус (✅ loaded / ⚪ available)
- Кнопки:
- Загрузить — загружает модель в VRAM (может занять 30-60 сек)
- Выгрузить — освобождает память
- 🔄 Обновить — обновить список моделей
Шаги:
- Нажать 📁 в sidebar — вкладка «Проекты»
- В левой панели — список всех проектов:
- 🏠 Главный (master) — production-код
- 🔐 SSO Improvements — авторизация
- 📋 DevTask Enhancements — задачи
- 🧪 Test Coverage — тесты
- Рядом с каждым проектом:
- Текущая ветка (⑂ master, ⑂ feature/...)
- Бейдж с числом изменений (жёлтый) — если есть uncommitted файлы
- Кликнуть на проект → загрузится Git-панель + файловое дерево
Способ 1 — Через интерфейс:
- Нажать ➕ в sidebar (внизу) или в шапке списка проектов
- Заполнить форму:
- Ключ: уникальное имя латиницей (
my-1c-project) - Путь: полный путь на MacBook (
~/Projects/my-1c-project) - Название: отображаемое имя (
Проект 1С:Управление) - Иконка: любой эмодзи (📁 🔧 💼 🎮 🏗)
- Ключ: уникальное имя латиницей (
- Нажать «Добавить»
Способ 2 — Через файл конфигурации:
# Редактировать на MacBook:
nano ~/Projects/automation/control-panel/projects.json{
"1c-erp": {
"path": "~/Projects/1c-erp",
"branch": "main",
"label": "1С:ERP Управление",
"icon": "🏗"
},
"api-gateway": {
"path": "~/Projects/api-gateway",
"branch": "develop",
"label": "API Gateway",
"icon": "🔗"
}
}Перезапустить сервер: lsof -ti:9090 | xargs kill -9 && cd ~/Projects/automation/control-panel && python3 server.py &
Шаги:
- Выбрать проект в списке
- В Git-панели (центральная колонка, верх) нажать ⬇ Pull
- Выполняется
git pull --rebase - Toast-уведомление: «Pull OK» (зелёный) или «Pull failed: ...» (красный)
Эта же задача из терминала:
cd ~/Projects/your-project # или другой проект
git pull --rebaseШаги:
- Выбрать проект → нажать 📝 Commit в Git-панели
- В модальном окне:
- Список всех изменённых файлов с чекбоксами ☑
- Статусы: M (изменён), A (добавлен), D (удалён), ?? (новый)
- Снять галочку = не включать файл в коммит
- Ввести сообщение коммита по формату:
feat: добавлена авторизация SSO через ADFS fix: исправлена валидация email docs: обновлена документация API refactor: оптимизация запросов к БД test: E2E тесты для верификации - Нажать Commit
Эта же задача из терминала:
cd ~/Projects/your-project
git add -A # или git add конкретные_файлы
git commit -m "feat: описание"Шаги:
- Выбрать проект → нажать ⬆ Push в Git-панели
- Выполняется
git push - Toast: «Push OK» или ошибка
Частая ошибка: «Push rejected» — сначала сделайте ⬇ Pull
Из терминала:
git push origin master # или текущую веткуШаги:
- Выбрать проект → нажать 📊 Diff
- Модальное окно показывает все изменения:
- Зелёные строки
+— добавлены - Красные строки
-— удалены - Синие заголовки
@@— номера строк
- Зелёные строки
Из терминала:
git diff # все изменения
git diff -- path/to/file.ts # конкретный файл
git diff --cached # staged измененияСценарий: работаете в SSO, нужно срочно починить master.
Шаги:
- В SSO проекте нажать 📦 Stash → изменения сохранены
- Переключиться на Главный проект → исправить → Commit → Push
- Вернуться в SSO → нажать 📤 Pop → изменения восстановлены
Из терминала:
git stash push -m "WIP: SSO refactor" # сохранить
git stash list # показать список
git stash pop # восстановить последний
git stash drop stash@{0} # удалитьШаги:
- Выбрать проект → нажать 🔀 Branches
- В модальном окне — список всех веток (локальных и remote):
- ● текущая ветка
- ○ другие ветки
- Кликнуть по ветке →
git checkout branch_name
Из терминала:
git branch -a # список всех веток
git checkout feature/sso-improvements # переключиться
git checkout -b feature/new-task # создать новую веткуТолько из терминала (пока нет кнопки в UI):
cd ~/Projects/your-project
git checkout master
git merge --no-ff feature/sso-improvements -m "merge: SSO в master"
git pushСпособ 1 — Навигация по дереву:
- Выбрать проект → файловое дерево (средняя колонка)
- Кликнуть на папку → открыть содержимое
- ⬆
..→ подняться на уровень выше - Иконки типов:
Иконка Расширение Тип 🐍 .py Python 🔷 .ts TypeScript ⚛ .tsx, .jsx React 🟨 .js JavaScript 📋 .json JSON 🎨 .css CSS 🌐 .html HTML 📝 .md Markdown ⚙ .yaml, .yml Конфигурация 💎 .prisma Prisma Schema 🔒 .env Переменные окружения 🖥 .sh Shell-скрипт
Способ 2 — Фильтр:
- Ввести часть имени файла в поле «Фильтр файлов...»
- Дерево мгновенно фильтруется
Способ 3 — Поиск по содержимому (Ctrl+P):
- Нажать Ctrl+P (или ⌘+P на Mac)
- Ввести текст для поиска (например,
getServerSession) - Результат: список файлов с совпадениями и номерами строк
- Кликнуть по результату → файл откроется в редакторе на нужной строке
Из терминала:
cd ~/Projects/your-project/nextjs_space
grep -rn "getServerSession" --include="*.ts" --include="*.tsx" .
find . -name "*.prisma"| Индикатор | Значение |
|---|---|
| M (жёлтый) | Файл изменён (modified) |
| A (зелёный) | Файл добавлен (staged) |
| D (красный) | Файл удалён |
| ?? | Новый неотслеживаемый файл |
| ● (жёлтый, у папки) | Внутри папки есть изменения |
Автоматически скрываются: node_modules, .next, .build, .git, __pycache__, .cache, dist, .yarn, venv, .venv
Отображаются из скрытых: .env, .gitignore, .eslintrc.json, .prettierrc
Шаги:
- Кликнуть файл в файловом дереве → откроется в правой панели
- Редактировать как в обычном текстовом редакторе
- Ctrl+S (или ⌘+S) — сохранить
- Toast: «Сохранено: filename» (зелёный)
Шаги:
- Кликнуть первый файл → открывается в редакторе
- Кликнуть второй файл → открывается во втором табе
- Переключение между табами — кликом
- Закрытие таба — кнопка × (если файл изменён — спросит подтверждение)
- Жёлтая точка ● на табе = файл изменён, но не сохранён
| Поле | Описание |
|---|---|
| Язык | Определяется по расширению (Python, TypeScript, JSON...) |
| Строки | Количество строк в файле |
| Размер | Размер в B / K / M |
| Позиция | Ln (строка), Col (колонка) курсора |
- Максимальный размер файла: 2 МБ
- Бинарные файлы (.png, .jpg, .pdf, .zip) не открываются
- Tab вставляет 2 пробела (мягкий таб)
- Для серьёзного рефакторинга → используйте AI-агенты (Aider) или VS Code
Шаги:
- Нажать 🤖 в sidebar → вкладка «Агенты»
- В секции «Запуск AI-агента»:
- Worktree: выбрать проект (SSO, DevTask, Tests...)
- Агент: выбрать тип
- Задание (опционально): описать задачу
- Нажать ▶ Запустить
Типы агентов:
| Агент | Команда | Для чего |
|---|---|---|
| ⚡ Aider | aider --model openai/MODEL |
Автоматические правки кода, понимает Git |
| 🔧 OpenCode | opencode |
Интерактивная разработка в CLI |
| 🧠 SmoLAgent | smolagent --model openai/MODEL |
Мульти-модальный агент |
Эта же задача из терминала:
# Aider
cd ~/Projects/project-feature-a
export OPENAI_API_BASE=http://localhost:1234/v1
export OPENAI_API_KEY=lm-studio
aider --model openai/qwen2.5-coder-32b-instruct-4bit --no-auto-commits --dark-mode
# OpenCode
cd ~/Projects/project-tests
opencode
# Все 4 агента одновременно
~/Projects/automation/start-agent-team.shШаги:
~/Projects/automation/start-agent-team.shСоздаёт tmux-сессию agents с 4 панелями:
┌──────────────┬──────────────┐
│ 🔐 SSO │ 📋 DevTask │
│ (aider) │ (aider) │
├──────────────┼──────────────┤
│ 🧪 Тесты │ 📊 Главный │
│ (opencode) │ (monitor) │
└──────────────┴──────────────┘
Управление tmux:
tmux attach -t agents # Подключиться к сессии
# Ctrl+B → стрелки — переключение панелей
# Ctrl+B → D — отключиться (сессия жива)
# Ctrl+B → Z — развернуть/свернуть панель
# Ctrl+B → [ — прокрутка (q — выход)Шаги:
- На вкладке 🤖 → секция Quick Chat
- В чипе справа — текущая модель (
qwen/qwen3-vl-32b) - Ввести вопрос в поле, нажать Enter или ⬆
- Ответ в пузыре AI — поддерживает Markdown, код
Примеры вопросов:
- «Как реализовать OIDC авторизацию в Next.js?»
- «Напиши Prisma миграцию для таблицы Tasks»
- «Объясни этот код: [вставить код]»
- «Найди баг в функции calculateTotal()»
- «Напиши тест Playwright для страницы логина»
- «Как подключить ADFS к NextAuth?»
Эта же задача через Open WebUI (более мощный интерфейс):
- Открыть
http://localhost:8080 - Логин:
your-email@example.com/your-password - Полная история чатов, настройка промптов, загрузка файлов
Эта же задача через API (curl):
curl -s http://localhost:1234/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer lm-studio" \
-d '{
"model": "qwen/qwen3-vl-32b",
"messages": [
{"role": "system", "content": "Ты помощник разработчика. Отвечай на русском."},
{"role": "user", "content": "Как сделать SSO logout в Next.js?"}
],
"temperature": 0.3,
"max_tokens": 2048
}' | python3 -m json.toolСпособ 1 — Через панель:
- Вкладка 🎛 → секция «Модели»
- Найти модель с пометкой ⚪ available
- Нажать Загрузить → ожидание 30-60 сек
Способ 2 — Через CLI:
~/.lmstudio/bin/lms load qwen/qwen3-vl-32b
~/.lmstudio/bin/lms load qwen2.5-coder-32b-instruct-4bitСпособ 3 — Через API:
curl -X POST http://localhost:1234/v1/models/load \
-H "Content-Type: application/json" \
-d '{"model": "qwen/qwen3-vl-32b"}'Способ 1 — Через панель: кнопка Выгрузить на карточке модели
Способ 2 — Через CLI:
~/.lmstudio/bin/lms unload qwen/qwen3-vl-32b| Модель | Размер | Назначение | VRAM |
|---|---|---|---|
| Qwen3 VL 32B | ~18 GB | Vision + Code — основная рабочая | ~20 GB |
| Qwen 2.5 Coder 32B | ~18 GB | Программирование — для Aider | ~20 GB |
| DeepSeek R1 0528 | ~18 GB | Рассуждения, сложные задачи | ~20 GB |
⚠️ M4 Max (64 GB) может держать 1-2 больших модели одновременно
Через панель:
- Вкладка 🤖 → секция «Логи агентов» (внизу)
- В dropdown выбрать tmux-сессию (
agents) - Нажать 🔄 → загрузятся последние 50 строк
- Флажок auto = обновление каждые 5 сек
Через терминал:
tmux attach -t agents # Подключиться к сессии
# или
tmux capture-pane -t agents -p # Показать содержимоеcat /tmp/cc.log # Логи Control Center
cat /tmp/open-webui.log # Логи Open WebUI
cat /tmp/agent-tars.log # Логи Agent TARS
cat ~/Projects/automation/agent-manager/logs/agents.log # Логи агентовШаги:
- Нажать 📚 в sidebar → вкладка «Справка»
- 7 тематических секций, 20 разделов
- Кликнуть на заголовок → раскрыть содержимое
- Кликнуть повторно → свернуть
Секции:
- 🏁 Начало работы (2 раздела)
- 📁 Работа с проектами (3 раздела)
- 🔀 Git и контроль версий (4 раздела)
- 🤖 AI-инструменты (3 раздела)
- 🎛 Мониторинг и сервисы (2 раздела)
- 🏗 Проект DST ERP / INFATON (3 раздела)
- 🔧 Настройка и обслуживание (3 раздела)
Шаги:
- Открыть
http://localhost:9090в Chrome - Нажать 📲 внизу sidebar, или: Chrome → Меню (⋮) → «Установить приложение»
- Приложение появится в Launchpad
Шаги:
- Открыть
http://your-mac-ip:9090в Safari (Tailscale нужен) - Нажать кнопку «Поделиться» (⬆)
- Выбрать «На экран Домой»
- Назвать «INFATON CC» → Добавить
| Комбинация | Действие |
|---|---|
Ctrl+S / ⌘+S |
Сохранить текущий файл |
Ctrl+P / ⌘+P |
Поиск по содержимому файлов |
Escape |
Закрыть модальное окно |
Enter |
Отправить сообщение в Quick Chat |
| Комбинация | Действие |
|---|---|
Tab |
Вставить 2 пробела |
| Комбинация | Действие |
|---|---|
Ctrl+B → D |
Отключиться от сессии |
Ctrl+B → ↑↓←→ |
Переключение панелей |
Ctrl+B → Z |
Развернуть/свернуть панель |
Ctrl+B → [ |
Режим прокрутки (q — выход) |
# Найти процесс на порту
lsof -i :9090 # (или 1234, 8080, 8888)
# Убить процесс
kill -9 $(lsof -ti:9090)
# Перезапустить все сервисы
~/Projects/automation/start-ai-services.sh# Проверить API
curl http://localhost:1234/v1/models
# Если пусто — модель не загружена:
~/.lmstudio/bin/lms load qwen/qwen3-vl-32b
# Если 'Connection refused' — LM Studio не запущен:
# Открыть приложение LM Studio через Launchpad# Push rejected — сначала pull:
git pull --rebase
git push
# Merge conflict:
# Открыть конфликтные файлы в редакторе
# Найти <<<< ==== >>>> маркеры, разрешить
git add .
git commit -m "resolve: merge conflict"
# Detached HEAD:
git checkout masterlsof -ti:9090 | xargs kill -9
cd ~/Projects/automation/control-panel
python3 server.py &
# Проверить:
curl http://localhost:9090/docker run -d --name infaton-cc \
-p 9090:9090 \
-v ~/Projects:/projects \
-v ~/.lmstudio:/root/.lmstudio \
infaton/control-center:latestcurl -fsSL https://raw.githubusercontent.com/infaton/control-center/main/install.sh | bashСкачать InfatonCC-Setup.exe и установить. Требует Python 3.9+ или встроенный Python.
sudo apt update && sudo apt install -y python3 git
cd /opt
git clone https://github.com/infaton/control-center.git
cd control-center
python3 server.py &
# Доступ: http://ваш_ip:9090Подробнее о каждом варианте установки — в файлах
Dockerfile,install.sh,install.bat,install-macos.shв папке проекта.
© INFATON Control Center v4.1 | 2026