runprompt CLI

Однофайловый скрипт на Python, который запускает .prompt-файлы из оболочки: шаблоны, JSON-вывод, инструменты, чат и конвейеры между промптами

  • 445 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Блок `before:` и инструменты `shell` и `shell_tools` выполняют команды оболочки на вашей машине
  • Инструмент `write_file` и функции Python могут менять файлы, а подтверждение отключается флагом `--safe-yes`
  • Ключи провайдеров лежат в окружении или в `config.yml`, а тексты промптов и файлов уходят выбранному провайдеру
Все причины и проверки

chr15m/runprompt

Установка

Ручная установка

uvx --from git+https://github.com/chr15m/runprompt runprompt hello.prompt

Запуск без установки. Нужен ключ провайдера в окружении.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Блок `before:` и инструменты `shell` и `shell_tools` выполняют команды оболочки на вашей машине
  • Инструмент `write_file` и функции Python могут менять файлы, а подтверждение отключается флагом `--safe-yes`
  • Ключи провайдеров лежат в окружении или в `config.yml`, а тексты промптов и файлов уходят выбранному провайдеру

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

runprompt запускает файлы формата `.prompt` (dotprompt) прямо из терминала. В одном файле лежат метаданные в YAML (модель, схемы, настройки) и текст запроса с шаблонами в стиле Handlebars. Скрипт один, без зависимостей: его скачивают командой `curl`, запускают через `uvx` или ставят из GitHub через `pip` и `uv`. Входные данные передают аргументами, JSON или через stdin, переменные доступны как `{{STDIN}}`, `{{ARGS}}` и `{{INPUT}}`. Вывод можно описать схемой Picoschema и получать чистый JSON, а выход одного промпта скормить другому через конвейер. Перед отправкой запроса блок `before:` выполняет команды оболочки (например `git log -1 --oneline`) и подставляет их результат, а `files:` и `--read` прикрепляют файлы по маске и ссылки. Есть интерактивный режим `--chat`, в нем команды `/read`, `/edit` и `/drop`. Любой промпт может получить инструменты: функции Python с докстрингами, короткие `shell_tools` или встроенные (`calculator`, `fetch_clean`, `datetime`, `shell`, `write_file('путь')`). По умолчанию каждый вызов инструмента требует подтверждения, а флаг `--safe-yes` пропускает только инструменты с пометкой safe. Провайдеры: Anthropic, OpenAI, Google AI, OpenRouter и любой OpenAI-совместимый адрес, например Ollama.

Для кого. Для разработчиков и администраторов, которые хранят промпты в репозитории как файлы и запускают их из скриптов, cron и конвейеров оболочки.

Подходит, если

  • Нужно прогонять один и тот же промпт по файлам и получать структурированный JSON: `cat article.txt | ./runprompt summarize.prompt`
  • Результат первого промпта должен стать входом второго, как в `extract.prompt | generate-bio.prompt`
  • Промпт должен брать контекст из `git log`, `git diff` или списка файлов, добавляемого блоком `before:`
  • Хочется запускать `.prompt` как исполняемый файл с шебангом `#!/usr/bin/env runprompt`
  • Нужен единый запуск для разных провайдеров и локальной Ollama без отдельных SDK

Не подходит, если

  • Нужен полноценный кодовый агент с правкой проекта: runprompt исполняет заданный промпт и не ведет цикл разработки сам
  • Нужен MCP-сервер или скилл для агента: runprompt запускается отдельной командой
  • На машине нет Python 3.8 или новее и нельзя поставить ни `uv`, ни `pip`
  • Вам нужен графический интерфейс: runprompt работает только из командной строки

Пример запроса к агенту

Напиши summarize.prompt, который делает из текста на stdin пять тезисов в JSON, и запусти его на README.md

Ограничения

Нужен Python 3.8 или новее. Дополнительные пакеты `pyyaml` и `playwright` необязательны: они улучшают разбор YAML и загрузку веб-страниц (`pip install runprompt[full]`).

  • Нужен ключ провайдера: `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GOOGLE_API_KEY` или `OPENROUTER_API_KEY`. API OpenAI и Anthropic из России недоступны, а с локальной Ollama ключ не нужен.
  • Встроенные `shell` и `write_file` и любые ваши функции требуют подтверждения, `--safe-yes` снимает его только для инструментов с пометкой safe.
  • Ключи можно хранить в `config.yml` открытым текстом, поэтому ограничьте права на файл.

Как отключить. Удалите файл `runprompt` или выполните `pip uninstall runprompt`. Настройки лежат в `~/.runprompt/config.yml`, `~/.config/runprompt/config.yml` и `./.runprompt/config.yml`, кэш ответов в каталоге из `RUNPROMPT_CACHE_DIR`.

Частые вопросы

Как запустить runprompt без установки?

Командой `uvx --from git+https://github.com/chr15m/runprompt runprompt hello.prompt`. Можно и скачать единственный файл `runprompt` и сделать его исполняемым.

Как получить JSON вместо текста?

Опишите `output.format: json` и схему `output.schema` в формате Picoschema. Поля со знаком вопроса необязательны, а ответ печатается чистым JSON, готовым для следующего промпта в конвейере.

Как подключить локальную Ollama?

Задайте модель `ollama/llama3` или адрес через `--base-url http://localhost:11434/v1` либо переменную `RUNPROMPT_BASE_URL`. Ключ в этом случае необязателен.

Безопасно ли давать промпту инструменты?

Каждый вызов инструмента по умолчанию спрашивает подтверждение. Флаг `--safe-yes` пропускает только функции с пометкой `fn.safe = True`, а `write_file('output.txt')` ограничивает запись одним файлом.

Как сохранить ответы при отладке промпта?

Включите кэш флагом `--cache`: повторный запуск с теми же входными данными берет ответ из кэша и не обращается к API.

Обсуждение

Вопросов и отзывов пока нет.

29 готовых промптов на китайском: разработка в пять шагов, код-ревью, диаграммы Draw.io, отчеты, статьи для WeChat и главы диплома

ПромптМинимальный доступ1,4 тыс.Звезды репозитория
Нужен VPN

Promptr отправляет текстовое задание модели OpenAI и сразу записывает предложенные правки в файлы проекта прямо из терминала

CLIШирокий доступ950Звезды репозитория

CLI на Rust, который собирает кодовую базу в один промпт с деревом файлов, шаблонами и оценкой токенов

CLIРасширенный доступ7,7 тыс.Звезды репозитория

Консольный чат с ChatGPT, Claude, Gemini и Cohere: свои ассистенты в YAML, разовые запросы из скриптов и команды оболочки с правкой перед запуском

CLIРасширенный доступ721Звезды репозитория
Российский стек

Промт для Claude Code, который разворачивает структуру 1С-проекта со стандартами кода, ролевыми агентами, навыками и MCP

ПромптРасширенный доступ16Звезды репозитория

Две команды для терминала на Rust: qq отвечает на быстрый вопрос по командной строке, а qa делает один шаг с файлами и командами

CLIШирокий доступ629Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйЗвезды репозиторияГлавное отличие
runprompt (эта запись)нет445
AIChatнет10 533универсальный чат и RAG на Rust для 20 с лишним провайдеров, а не запуск файлов .prompt
Promptrнет950отправляет задание модели OpenAI и записывает правки в файлы проекта

Коротко о README

Страница показывает, как поставить и запустить скрипт, и дальше идет по возможностям на примерах: ввод из stdin и аргументов, встроенные запросы, JSON по схеме, конвейеры, команды `before:`, исполняемые промпты, чат, прикрепление файлов. Затем описаны инструменты (функции Python, shell_tools, встроенные), синтаксис шаблонов, слои настройки, ключи провайдеров, пользовательский адрес API, кэш и совместимость со спецификацией dotprompt. Лицензия MIT.

Бейдж для README

Сообщить о проблеме

Foxx AIrunprompt
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.