storebound/docs/faq.md
CRT 36a8bf9625 CLI runs on Node 20+: npx storebound (bunx keeps working)
- cli/lib/rt.ts: the runtime layer on node: modules (spawn / spawnSync with Bun's defaults, exit codes and
  "Executable not found", which with PATHEXT, sleep, serve, Glob, hasher, gunzip, stdin, SQLite, packageRoot,
  config imports with a type-stripping fallback for Node 20); every Bun.* use in cli/ goes through it
- tools/gen-embedded.ts -> cli/lib/embedded.ts: templates/, cli/shots/*.html and Play's Data safety form embedded
  (replaces Bun text imports; the bundle and the compiled sidecar carry them), checked fresh by bun run ci
- package.json: bin dist/storebound.mjs (Node ESM bundle, tools/build-node.ts, prepack), engines node >=20
- bun run ci: node bundle + node smoke (real node: --version, help, check same as Bun, scan, release plan --help,
  init, MCP handshake + tool call); Forgejo CI sets up Node 20; tests/node-compat.test.ts guards cli/
- install writes npx MCP commands when run with Node; bin/storebound falls back to Node
- docs: npx storebound init (Node 20+) or bunx storebound init
2026-10-13 04:03:28 +08:00

3.8 KiB

FAQ

Is it only for games? No. It started with my game, but every command is about store records, not engines or genres. init --profile app and --profile subscription-app give you templates for a utility app with accounts and for a subscription app (Data safety, App Privacy, declarations, listing and screenshot copy), the app screenshot style, account deletion and demo account checks, and subscriptions on both stores. Game-only advice (IARC game questions, gameplay footage, ad mediation) is marked as such in the skills.

Do I need Claude (or any AI tool)? No. The CLI is a normal command and the skills are Markdown checklists you can read yourself. The AI integrations are optional adapters generated from the same files.

Does it fill the questionnaires? The ones with an API, yes: Play Data safety (the whole form from dataSafety in the config; the import replaces the form, so the config is the single truth), Apple age rating, content rights, categories, price and availability, the export compliance answer and the App Review details. The stores have no public API for Play's App content cards (IARC content rating, target audience, ads, advertising ID, app access, government / financial / health / news) or for Apple's App Privacy labels. For those, init gives you prepared answers (store/declarations.md, store/app-privacy.md, per profile: a utility app with an account, a subscription app, or a free-to-play game with ads and IAP), and the store-declarations skill has the exact clicks: an agent with browser tools can fill them in while you watch, or you copy them in yourself. Either way the answers are your statements to the stores: change what does not match your app, and the agent asks you whenever the code does not prove an answer. validate cannot see these forms, so store-preflight lists them as a manual check.

My app or game is Unity / Godot / Flutter / React Native / native, not web. Screenshots and clips come from the iOS Simulator (ios-sim), an Android emulator or device (android-emu) or a folder you fill with any tool; only the rendering of the store images uses a headless browser. The store commands do not care about the engine at all: they work on your AAB / build numbers and listing files.

Is my store account safe? storebound uses the official APIs with keys you create and can revoke, never your password. Store writes are dry runs until you say otherwise, and the public steps (submit, release) stay with you. Use an App Store Connect key with the App Manager role and a Play service account limited to your app.

Why Bun, and does it need Bun? storebound is developed and tested on Bun (TypeScript, fetch, a test runner built in), with zero runtime dependencies. You do not need Bun to use it: the npm package runs on Node 20+ (npx storebound), and bunx storebound runs the same CLI on Bun 1.1+.

Does it upload my video to YouTube? No. Play only takes a YouTube URL, and uploading to YouTube needs your Google account; shots video makes the file, you upload it and paste the URL into play.video.

Can it run store experiments for me? On the App Store, mostly: apple ppo create / upload builds a Product Page Optimization test from your shots variants (treatments, locales, screenshots) and you start it (apple ppo start asks first). Results per treatment are only shown in App Store Connect. Play store listing experiments have no API: storebound renders and checks the variant images, you set the experiment up in Play Console.

Does it answer reviews by itself? No. It drafts one file per review, your agent helps write the replies, and only the drafts you mark approved: true are sent, by you, after a confirmation. Replies that offer something for a rating are refused.


All docs · README