Локальный AI-терминал для разработки в стиле CLI/IDE с поддержкой русского и английского языков.
- IDE-style layout - три панели: Explorer (файлы), Chat (диалог), Output (код)
- Catppuccin Mocha - темная цветовая схема
- RU/EN - переключение языка интерфейса
- Адаптивный дизайн - фиксированные заголовки, прокручиваемый контент
- Реальное время - WebSocket streaming ответов
- Блоки кода - сворачиваемые, с подсветкой синтаксиса
- Timeline - временная шкала сообщений
- Копирование - кнопка копирования для кода
- Прикрепление файлов - drag and drop или кнопка
- Прикрепление папок - рекурсивное чтение
- Предпросмотр - список прикрепленных файлов
- Контекст - файлы включаются в запрос к AI
- Командная палитра - нажмите
/для открытия - Быстрые команды - /help, /clear, /attach, /folder, /select, /lang
- Режимы - Chat, Code, Terminal, Debug (Tab для переключения)
- История - стрелки для навигации
- Select Element - выбор элемента на странице для анализа
- Context Window - индикатор использования токенов
| Клавиша | Действие |
|---|---|
/ |
Открыть командную палитру |
Tab |
Сменить режим (Chat, Code, Terminal, Debug) |
Up / Down |
История команд / навигация в палитре |
Enter |
Отправить сообщение / выбрать команду |
Esc |
Закрыть палитру / отменить выбор элемента |
- Next.js 16 - App Router, Turbopack
- TypeScript - строгая типизация
- Tailwind CSS 4 - стилизация
- shadcn/ui - UI компоненты
- Prisma + SQLite - база данных
- Socket.io - WebSocket (порт 3003)
- z-ai-web-dev-sdk - AI интеграция
Base: #1e1e2e (фон)
Text: #cdd6f4 (текст)
Blue: #89b4fa (акцент)
Green: #a6e3a1 (успех)
Yellow: #f9e2af (предупреждение)
Red: #f38ba8 (ошибка)
Lavender: #b4befe (фиолетовый)
Mauve: #cba6f7 (розовый)
# Установка зависимостей
bun install
# Настройка окружения
cp .env.example .env
# Запуск базы данных
bun run db:push
# Запуск WebSocket сервиса
cd mini-services/chat-service && bun run dev &
# Запуск dev сервера
bun run dev| Скрипт | Описание |
|---|---|
bun run dev |
Запуск dev сервера с Turbopack |
bun run build |
Production сборка |
bun run lint |
Проверка ESLint |
bun run db:push |
Применить схему Prisma к БД |
bun run db:studio |
Открыть Prisma Studio |
src/app/page.tsx- Главная страницаlayout.tsx- Layoutapi/- API routes
src/components/terminal/- Компоненты терминалаCLITerminal.tsxChatMessage.tsxCodeBlock.tsxContextIndicator.tsxCommandPalette.tsxErrorBoundary.tsxconstants.tstypes.tsutils.ts
ui/- shadcn/ui компоненты
src/hooks/useAIChat.ts- AI чат хук
src/lib/db.ts- Prisma клиентterminal-utils.ts- Утилиты
mini-services/chat-service/index.ts- WebSocket сервис (порт 3003)
prisma/schema.prisma- Схема БД
| Endpoint | Method | Описание |
|---|---|---|
/api/conversations |
GET | Список диалогов |
/api/conversations |
POST | Создать диалог |
/api/conversations/[id] |
GET | Получить диалог |
/api/conversations/[id] |
DELETE | Удалить диалог |
/api/messages |
GET | Сообщения диалога |
/api/messages |
POST | Создать сообщение |
/api/projects |
GET | Список проектов |
/api/projects |
POST | Создать проект |
/api/files |
GET | Файлы проекта |
/api/files |
POST | Добавить файл |
/api/commands |
GET | История команд |
/api/commands |
POST | Выполнить команду |
| Команда | Описание |
|---|---|
/help |
Показать справку |
/clear |
Очистить чат |
/attach |
Добавить файлы |
/folder |
Добавить папку |
/select |
Выбор элемента |
/lang |
Сменить язык |
/mode <type> |
Сменить режим |
Настраивается в src/components/terminal/constants.ts:
export const CONTEXT_CONFIG = {
maxTokens: 128000, // GPT-4o context window
reservedTokens: 4000, // Reserved for response
warningThreshold: 0.8, // 80% warning
criticalThreshold: 0.95 // 95% critical
};export const FILE_VALIDATION = {
maxFileSize: 5 * 1024 * 1024, // 5MB для файлов
maxFolderFileSize: 100 * 1024, // 100KB для файлов из папок
allowedExtensions: ['.ts', '.tsx', '.js', '.jsx', '.json', '.md', '.txt', '.css', '.html']
};См. .env.example:
# Database Configuration
DATABASE_URL="file:./db/dev.db"- Next.js 16 + TypeScript - не меняются
- App Router - роутинг через
src/app/ - Prisma + SQLite - база данных
- ESLint + строгая типизация TypeScript
- shadcn/ui компоненты вместо кастомных
'use client'/'use server'для разделения- React.memo для оптимизации рендеров
- Backend: Socket.io на порту 3003
- Frontend:
io("/?XTransformPort=3003")
- z-ai-web-dev-sdk ТОЛЬКО на backend
- Никогда не использовать на client side
Built with: Next.js 16 + TypeScript + Tailwind CSS