Promptr CLI

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

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

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

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

  • Записывает, перезаписывает и удаляет файлы, в том числе каталоги, по ответу модели и без подтверждения
  • Отправляет в OpenAI содержимое указанных файлов и файлов, чьи пути встретились в тексте задания
  • Подставляет в запрос текст по адресу http или https, если задание передано ссылкой
Все причины и проверки
Нужен VPN

ferrislucas/promptr

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/promptr

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

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

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

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

  • Записывает, перезаписывает и удаляет файлы, в том числе каталоги, по ответу модели и без подтверждения
  • Отправляет в OpenAI содержимое указанных файлов и файлов, чьи пути встретились в тексте задания
  • Подставляет в запрос текст по адресу http или https, если задание передано ссылкой

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

Что делает

Promptr ставится из npm как пакет `@ifnotnowwhen/promptr` и запускается командой `promptr -p "задание" файл1 файл2`. Задание передают строкой, путем к файлу или адресом по http и https: во втором случае Promptr скачивает текст сам. Файлы из аргументов попадают в запрос как контекст. Пути, которые встретились в тексте задания, он находит регулярным выражением и добавляет тоже, а ключ `-dac` это отключает. Текст задания проходит через шаблон liquidjs. Встроены шаблоны `empty`, `refactor`, `swe` и `test-first`, по умолчанию работает `refactor`, свой шаблон задают ключом `-t` путем или адресом. Общие правила проекта выносят в отдельный файл и подключают к заданиям через `render`, чтобы не повторять их в каждом промпте. Готовый запрос уходит в OpenAI Chat Completions: модель по умолчанию `gpt-4o`, ключ берется из `OPENAI_API_KEY`, а адрес API код читает из `OPENAI_API_BASE`. Модель обязана ответить вызовом функции со списком операций над файлами, и Promptr применяет их сразу: создает и перезаписывает файлы, удаляет файлы и каталоги, а обработчик умеет и переносить файлы. Один запрос и один ответ, цикла правок с проверкой тестами нет. Ключ `-d` печатает запрос и число токенов, диск при этом не меняется. Ключ `-i` включает интерактивный режим.

Для кого. Для разработчиков на Node.js, которые готовы платить за API OpenAI и хотят вносить правки в код по текстовому заданию одной командой в терминале.

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

  • Нужно внести одно изменение сразу в несколько файлов: переименование, перенос логики, приведение кода к стандарту проекта
  • Правила проекта хочется держать в общем файле `_project.liquid` и подключать к каждому заданию через `render`
  • Перед запуском нужно увидеть, что уйдет модели: `promptr -d` печатает запрос и число токенов без записи на диск
  • Задание лежит в файле или по адресу в репозитории, и его удобно запускать повторно ключом `-p`
  • Нужен ответ модели в файл, а не правка кода: ключ `-o` вместе со своим шаблоном пишет вывод по указанному пути

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

  • У вас нет ключа OpenAI или нужен другой поставщик моделей: API OpenAI из России недоступен, а Promptr обращается только к API в формате OpenAI
  • Нужен диалог с картой репозитория, автокоммитами git и проверкой тестами после правок: этим занимается Aider
  • Проект не под git и нет резервной копии: Promptr записывает и удаляет файлы без подтверждения
  • Нужен готовый бинарник под Linux или Windows: он заявлен только для macOS, на остальных системах нужны Node 18 и установка из npm

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

Переименуй класс Order в Invoice в файлах src/order.js и src/invoice.js через Promptr, но сначала покажи, какой запрос уйдет модели

Ограничения

  • Promptr применяет ответ модели без подтверждения. Автор советует перед запуском зафиксировать изменения в git и проверять результат в git-интерфейсе.
  • Нужны Node 18, ключ в `OPENAI_API_KEY` и настроенная оплата в OpenAI. API OpenAI из России недоступен.
  • Готовые бинарники заявлены только для macOS. Последняя отметка релиза на GitHub v6.0.7 стоит за маем 2024 года, а в `package.json` указана версия 6.1.0.
  • Автоконтекст берет из задания любые строки, похожие на пути к файлам, поэтому лишний файл тоже может уйти модели. Отключает это ключ `-dac`.
  • Ключ `-o` не работает со встроенным шаблоном `refactor`. Лицензия MIT.

Как отключить. Удалите пакет командой `npm uninstall -g @ifnotnowwhen/promptr` (для yarn `yarn global remove @ifnotnowwhen/promptr`) и уберите `OPENAI_API_KEY` из окружения. Файл `~/.promptr.json`, если вы его создавали, удалите вручную.

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

Как Promptr выбирает файлы, которые отправит модели?

В запрос идут файлы, перечисленные в аргументах, и файлы, пути которых нашлись в тексте задания по регулярному выражению. Ключ `-dac` отключает вторую часть, тогда модели уйдут только перечисленные файлы.

Как проверить, что уйдет в OpenAI, до отправки?

Запустите команду с ключом `-d`: Promptr напечатает готовый запрос и число токенов и ничего не изменит на диске. Так же работает проверка шаблона перед первым боевым запуском.

Какая модель используется по умолчанию и как ее поменять?

По умолчанию `gpt-4o`. Ключ `-m` задает другую модель, значение `gpt3` включает `gpt-3.5-turbo`. Адрес API код берет из переменной `OPENAI_API_BASE`, по умолчанию это `https://api.openai.com/v1`.

Можно ли держать общие правила проекта в одном файле?

Да. Положите правила в файл вроде `_project.liquid` и подключайте его в начале задания строкой `{% render '_project.liquid' %}`. Так версия Node, менеджер зависимостей и стиль кода не повторяются в каждом промпте.

Что произойдет, если модель вернет битый JSON?

Promptr пробует починить кавычки и переводы строк, а затем вытащить объект регулярным выражением. Если разобрать ответ не удалось, он печатает сообщение об ошибке разбора и сам ответ модели.

Как запустить задание из файла или с адреса?

Передайте путь или ссылку в ключ `-p`: команда `promptr -p my_prompt.txt` прочитает файл, а значение с http или https Promptr скачает и использует текст как задание.

Обсуждение

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

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

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

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

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

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

CLIРасширенный доступ721Звезды репозитория
Официальный

Терминальный кодовый агент, который сам выбирает модель под каждый запрос и показывает расход в реальном времени

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

Терминальный кодинг-агент на Python в манере Claude Code: читает репозиторий, правит файлы, запускает команды, с памятью, подагентами и MCP

CLIШирокий доступ1 тыс.Звезды репозитория
Официальный

MCP-сервер на вашей машине, через который ChatGPT и Claude правят код, запускают тесты и смотрят Git в локальном репозитории

MCP-серверШирокий доступ2,5 тыс.Звезды репозитория

Коротко о README

В репозитории лежат исходники на JavaScript в папке `src`, точка входа `bin/index.js`, сборка через webpack и pkg для бинарников и тест шаблонов на mocha. Документация состоит из одного файла: порядок работы, таблица ключей, раздел о шаблонах liquidjs с примером общего файла правил, требования и способы установки. Там же ссылки на два запроса на слияние, в описаниях которых приведены промпты, давшие готовые коммиты.

Бейдж для README

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

Foxx AIPromptr
Foxx AI

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