by promptadvisers (community) Claude Desktop, Claude Code, OpenCode, любой MCP-клиент, Node 22.5+, macOS, Linux
Local-first креативная студия с 37 маршрутами моделей, прозрачными затратами, локальными архивами и доступом через MCP.
Open-source AI-генератор коротких видео: превращает длинные видео в вирусные шортсы 9:16 с AI-детекцией ключевых моментов, трекингом …
MCP-сервер для доступа к актуальной документации библиотек прямо в контексте LLM. Вместо устаревших обучающих данных — …
Официальный MCP от команды Chrome DevTools: дает AI-агентам полный доступ к инструментам разработчика браузера. Автоматизация через …
Официальный MCP-сервер от Microsoft для управления браузером через Playwright. Использует accessibility tree вместо скриншотов — быстрее, …
# Клонирование и установка git clone https://github.com/promptadvisers/bench-studio-public.git cd bench-studio-public npm install # Серверные учетные данные в ~/.env FAL_KEY=<your-fal-key> GOOGLE_API_KEY=<your-optional-google-key> # Запуск студии npm run dev # Если порты заняты — альтернативный запуск: # PORT=8790 BENCH_API_PORT=8790 BENCH_WEB_PORT=5201 npm run dev
Локально-ориентированная творческая студия для изображений, видео, веб-сайтов, спроектированных PDF и рабочих процессов AI-агентов.
Быстрый старт · Как это работает · Подключить агент · Безопасность

Bench Studio помещает 37 отобранных маршрутов изображений и видео, уточнение промптов, контролы, осведомлённые о возможностях, локальное хранение файлов и прозрачный журнал затрат за одним интерфейсом. Та же система доступна Claude, Codex, Cursor и другим совместимым клиентам через MCP.
Ваши ключи остаются на серверной стороне вашего устройства. Ваши промпты можно редактировать до расходования. Ваши выходные данные зеркально сохраняются локально. Ваши затраты записываются в реальных единицах вместо исчезновения в загадочных кредитах.
[!NOTE] Это очищенное публичное распространение. Оно поставляется без истории генерации, загрузок, личной базы данных, персональных путей, учетных данных или локальных артефактов сборки. Ваш архив начинается пустым.
Большинство продуктов творческого ИИ объединяют пять полезных компонентов—доступ к моделям, доработку промптов, маршрутизацию, хранение и выставление счетов—а затем скрывают швы за ежемесячным планом. Bench сохраняет удобство, делая каждый шов проверяемым.
| Вместо… | Bench предоставляет вам… |
|---|---|
| Дорожная карта моделей одного провайдера | Отобранный реестр, который вы можете пополнять или заменять |
| Общая загрузочная панель | Элементы управления, полученные из принимаемых входных данных каждой конечной точки |
| Незаметная переработка промпта | Редактируемый черновик, специфичный для модели, перед отправкой |
| Абстрактные кредиты | Предварительная оценка и записанные метаданные расходов |
| Выходные данные, запертые в галерее аккаунта | Локальные зеркальные файлы и долговечные метаданные |
| Рабочий процесс только через интерфейс | Те же возможности через интерфейс и MCP |
| Ожидание следующей функции | Исходный код, который вы можете изучить, изменить и расширить |
Bench не владеет базовыми моделями. Он дает вам владение переносимым слоем, соединяющим ваши идеи, инструменты, провайдеров, файлы и затраты.
node:sqlite.git clone https://github.com/promptadvisers/bench-studio-public.git
cd bench-studio-public
npm install
Bench считывает учетные данные из ~/.env. Никогда не помещайте ключи провайдеров в переменные Vite или не коммитьте их в репозиторий.
FAL_KEY=<your-fal-key>
GOOGLE_API_KEY=<your-optional-google-key>
FAL_KEY обязателен для генерации медиа. Без GOOGLE_API_KEY Bench всё равно запускается и отправляет ваш исходный промпт без уточнения.
npm run dev
Откройте http://localhost:5200.
| Служба | Адрес |
|---|---|
| Студия | http://localhost:5200 |
| Локальный API | http://localhost:8787 |
| Сводка о состоянии и возможностях | http://localhost:8787/api/health |
Если любой из портов занят:
PORT=8790 BENCH_API_PORT=8790 BENCH_WEB_PORT=5201 npm run dev
| Рабочая зона | Что оно предоставляет |
|---|---|
| Создать | Изображения и видео с ссылками, осведомленными о модели, элементами управления, редактируемыми черновиками промптов, цитатами, прогрессом и встроенными результатами. |
| Каталог моделей | Отобранные маршруты текст‑изображение, редактирование изображений, текст‑видео, изображение‑видео и референс‑видео. |
| Результаты | Локальный архив, содержащий отправленный промпт, модель, URL провайдера, локальный файл и записанную стоимость. |
| Веб-сайты | Исходные статические сайты с редактируемым исходным кодом, локальным предварительным просмотром и загружаемым пакетом. |
| Документы | Спроектированные PDF, поддерживаемые редактируемым HTML, печатью Chromium и предварительной проверкой переполнения. |
| Подключить | Машинно скорректированная конфигурация MCP и переносимый навык для совместимых агентов. |

flowchart LR
Idea["Your idea"] --> Client{"How do you want to work?"}
Client -->|Create manually| UI["React studio"]
Client -->|Delegate to an agent| MCP["MCP server"]
UI --> API["Loopback-only API"]
MCP --> API
API --> Prompt["Editable prompt refinement"]
API --> Router["Capability-aware router"]
API --> Quote["Quote and pricing engine"]
Prompt --> Router
Router --> Fal["fal.ai model APIs"]
Fal --> Mirror["Local media mirror"]
API --> Projects["Website and PDF runner"]
Projects --> Archive["Inspectable project source"]
Quote --> Ledger[("Local SQLite ledger")]
Mirror --> Ledger
Archive --> Ledger
Браузер никогда не получает секреты провайдера. Он взаимодействует с локальным сервисом, который проверяет полезные данные, специфичные для модели, владеет учётными данными, транслирует ход выполнения, зеркалирует артефакты и фиксирует долговременные метаданные.
Bench использует агрегатор, поскольку одна модель аутентификации и очереди является практическим способом поддержки большого, взаимозаменяемого каталога. Это не единственная допустимая архитектура.
flowchart TB
Need{"What do you actually need?"}
Need -->|One stable model| Direct["Use its first-party API"]
Need -->|Many interchangeable models| Bench["Use Bench + an aggregator"]
Direct --> D1["Potentially lowest route price"]
Direct --> D2["One integration per provider"]
Direct --> D3["Best for a narrow workflow"]
Bench --> B1["One authentication and queue model"]
Bench --> B2["Consistent controls and records"]
Bench --> B3["Best for a flexible studio"]
Агрегатор не всегда является самым дешёвым маршрутом. Bench делает этот компромисс явным, вместо того чтобы называть его «нулевой наценкой».
sequenceDiagram
participant U as User or agent
participant B as Bench
participant R as Capability router
participant F as fal.ai
participant L as Local archive
U->>B: Describe the result
B->>R: Select a model and inspect accepted inputs
R-->>B: Controls, limits, and pricing unit
B-->>U: Editable prompt and preflight estimate
U->>B: Approve generation
B->>F: Validated model-specific payload
F-->>B: Queue progress and output URL
B->>L: Mirror media and write metadata
B-->>U: Local result, provider result, and recorded cost
Bench фиксирует то, что было отправлено. Он никогда не утверждает, что приложенная ссылка повлияла на вывод исключительно потому, что API принял поле; творческая достоверность всё ещё требует проверки человека.
У каждой конечной точки свои предположения. Некоторые принимают одно изображение, некоторые принимают список, некоторые требуют начальный кадр, а другие не принимают никаких ссылок. Bench разделяет обнаружение и допуск к продукции:
flowchart LR
Catalog["Live provider catalog"] --> Discover["Discovery snapshot"]
Discover --> Evidence["Schema and pricing evidence"]
Evidence --> Review{"Safe for production?"}
Review -->|Not yet| Observe["Keep observable"]
Review -->|Yes| Registry["Curated registry"]
Registry --> UI["Relevant UI controls"]
Registry --> MCP["Validated MCP inputs"]
Это предотвращает бесшумный сбой платного workflow из только что опубликованной, переименованной или недостаточно специфицированной модели.
Если ключ Google не настроен, исходный запрос проходит неизменным, а интерфейс сообщает, что уточнение отключено.
Перед отправкой Bench оценивает стоимость на основе единицы ценообразования модели и запрошенных параметров. После завершения он записывает выставленный счёт, когда провайдер предоставляет достаточные данные чека.
flowchart LR
Params["Model + duration + resolution + quantity"] --> Estimate["Preflight estimate"]
Estimate --> Approval["Explicit approval"]
Approval --> Run["Provider execution"]
Run --> Record["Recorded cost + confidence"]
Цены меняются. Оценки не являются гарантиями. Bench различает оцененные, измеренные и записанные значения, вместо того чтобы представлять все три как один и тот же факт.
Репозиторий начинается без каталога data/. Bench создаёт его при первом запуске:
data/
├── bench.db # generations, assets, spend, and projects
├── inputs/ # mirrored uploads
├── outputs/ # mirrored generations
├── previews/ # local video posters
└── projects/ # website and document source files
Весь каталог игнорируется Git. Удаление результата стирает его локальную запись в базе данных и зеркальные файлы. Он не претендует на удаление копий, сохранённых внешним провайдером модели.
flowchart LR
Browser["Browser UI\nno provider keys"] --> Local["Loopback API\nkeys + validation"]
Agent["Local MCP client"] --> Local
Local --> Provider["External model provider"]
Local --> Disk["Local SQLite + files"]
Запустите Bench, откройте Connect, выберите своего клиента и скопируйте сгенерированную конфигурацию. Bench вставляет правильный абсолютный путь для текущего компьютера; сам репозиторий поставляется без домашней директории пользователя.
Сервер MCP предоставляет одиннадцать специализированных инструментов для:
Встроенный навык в integrations/skills/bench-studio/ предоставляет рекомендации по суждению и workflow. MCP обеспечивает слой живого выполнения.
bench-studio-public/
├── src/ # React interface
├── server/
│ ├── server.mjs # loopback API and orchestration
│ ├── mcp.mjs # stdio MCP server
│ ├── registry.json # curated production roster
│ ├── capabilities.json # accepted-input contracts
│ ├── profiles/ # prompt and pricing intelligence
│ └── mcp-app/ # embedded MCP interface
├── integrations/
│ ├── skills/bench-studio/ # portable agent workflow skill
│ └── macos/ # optional launch-agent templates
├── tests/ # contracts, persistence, API, a11y, and E2E
├── docs/ # public README media
├── .env.example # placeholders only
└── package.json
| Command | Purpose |
|---|---|
npm run dev |
Запустить локальный API и веб-интерфейс. |
npm run build |
Собрать production веб-приложение. |
npm run registry |
Пересобрать отобранный реестр моделей. |
npm run capabilities |
Пересобрать манифест возможностей. |
npm run catalog:sync |
Обновить обнаружение провайдера и доказательства цен. |
npm run mcp |
Запустить сервер MCP через stdio. |
npm run test:contracts |
Запустить тесты API, персистентности и контрактов моделей. |
npm run test:mcp |
Провести дымо-тест обнаружения MCP и поведения медиа. |
npm run test:e2e |
Запустить пользовательские сценарии браузера и проверки доступности. |
npm run test:release |
Запустить полную проверку выпуска. |
~/.env и никогда не возвращаются в интерфейс..env* игнорируется, за исключением файла‑заглушки .env.example.Прочтите SECURITY.md перед раскрытием, изменением или распространением службы.
Шлюз выпуска охватывает сборки для продакшена, контракты API и базы данных, обнаружение MCP, путешествия по браузеру, доступность, адаптивное удержание, состояния сбоя, переходы моделей и визуальные снимки.
npm run test:release
Bench Studio Public доступен по лицензии MIT License.
Модели выполняют тяжёлую работу. Bench делает слой вокруг них видимым — и он ваш.