urok
Консольный помощник для учёбы. Объясняет темы, проверяет домашку, помогает разобраться в том, что не понял.
Работает сразу после установки: бэкенд — OpenCode Zen, модель
space-bunny-free, ключ public. Ничего настраивать не нужно, ключ не нужен.
Ноль зависимостей — только стандартная библиотека Python.
Установка
pip install .
После установки в любой папке работает команда urok.
Запуск под конкретный урок
urok --grade 9 --subject физика
Модель сразу настроится на девятый класс и физику. Можно менять на лету: /system.
Команды
| Команда | Что делает |
|---|---|
/help |
список команд |
/exit |
выйти, Ctrl+D тоже |
/clear |
забыть текущий диалог |
/model |
какая модель сейчас |
/model имя |
переключить модель прямо сейчас |
/models |
список моделей на сервере |
/base |
адрес сервера |
/base адрес |
сменить сервер |
/system |
показать или сменить системный промпт |
/wipe |
удалить всю сохранённую историю |
/load |
продолжить прошлую сессию (нужен --keep-history) |
/sessions |
список сохранённых сессий |
/copy |
скопировать последний ответ в буфер (Windows) |
Ctrl+C во время ответа прерывает только этот ответ — диалог остаётся.
История по умолчанию не пишется
Закрыл консоль — на диске ничего не осталось. Проверено: папка ~/.urok не
создаётся вообще, даже mkdir не вызывается. При выходе печатается проверка:
на диск ничего не записано, следов нет
Если папка всё же есть от прошлых запусков с --keep-history — выход скажет
об этом прямо и предложит /wipe.
Запомнить диалог между запусками:
urok --keep-history
Тогда история пишется в ~/.urok/session-ГГГГММДД-ЧЧММСС.json, продолжить —
urok --keep-history --load 1.
Что остаётся на диске помимо истории
Честно, чтобы не было сюрпризов. Пакет убирает за собой только историю диалога. Это остаётся и находится вне его досягаемости:
| След | Где | Как убрать |
|---|---|---|
| сам пакет | site-packages/urok |
pip uninstall urok |
| байт-код | site-packages/urok/__pycache__ |
pip uninstall urok |
| история команд PowerShell | ConsoleHost_history.txt |
Clear-History и удаление файла |
| сетевой лог | DNS/прокси школной сети | вне твоего контроля |
Запросы к opencode.ai видны сетевому логу в любом случае — это происходит
независимо от того, что лежит на диске. Эфемерный режим чистит локальные следы,
а не сетевые.
Другие бесплатные модели
На Zen их несколько, все с суффиксом -free:
space-bunny-free по умолчанию
deepseek-v4-flash-free
muse-spark-1.3-contributor-free
muse-spark-1.2-contributor-free
mimo-v2.5-free
nemotron-3-ultra-free
longcat-2.5-preview-free
Полный список: /models. Переключить: /model muse-spark-1.3-contributor-free
или флагом urok --model deepseek-v4-flash-free.
Другой провайдер
Через флаги:
urok --base https://api.groq.com/openai/v1 --key gsk_... --model llama-3.3-70b-versatile
Или через переменные окружения, чтобы не светить ключ в истории:
set UROK_BASE_URL=https://api.groq.com/openai/v1
set UROK_API_KEY=gsk_...
set UROK_MODEL=llama-3.3-70b-versatile
urok
Подходит любой OpenAI-совместимый адрес: Groq, OpenAI, LM Studio, Ollama,
llama.cpp на http://127.0.0.1:8080/v1.
Где лежат данные
История по умолчанию не пишется. С флагом --keep-history диалог сохраняется
в ~/.urok/session-ГГГГММДД-ЧЧММСС.json, по строке на сообщение.
Сменить папку: переменная UROK_HOME.
Настройка своего промпта
urok --system "Объясняй как пятикласснику, только формулы и короткие примеры."
Тесты
python tests/smoke.py
Поднимает фейковый API в потоке и прогоняет через него весь диалог.
Metadata
Release files for urok 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| urok-0.1.0.tar.gz | 12.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| urok-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.5 kB
Release files / urok-0.1.0.tar.gz
| Download URL | urok-0.1.0.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a7b1cfa0d450dec91543272367318fdafa1e5ea1f671378895101b9d69e81d76
|
|
BLAKE2b-256 checksum How to use checksums |
90e56d7b6ed9ba294817f1670cb96916b924ba8681882afbfbf96a9614ba060a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.0
|
Release files / urok-0.1.0-py3-none-any.whl
| Download URL | urok-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d2eb2338fe9eb9119acdd6b025474df2e8a2fbe695f3a36c0abe5191962e310
|
|
BLAKE2b-256 checksum How to use checksums |
e4eaa756cdae98b67b0c1bf62d441438bf49aaf7ab5db49d3757c58973727736
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.0
|
Security for urok 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.