vibeview@0.76.0
CAUTION· startup onlyPublisher claims: "VibeView CLI -- run your app on cloud iOS simulators, Android emulators, Apple TV, Android TV and Roku devices: a React Native dev loop, device control for you or your coding agent (CLI or MCP), and tests from CI" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Startup only; authenticated tool behavior not tested.- Tested
- server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
- Not tested
- the tool list (the server exited before answering) · what the tools do when called with real credentials
What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
VIBEVIEW_API_TOKENor--sign-in-password-fileConfiguration, not credentials: BITRISE_BUILD_URL, BITRISE_GIT_BRANCH, BITRISE_GIT_COMMIT, BITRISE_IO, CI_COMMIT_REF_NAME, CI_COMMIT_SHA, CI_JOB_URL, CI_MERGE_REQUEST_SOURCE_BRANCH_NAME, CI_PIPELINE_URL, CIRCLE_BRANCH, CIRCLE_BUILD_URL, CIRCLE_SHA1, CIRCLECI, CODEX_HOME, ENV_KEY_RE, GIT_CLONE_COMMIT_HASH, GITHUB_ACTIONS, GITHUB_EVENT_PATH, GITHUB_HEAD_REF, GITHUB_REF_NAME, GITHUB_REPOSITORY, GITHUB_RUN_ID, GITHUB_SERVER_URL, GITHUB_SHA, GITLAB_CI, NO_UPDATE_NOTIFIER, VIBEVIEW_BASE_URL, VIBEVIEW_DEBUG, VIBEVIEW_NO_UPDATE_CHECK, VIBEVIEW_QUEUE_WAIT_MS, VIBEVIEW_WEB_URL- Where it talks to
- vibeview.io (its own)Also gradle.org, android.com, tanstack.com, apple.com, claude.com, cursor.com, chatgpt.com, visualstudio.com, devin.ai — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- the tool list (the server exited before answering) · what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names gradle.org, android.com, tanstack.com, apple.com, claude.com, cursor.com, chatgpt.com, visualstudio.com, devin.ai as well as its own vendor. The guard injects VIBEVIEW_API_TOKEN only into requests to vibeview.io (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-11 and scored it 73/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 32 s · 2 scenarios · 0 deviationsStatic findings
...env !== void 0 ? { env } : {},Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.build command in `vibeview.json` builds and uploads the app itself (thisFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const prefix = `${installCommand(cwd)} && ${web ? `${web} && ` : ""}npx cap sync ${platform} && `;Fix: Pin versions and sources; vendor anything fetched at install time.…, "Bare: build and upload first (uses platforms.<platform>.build from vibeview.json). With an id: run that uploaded debug build instead of the newest one (any build with --standalone) (see `vib…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`vibeview.json: platforms.${platformKey}.${at}.env must be an object of string values`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`vibeview.json: platforms.${platformKey}.${at}.env must be an object of string values`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.it, `npx --yes yarn@1 install --frozen-lockfile`: the builders' defaultFix: Pin versions and sources; vendor anything fetched at install time.var YARN1_VIA_NPX = "npx --yes yarn@1";Fix: Pin versions and sources; vendor anything fetched at install time.var EXPO_PUBLIC_REF = /\bprocess\.env\.(EXPO_PUBLIC_[A-Za-z0-9_]+)/g;Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`npx expo start`. Ready-made commands per framework:Fix: Pin versions and sources; vendor anything fetched at install time.…ibeview dev --build`. It runs the `development` profile's command from `vibeview.json` here, uploads the result, then starts the session. `vibeview build` builds and uploads without a session. | | The same kind of change, but no Mac or no …Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.(`yarn start`, `npx expo start` or equivalent) and leave it running. NotFix: Pin versions and sources; vendor anything fetched at install time.return `No package.json in ${dir}. Run vibeview build from your project root. (Your build command runs \`${pm}\` there; nothing was uploaded or charged.)`;Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`dev_reload is for Roku channels; ${platformWithArticle(target.platform)} session hot-reloads through Metro on its own`Fix: Pin versions and sources; vendor anything fetched at install time.* the CLI's engines floor is >=20, see package.json) — mirrors uploadBuild'sFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`dev-reload is for Roku channels; ${platformWithArticle(state.platform)} session hot-reloads through Metro on its own.`,Fix: Pin versions and sources; vendor anything fetched at install time.const uploadSpinner = !opts.json ? createSpinner("uploading source...") : null;Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.var IOS_PREBUILD = "npx expo prebuild --platform ios && ";Fix: Pin versions and sources; vendor anything fetched at install time.…ription: "Roku only: re-package the channel with the build command from vibeview.json (platforms.roku.build), upload it, and reload it into the session dev_start is holding (or, with no held sessi…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`vibeview.json: platforms.${platformKey}.${at}.env key "${envKey}" is not a valid environment variable name (must match ${ENV_KEY_RE})`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return `${installCommand(cwd)} && npx expo prebuild --platform android --no-install && cd android && ./gradlew assembleDebug`;Fix: Pin versions and sources; vendor anything fetched at install time."Write plain/sensitive variable values to a .env file (secrets and files are never included)"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…uilt. Required: a `platforms.roku.build.profiles.development` entry in `vibeview.json` (`command` packages the zip, `artifact` is its path). Without it `vibeview dev --platform roku` refuses to start. With it, `vibeview dev --platform roku…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.opts.log("Uploading package\u2026");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const metroCommand = flavor === "expo" ? "npx expo start" : "yarn start";Fix: Pin versions and sources; vendor anything fetched at install time.chmod as chmodAsync,Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts."# Values are quoted/escaped only where the .env format requires it."Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.… const why = v.value.includes("\r") ? "contains a carriage return, which the .env format normalizes away" : "contains a single quote, a double quote and a backti…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.same command. Never use `npx expo run:ios` / `run:android` as a cloud buildFix: Pin versions and sources; vendor anything fetched at install time.const outPath = opts.out ?? ".env";Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`npx expo prebuild --platform <p>` followed by `xcodebuild` or Gradle in theFix: Pin versions and sources; vendor anything fetched at install time.untracked file `.gitignore` doesn't exclude, so a stray local `.env` goesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return `A newer vibeview is available: ${current} \u2192 ${latest}. Run \`npm i -g vibeview@latest\`, or \`npx vibeview@latest ...\`.`;Fix: Pin the exact version (`[email protected]`, `==1.2.3`) so every install gets the bytes that were reviewed.…app's newest release build. Not on Roku. | | `build --cloud` | Build a `vibeview.json` profile on a cloud builder and add the result to the app's builds: `--platform <p>\|all`, `--profile <name>`, `--json` (NDJSON; `build_finished` carries…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for vibeview@0.76.0 as of 3d ago. This is the package itself, not its dependencies.
What would make this Verified
7 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim vibeview: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Auto-update or dynamic fetch configuration≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.