Metadata-Version: 2.4
Name: spiritcode
Version: 0.1.1
Summary: Терминальный кодинг-агент для SpiritLM
Keywords: ai,coding-agent,spiritlm,terminal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: >=3.12
Requires-Dist: httpx<1,>=0.28
Requires-Dist: keyring<26,>=25
Requires-Dist: pathspec<1,>=0.12
Requires-Dist: platformdirs<5,>=4
Requires-Dist: prompt-toolkit<4,>=3.0.48
Requires-Dist: pydantic<3,>=2.10
Requires-Dist: rich<15,>=13.9
Description-Content-Type: text/markdown

# SpiritCode

Терминальный кодинг-агент для SpiritLM. Python 3.12+, Linux, macOS и Windows.

![Интерфейс SpiritCode в терминале](image.png)

## Установка

```sh
pip install spiritcode
sprt
```

При первом запуске введите API-ключ SpiritLM, затем выберите модель через `/model`.
`spiritcode` и `python -m spiritcode` — альтернативные способы запуска.

По умолчанию используется `https://spiritlm.netlify.app`. Для локальной разработки
запускайте `NODE_ENV=development sprt` (также поддерживается `dev`) — API будет
доступен по `http://localhost:3000`. Явный адрес в `--base-url`, `SPIRITLM_BASE_URL`
или `config.toml` имеет приоритет над автоматическим выбором.

## Команды

| Команда | Описание |
| --- | --- |
| `sprt` | Открыть чат в текущем проекте |
| `sprt login` | Войти по API-ключу |
| `sprt logout` | Удалить сохранённый ключ |
| `sprt models` | Показать модели |
| `sprt account` | Показать аккаунт |
| `sprt sessions` | Показать сохранённые сессии |
| `sprt resume <id>` | Продолжить сессию |
| `sprt --base-url <url> --model <id>` | Указать сервер без `/v1` и модель |
| `sprt --help` | Справка |
| `sprt --version` | Версия |

В чате:

| Команда | Описание |
| --- | --- |
| `/help` | Команды и сочетания клавиш |
| `/model [id]` | Поиск и смена модели |
| `/context` | Контекст, токены и диагностика сессии |
| `/profile` | Профиль SpiritLM |
| `/balance` | Баланс аккаунта |
| `/subscription` | Подписка и доступные кредиты |
| `/usage [2d\|7d\|30d\|all]` | Статистика аккаунта |
| `/new` | Новая сессия |
| `/sessions` | Сохранённые сессии |
| `/resume <id>` | Продолжить сессию |
| `/compact` | Сжать контекст отдельным оплачиваемым запросом |
| `/diff` | Правки сессии |
| `/undo` | Отменить последнюю группу правок |
| `/permissions` | Выбрать режим разрешений |
| `/exit` | Выход |
| `@путь` или `@"путь с пробелами"` | Прикрепить файл |

## Разрешения

`/permissions` открывает меню: стрелки выбирают режим, Space переключает чекбокс,
Enter сохраняет, Esc отменяет. Настройки сохраняются для всех проектов.

- **Стандартная защита** (по умолчанию): чтение, поиск и известные проверки проекта
  выполняются автоматически. Git, удаление, перезапись, системные изменения,
  составные и непрозрачные команды требуют разрешения.
- **Без защиты**: команды выполняются автоматически. Чекбокс «Спрашивать перед
  удалением» включён по умолчанию; он также требует разрешения для непрозрачного
  кода, который может удалять файлы. Снимите его для выполнения любых команд без вопросов.
- **Полная защита**: каждая shell-команда требует разрешения. Чтение и точечные
  правки внутри проекта остаются автоматическими.

Запросы доступа файловых инструментов к секретам и файлам вне проекта сохраняются
во всех режимах. Отказ не запускает команду; без интерактивного терминала действия,
требующие подтверждения, отклоняются. Классификация команд не является системной
песочницей: shell работает с правами пользователя. `/undo` не откатывает команды.

Если поддержка инструментов модели неизвестна, SpiritCode пробует отправить их.
При отказе сервера выберите другую модель через `/model`; оплачиваемые запросы
автоматически не повторяются. При явно отключённой поддержке доступен режим чата.
