Что это 🧠
NanoClaw REPL Manager — это навык для управления и расширения NanoClaw v2, минималистичного REPL (Read-Eval-Print Loop) с нулевыми внешними зависимостями, построенного на базе Claude (через claude -p). REPL сохраняет контекст сессии в Markdown-файлах, а данный skill даёт команды для работы с этими сессиями: переключение модели, динамическая загрузка других навыков, ветвление истории, поиск по всем сессиям, сжатие длинного контекста, экспорт в разные форматы и просмотр метрик.
Skill предназначен для разработчиков, которые хотят интерактивно общаться с Claude в терминале, сохраняя историю, управляя несколькими параллельными диалогами и расширяя функциональность без установки сторонних пакетов. Всё работает локально, детерминированно и только с Markdown в качестве базы данных.
Как работает ⚙️
🗂️ Персистентные сессии на Markdown
Каждая сессия — это Markdown-файл, в котором хранятся все сообщения (пользовательские и ответы Claude). Skill автоматически создаёт, читает и дописывает этот файл. Сессии можно называть произвольно, переключаться между ними и даже ветвить — создавать копию истории в момент ветвления.
🔄 Команды управления
Все команды вводятся в REPL после запуска scripts/claw.js. Основные:
/model <имя_модели> — переключение между моделями Claude (например, claude-sonnet-4-20250514). Полезно, если нужно быстро сменить модель для конкретного запроса.
/load <путь_к_скиллу> — динамическая загрузка другого навыка (skill) без перезапуска REPL. Skill — это Markdown-файл с описанием возможностей, как этот же NanoClaw REPL Manager.
/branch <имя_ветки> — создаёт ответвление текущей сессии. Вся история копируется в новый файл, после чего можно продолжать в одной из веток, не теряя исходную.
/search <запрос> — полнотекстовый поиск по всем сохранённым сессиям. Результаты показывают фрагменты с совпадениями.
/compact — сжимает историю текущей сессии: удаляет старые, малозначимые сообщения, оставляя только ключевые моменты. Экономит токены и улучшает фокус.
/export [формат] — экспорт сессии в Markdown, JSON или TXT. Можно указать путь для сохранения.
/metrics — показывает статистику сессии: количество сообщений, токенов, длительность, количество ветвлений и т.д.
📦 Расширение навыков
Skill можно расширять, добавляя новые команды. Для этого нужно создать свой Markdown-файл навыка (по аналогии с этим) и загрузить его через /load. При этом соблюдаются правила:
- Ноль внешних зависимостей — никаких npm-пакетов, только встроенные модули Node.js.
- Markdown как база данных — все данные хранятся в читаемых
.md файлах.
- Детерминированность и локальность — команды не должны зависеть от внешних API (кроме самого Claude) и должны давать одинаковый результат при одинаковых входных данных.
Пример загрузки навыка:
/load ./skills/my-custom-skill.md
🔧 Пример сценария работы
- Запускаем REPL:
node scripts/claw.js.
- Начинаем сессию: задаём вопрос Claude.
- Хотим попробовать другую модель — пишем
/model claude-opus-4-20250514.
- Через несколько шагов понимаем, что нужно вернуться к предыдущему состоянию — делаем
/branch experiment-1.
- После завершения эксперимента сжимаем историю:
/compact.
- Экспортируем результат в JSON для анализа:
/export json.
Когда использовать 🎯
- Интерактивная разработка с Claude — когда нужно быстро прототипировать, задавать уточняющие вопросы и сохранять контекст.
- Управление несколькими параллельными диалогами — например, один диалог для кода, другой для документации, третий для ревью.
- Эксперименты с разными моделями — быстрое переключение между
claude-sonnet, claude-opus и т.д.
- Создание собственных навыков — если вы хотите добавить новую команду или интеграцию, не выходя из REPL.
- Аудит и логирование — экспорт сессий для последующего анализа или отчётов.
Важно знать ⚠️
- Зависимость от
claude -p — REPL использует CLI-команду claude с флагом -p для отправки запросов. Убедитесь, что Claude CLI установлен и настроен.
- Markdown-файлы — единственное хранилище — не используйте бинарные форматы или базы данных. Все сессии — это обычные
.md файлы, которые можно редактировать вручную.
- Команды
/compact необратимы — перед сжатием рекомендуется сделать /branch или /export, чтобы не потерять историю.
- Нулевые зависимости — не пытайтесь подключать npm-пакеты в своих навыках; используйте только встроенные модули Node.js (fs, path, child_process и т.д.).
- Детерминированность — команды не должны иметь побочных эффектов, зависящих от времени или внешних сервисов (кроме самого Claude).
Комментарии
Комментариев пока нет. Будьте первым.