편집자 노트

NanoBananaPro 生成

dsh-nanobananapro adds native image and video generation to DeepSeek Harness through the NanoBananaPro public API. It uses a user-owned NanoBananaPro API key; provider, billing, database, and storage credentials stay on the NanoBananaPro service.

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.

NanoBananaPro for DeepSeek Harness

npm DeepSeek Harness License: MIT

dsh-nanobananapro adds native image and video generation to DeepSeek Harness through the NanoBananaPro public API. It uses a user-owned NanoBananaPro API key; provider, billing, database, and storage credentials stay on the NanoBananaPro service.

Tools:

  • nanobananapro_generate_image
  • nanobananapro_generate_video
  • nanobananapro_get_task
  • nanobananapro_get_balance
  • nanobananapro_account_help

中文说明

Account, API key, and recharge

  1. Sign in at https://api.bananapro.site.

  2. Buy API credits at https://api.bananapro.site/api-pricing.

  3. Create an API key at https://api.bananapro.site/api-keys.

  4. Keep the key private. Set it in the environment that launches Harness:

    export NANOBANANAPRO_API_KEY='sk-...'
    
  5. Restart Harness and ask it to call nanobananapro_get_balance.

NanoBananaPro has separate web-playground and API wallets. This plugin consumes the API wallet, so purchasing ordinary web credits does not fund API calls. The balance tool returns both values and the correct recharge link.

Official API documentation: https://api.bananapro.site/api-docs

Install

npx -y @deepseek-ai/dsh plugin --profile web add dsh-nanobananapro
npx -y @deepseek-ai/dsh --profile web --dump-config
npx -y @deepseek-ai/dsh web --profile web

The config dump should contain a nanobananapro bundle layer.

To install a cloned checkout instead:

npx -y @deepseek-ai/dsh plugin --profile web add .

Try it

Check my NanoBananaPro API balance. Then create a 16:9, 2K cinematic hero
image of a transparent running shoe on chrome. Wait for the result.
Use NanoBananaPro Veo 3 Fast to create a cinematic 16:9 video of a yellow paper
airplane gliding through a clean blue studio. Wait for the final video link.

Reference media must be reachable through public HTTPS URLs. The plugin does not upload local files; upload them to a public object store or the product UI first, then pass the resulting URL.

Safety and billing behavior

  • Paid image and video tools ask for approval by default.
  • The API key is resolved through Harness credentials and is never a model tool argument.
  • Every paid submission sends an Idempotency-Key; automatic retries reuse it.
  • Retryable 429 and 5xx responses are retried with bounded backoff.
  • Cancellation aborts requests and foreground polling.
  • 401 errors point to API-key management; 402 errors point to API recharge.
  • If the foreground wait expires, the task is returned with timed_out: true. Continue with nanobananapro_get_task; do not submit a duplicate request.

Configuration

Override the bundle in $DSH_HOME/profiles/web/cordis.patch.yml only when needed:

- id: nanobananapro
  config:
    apiBaseUrl: https://gateway.bananapro.site
    apiKeyEnv: NANOBANANAPRO_API_KEY
    requestTimeoutMs: 30000
    pollIntervalMs: 3000
    imageWaitTimeoutMs: 300000
    videoWaitTimeoutMs: 900000
    maxRetries: 2
    retryDelayMs: 500
    requireApproval: true
    allowLocalHttp: false

Harness config rows are replaced as a whole, so retain every setting when overriding the row. Disable requireApproval only for a trusted automation with an intentional spending limit.

Validate

npm run check
npm test
npm run pack:check

The package ships plain JavaScript and does not need an install-time build script.

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.