Open Source · MITv0.1.0

Ship app releases from your terminal

searvia is an open-source command-line tool, written in TypeScript, for App Store and Google Play releases. It keeps your store listings in plain files next to your code, checks them before you publish and sends the whole release to review with one command.

Run Without Installing
npx searvia --help

Needs Node.js 20 or newer. No account is required; it uses your own App Store Connect API key and Google Play service account.

View the Repository on GitHub

What It Does

  • Pull and Push Store Listings

    Download the name, subtitle, keywords, descriptions and release notes of every language from both stores into folders compatible with fastlane, edit them in your editor and push them back.

  • Offline ASO Audit

    Checks every language without a network call: the 100-byte keyword field, repeated words already in the name and subtitle, character limits and empty fields.

  • Screenshot Upload

    Uploads screenshots and app previews per language and device, checks Apple’s and Google’s exact pixel sizes first and keeps their order.

  • Build Upload

    Uploads the Android App Bundle to a Play track and the iOS build to App Store Connect, then waits until it is processed.

  • One-Command Release to Review

    Creates the App Store version, attaches the build, answers export compliance and submits it, or promotes a Play release with a staged rollout.

  • Optional Searvia Connection

    With a Searvia API key it adds keyword ranks, popularity and AI metadata suggestions to the audit, through the same API and MCP tools as the Searvia app.

Commands

terminal
npx searvia init              # detects fastlane folders and keys
npx searvia pull              # store text → ./fastlane/metadata
npx searvia audit             # offline ASO checks, no keys needed
npx searvia push              # shows the changes; add --yes to apply
npx searvia screenshots upload --yes
npx searvia build upload --ipa App.ipa --yes
npx searvia release --platform ios --ipa App.ipa --yes

Every command that writes to a store shows the changes first and applies them only with --yes. Run npx searvia <command> --help for all options.

Files You Already Know

fastlane-compatible folders
fastlane/metadata/
  en-US/
    name.txt
    subtitle.txt
    keywords.txt
    description.txt
    release_notes.txt
  android/en-US/
    title.txt
    short_description.txt
    full_description.txt
    changelogs/default.txt

Use It in CI

Keys come from environment variables, so the same commands run in GitHub Actions, GitLab CI or Bitrise. A failed audit stops the pipeline before anything reaches the store.

.github/workflows/release.yml
jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npx searvia audit
      - run: npx searvia push
        env:
          ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
          ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
          ASC_PRIVATE_KEY: ${{ secrets.ASC_PRIVATE_KEY }}
          PLAY_SERVICE_ACCOUNT: ${{ secrets.PLAY_SERVICE_ACCOUNT }}
          SEARVIA_API_KEY: ${{ secrets.SEARVIA_API_KEY }}  # optional

Prefer a screen?

The same release flow is available in the Searvia app: a live checklist for both stores, screenshot uploads, build selection and submission for review, with notifications when Apple’s review status changes.