Newer
Older
navi-1 / docs / navi_code.md

Navi Code — локальный терминальный режим

Navi Code — это вариант Navi для локального запуска через терминал. Без авторизации, с выделенным профилем navi_code, ориентированным на работу с кодом, shell и файловой системой.

Что входит

  • Профиль navi_code (терминальный кодинг-ассистент).
  • Механизм дефолтного профиля через NAVI_DEFAULT_PROFILE_ID.
  • Персона persona_navi_code.txt.
  • Готовый .env.navi_code.example.
  • CLI-клиент navi-code.

Что НЕ входит

  • Docker-упаковка (отложено).
  • Web UI для изображений / публикации контента (content_publish, share_file отключены в профиле).
  • Авторизация (NAVI_AUTH_ENABLED=false).

Быстрый старт

  1. Убедитесь, что запущены PostgreSQL с pgvector и Ollama с нужной моделью.
  2. Скопируйте пример конфигурации:
    cp .env.navi_code.example .env
  3. Установите / обновите зависимости:
    pip install -e ".[dev]"
  4. Запустите сервер:
    .venv/bin/uvicorn navi.main:app --reload --reload-dir navi --port 8000
  5. В другом терминале запустите клиент:
    navi-code
    # или
    python -m clients.terminal

Конфигурация .env

Ключевые переменные для Navi Code:

NAVI_AUTH_ENABLED=false
NAVI_DEFAULT_PROFILE_ID=navi_code
NAVI_PERSONA_FILE=persona_navi_code.txt

OLLAMA_HOST=http://localhost:11434
OLLAMA_DEFAULT_MODEL=gemma4:26b-a4b-it-q4_K_M
OLLAMA_NUM_CTX=8192
OLLAMA_THINK=true

DATABASE_URL=postgresql://navi:navipass@localhost:5432/navidb

FS_ALLOWED_PATHS=*
TERMINAL_ALLOWED_COMMANDS=*

Важно: FS_ALLOWED_PATHS=* и TERMINAL_ALLOWED_COMMANDS=* дают Нави полный доступ к файловой системе и shell. Используйте только на доверенной локальной машине.

Профиль navi_code

  • Расположение: navi/profiles/navi_code/.
  • База: developer, адаптирован под терминал.
  • Включённые инструменты:
    • Native: terminal, filesystem, code_exec, image_view, spawn_agent, todo, scratchpad, reflect, list_tools, tool_manual, reload_tools.
    • MCP navi-web: mcp__navi-web__web_search, mcp__navi-web__web_view, mcp__navi-web__http_request.
  • Отключённые инструменты: share_file, content_publish, ssh_exec, gmail.
  • planning_phase2_enabled: false — уменьшает latency.

Безопасность

  • Нави всегда должна спрашивать подтверждение перед разрушительными операциями (rm, перезапись файлов, форматирование).
  • Не выставляйте сервер Navi Code в интернет без авторизации.
  • TERMINAL_ALLOWED_COMMANDS=* — это полный shell-доступ; убедитесь, что сервер запущен от пользователя с ограниченными правами, если экспериментируете.

См. также