Bench Studio

by promptadvisers (community) · Claude Desktop, Claude Code, OpenCode, любой MCP-клиент, Node 22.5+, macOS, Linux

MCP MCP Servers Open Source активный

Local-first креативная студия с 37 маршрутами моделей, прозрачными затратами, локальными архивами и доступом через MCP.


Установка
# Клонирование и установка
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
показать оригинал переведено ИИ

Bench Studio

Перестаньте арендовать оболочку. Владейте творческим слоем.

Локально-ориентированная творческая студия для изображений, видео, веб-сайтов, спроектированных PDF и рабочих процессов AI-агентов.

Лицензия MIT Node 22.5+ 37 маршрутов моделей MCP готов

Быстрый старт · Как это работает · Подключить агент · Безопасность

Каталог моделей Bench Studio

Bench Studio помещает 37 отобранных маршрутов изображений и видео, уточнение промптов, контролы, осведомлённые о возможностях, локальное хранение файлов и прозрачный журнал затрат за одним интерфейсом. Та же система доступна Claude, Codex, Cursor и другим совместимым клиентам через MCP.

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

[!NOTE] Это очищенное публичное распространение. Оно поставляется без истории генерации, загрузок, личной базы данных, персональных путей, учетных данных или локальных артефактов сборки. Ваш архив начинается пустым.

Почему это существует

Большинство продуктов творческого ИИ объединяют пять полезных компонентов—доступ к моделям, доработку промптов, маршрутизацию, хранение и выставление счетов—а затем скрывают швы за ежемесячным планом. Bench сохраняет удобство, делая каждый шов проверяемым.

Вместо… Bench предоставляет вам…
Дорожная карта моделей одного провайдера Отобранный реестр, который вы можете пополнять или заменять
Общая загрузочная панель Элементы управления, полученные из принимаемых входных данных каждой конечной точки
Незаметная переработка промпта Редактируемый черновик, специфичный для модели, перед отправкой
Абстрактные кредиты Предварительная оценка и записанные метаданные расходов
Выходные данные, запертые в галерее аккаунта Локальные зеркальные файлы и долговечные метаданные
Рабочий процесс только через интерфейс Те же возможности через интерфейс и MCP
Ожидание следующей функции Исходный код, который вы можете изучить, изменить и расширить

Bench не владеет базовыми моделями. Он дает вам владение переносимым слоем, соединяющим ваши идеи, инструменты, провайдеров, файлы и затраты.

Запустите за три минуты

Что вам нужно

  • Node.js 22.5+; рекомендуется Node 24, потому что Bench использует node:sqlite.
  • npm.
  • API-ключ fal.ai для генерации изображений и видео.
  • Google Chrome для печати PDF и визуального предварительного просмотра.
  • Опционально: API-ключ Google для уточнения промптов.
  • Опционально: установка Codex с выполненным входом для сборки веб-сайтов и документов.

1. Клонирование и установка

git clone https://github.com/promptadvisers/bench-studio-public.git
cd bench-studio-public
npm install

2. Добавление серверных учетных данных

Bench считывает учетные данные из ~/.env. Никогда не помещайте ключи провайдеров в переменные Vite или не коммитьте их в репозиторий.

FAL_KEY=<your-fal-key>
GOOGLE_API_KEY=<your-optional-google-key>

FAL_KEY обязателен для генерации медиа. Без GOOGLE_API_KEY Bench всё равно запускается и отправляет ваш исходный промпт без уточнения.

3. Запуск студии

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 и переносимый навык для совместимых агентов.

Bench Studio создание рабочей области

Система за 30 секунд

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 принял поле; творческая достоверность всё ещё требует проверки человека.

Интеллект модели, а не выпадающий список URL

У каждой конечной точки свои предположения. Некоторые принимают одно изображение, некоторые принимают список, некоторые требуют начальный кадр, а другие не принимают никаких ссылок. 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 из только что опубликованной, переименованной или недостаточно специфицированной модели.

Уточнение подсказки остаётся видимым

  1. Напишите обычный креативный запрос.
  2. Bench добавляет структуру, которую, скорее всего, поймёт выбранная модель.
  3. Проверьте переписанный запрос как редактируемый черновик.
  4. Измените или отвергните его перед тем, как тратить что-либо.
  5. Сохраните окончательный отправленный запрос вместе с результатом.

Если ключ 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"]

Используйте его с Claude, Codex или Cursor

Запустите 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 Запустить полную проверку выпуска.

Безопасность и конфиденциальность

  • API по умолчанию привязан к loopback. Не раскрывайте его публично без аутентификации и продуманной модели угроз.
  • Секреты читаются серверной стороной из ~/.env и никогда не возвращаются в интерфейс.
  • .env* игнорируется, за исключением файла‑заглушки .env.example.
  • Локальные данные, отчёты, собранные сборки, вывод тестов и передачи игнорируются.
  • Сгенерированные медиа могут всё ещё сохраняться внешним провайдером в соответствии с его условиями.

  • Создание веб-сайта и документов может вызывать локально аутентифицированного программного агента. Проверьте сгенерированный исходный код перед его развертыванием.

Прочтите SECURITY.md перед раскрытием, изменением или распространением службы.

Честные границы

  • Bench — локальный однопользовательский инструмент, а не размещённое мультитенантное SaaS-решение.
  • Реестр формируется намеренно; наличие в каталоге не гарантирует допуск в продукционную среду.
  • Принятые входные данные не гарантируют творческой точности.
  • Вывод веб-сайта статичен по замыслу.
  • Создание PDF зависит от локальной установки Chrome.
  • Доступность моделей и цены могут изменяться после синхронизации каталога.
  • Обладание слоем означает поддержку небольшого фрагмента программного обеспечения.

Уверенность в релизе

Шлюз выпуска охватывает сборки для продакшена, контракты API и базы данных, обнаружение MCP, путешествия по браузеру, доступность, адаптивное удержание, состояния сбоя, переходы моделей и визуальные снимки.

npm run test:release

Лицензия

Bench Studio Public доступен по лицензии MIT License.


Модели выполняют тяжёлую работу. Bench делает слой вокруг них видимым — и он ваш.

Войдите, чтобы оставить комментарий