vibeview
v0.20.0
Published
VibeView CLI -- run mobile tests from CI/CD pipelines
Readme
VibeView CLI
Command-line interface for VibeView — cloud iOS simulators and Android emulators in your browser. Upload builds, run AI-powered tests from CI, and develop your React Native app live on a cloud device.
Install
npm install -g vibeviewRequires Node.js 20 or later.
Log in
vibeview loginOpens your browser to authenticate. In CI, set a VIBEVIEW_API_TOKEN environment variable instead (create one in VibeView under Settings → API Tokens).
Live Development
Edit code locally, see it live on a streamed cloud device — including iOS development without a Mac.
# 1. Upload a React Native debug build once
vibeview upload-app ./app-debug.apk
# 2. Start Metro in your project, then:
vibeview devvibeview dev starts a cloud device session, installs your latest debug build, connects it to your local Metro bundler, and opens the live stream in your browser. Save a file and Fast Refresh updates the device in about a second. Supports --platform ios | android | tvos | androidtv; your choices are remembered per platform in a vibeview.json in the project.
Cloud Builds (beta)
Build your React Native app on VibeView's build fleet — no Mac, no CI pipeline, no local toolchain:
vibeview build --cloud # simulator/emulator build
vibeview build --cloud --production # signed release build (.ipa / .aab)A regular cloud build lands in your app's Build History, ready to run on a
cloud device. Add --production for a signed release build on iOS,
tvOS, Android, or Android TV, using signing credentials you store once:
# Apple: connect your team once with an App Store Connect API key,
# then VibeView creates the certificate + provisioning profile for you
vibeview credentials asc-key add --key-id <K> --issuer-id <I> --file AuthKey_<K>.p8
vibeview credentials generate --platform ios --name release --app <app-id>
# ...or upload an exported certificate + profile yourself
vibeview credentials add --platform ios --file cert.p12 --profile app.mobileprovision
# Android: upload a keystore — or have VibeView generate one (no Java needed)
vibeview credentials generate --platform android --name releaseUploaded credentials are stored encrypted and never readable back;
credentials VibeView generated can be re-downloaded by org admins with
vibeview credentials download <name> (every download is audited).
Build-time secrets work the same way:
vibeview env set NPM_TOKEN "..." # secret by default, injected into builds
vibeview webhooks add --url https://ci.example.com/hooks/vibeviewWebhooks POST a signed payload to your endpoint whenever a build finishes.
Manage running builds with vibeview builds list | logs | download | cancel.
Set "autoIncrement": true in a platform's build block and every
production build gets a server-assigned build number, injected into the
build as VIBEVIEW_BUILD_NUMBER (inspect or seed the counters with
vibeview versions list/set).
Expo managed projects work out of the box — the default build command runs
npx expo prebuild in the cloud, so no ios/ or android/ directory is
needed.
When a production build succeeds, ship it straight to the stores — no Xcode, no Play Console upload page:
vibeview submit --platform tvos --latest # → TestFlight
vibeview submit --platform android --track internal # → a Play trackTestFlight uploads use your stored App Store Connect key; Play uploads need
a Google Play service account key stored once with
vibeview credentials play-key add --file service-account.json. Choose a
Play track, upload as a draft, or start a staged rollout — and store your
defaults in vibeview.json so vibeview submit alone does the right
thing.
Cloud Builds docs → · App Signing → · Store Submission → · Build Webhooks →
Let your AI agent drive the device
The same session can be driven by a coding agent, so it can verify its own changes instead of handing you code to test by hand: it reads the screen, taps, types, and checks the result.
vibeview ui-tree # what's on screen, with refs like @e5
vibeview tap @e5 # act — the response says what changed
vibeview screenshot --out ./check.pngOne command makes it discoverable to your agent — it installs the bundled
vibeview-agent skill where Claude Code finds it automatically and offers
to register the MCP server:
vibeview agent-setupEvery command works over MCP too, for agents without shell access:
claude mcp add vibeview -- vibeview mcpOther MCP clients (Cursor, Claude Desktop, VS Code Copilot) run command
vibeview with args ["mcp"]. The package also ships the skill at
skills/vibeview-agent/SKILL.md describing the whole workflow.
Testing from CI
# Upload the build under test (zipped simulator .app for iOS, .apk for Android)
vibeview upload-app ./MyApp.zip
# Run a single test or a whole suite
vibeview run-test <test-id> --output json
vibeview run-suite <suite-id> --output junit
# Run several suites with an aggregated exit code
vibeview run-suites --tag smokeOutput formats: human, json, and junit for any CI system. The exit code reflects pass/fail, and runs can be pinned to a specific build.
All commands
| Command | Purpose |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| vibeview login / logout / whoami | Authenticate via browser, sign out, show who you are |
| vibeview dev | Live development on a cloud device |
| vibeview build | Build your app — locally, or on the build fleet with --cloud (add --production for a signed release) |
| vibeview builds list/logs/download/cancel/delete-artifact | Manage cloud builds and their artifacts |
| vibeview versions list/set | Server-side build-number counters for autoIncrement production builds |
| vibeview credentials add/generate/list/rm/download | App-signing credentials for production builds (generate covers iOS, tvOS, and Android) |
| vibeview credentials asc-key add/list/rm | Connect an Apple team via App Store Connect API key |
| vibeview credentials play-key add/list/rm | Store a Google Play service-account key for Play submissions |
| vibeview submit | Upload a production build to TestFlight or a Google Play track |
| vibeview env list/set/rm/pull | Build variables and secrets injected into cloud builds |
| vibeview webhooks add/list/rm/test | Notify your systems when builds finish (signed payloads) |
| vibeview dev-status / dev-stop | Check on, or stop, a backgrounded dev session |
| vibeview agent-setup | Make VibeView discoverable to your coding agent (skill + MCP) |
| vibeview mcp | Run the MCP server so an agent can drive the device |
| vibeview ui-tree | The current screen's elements, each with a ref to act on |
| vibeview logs | Recent app logs from the device (console output, errors, crashes) |
| vibeview screenshot | Capture the screen to a PNG |
| vibeview tap / type / scroll / press | Drive the device |
| vibeview scroll-to / drag / alert / find | Search, precise gestures, iOS system alerts |
| vibeview upload-app <file> | Upload a build (zipped simulator .app, or .apk) |
| vibeview list-apps | List your apps |
| vibeview list-devices | List available device types |
| vibeview list-suites | List test suites |
| vibeview create-test [name] | Create a test case |
| vibeview run-test <test-id> | Run a single test |
| vibeview run-suite <suite-id> | Run a test suite |
| vibeview run-suites | Run multiple suites |
Run any command with --help for its options.
Documentation
Full guides at vibeview.io/docs — CLI reference, Live Development, CI testing.
