CLI tutorial

Shiptavio CLI: submit a release from your terminal

The Shiptavio CLI sends source to the same review queue as the dashboard. This guide covers installation, authentication, project linking, submissions, CI usage, and the files the CLI includes or excludes.

By Shiptavio · Updated 26 October 2026 · 8 min read · Shiptavio CLI

1. Check the requirements

The CLI runs on Node.js and talks to the Shiptavio API. You need an account and an app record before you can submit.

  • Node.js 20 or newer.
  • A Shiptavio account.
  • An app registered in the dashboard.
  • Available release credits for the release you want to send.

2. Create a personal token

The CLI uses a personal token instead of your password. Create it in Account settings, copy it once, and treat it like a password.

  • Open the dashboard and go to Account settings.
  • Find Submit from your terminal.
  • Name the token, create it, and copy the value.
  • Revoke the token from the same page if it leaks.

Do not commit the token, paste it into a repository file, or share it in a support ticket.

3. Install and sign in

Install the CLI globally or run it with npx. Then sign in with the token. For a self-hosted instance, pass its base URL.

  • The CLI stores the token in ~/.shiptavio/config.json with owner-only permissions.
  • Set SHIPTAVIO_TOKEN in CI to skip the interactive login.
Install
npm install -g shiptavio
Run without installing
npx shiptavio@latest help
Sign in
shiptavio login
Self-hosted or local API
shiptavio login --api http://localhost:3000

4. Link the project folder

Run init inside the project. The CLI asks which app the folder belongs to and writes shiptavio.config.json.

  • Commit shiptavio.config.json or add it to .gitignore. Either is fine.
  • Run init once per project folder.
  • If you have multiple apps, use a separate folder or config for each.
Link the folder
shiptavio init

5. Submit a release

The CLI asks for the version, shows the checklist, packages the source, and uploads it. Flags skip the prompts for scripts and CI.

  • Use --ios or --android to target a platform. Defaults come from the app record.
  • Use --build-command to tell our team exactly how to build the source.
  • Use --notes for flavors, native setup, or a second config file.
  • The source limit is 200 MB.
Interactive submission
shiptavio submit
Non-interactive submission
shiptavio submit --version 1.2.0 --ios --yes
Send an environment file
shiptavio submit --version 1.2.0 --env-file .env.production

6. Check the release status

The CLI can show the release stage without opening the dashboard.

Latest release
shiptavio status
A specific release
shiptavio status --release <release-id>

7. Use the CLI in CI

Run init once in the repository, commit the config, and store the token as a CI secret. Then submit on a tag or a manual job.

  • Do not echo the token in logs.
  • Pin the CLI version if you need a reproducible pipeline.
  • Add the build command and notes as flags or in the config.
  • A CI job should not run init on every build if the config is committed.
CI example
SHIPTAVIO_TOKEN="$SHIPTAVIO_TOKEN" npx shiptavio@latest submit \
  --version "$VERSION" \
  --yes \
  --api https://shiptavio.com

8. Know what gets packaged

The CLI is designed to send source without common secrets. You should still check the file list before the first submission.

  • In a git repo, it uses git ls-files --cached --others --exclude-standard.
  • It always excludes .env and .env.* (except examples), *.pem, *.p12, *.pfx, *.key, *.keystore, *.jks, *.mobileprovision, *.cer, id_rsa, id_ed25519, .DS_Store, and Thumbs.db.
  • It includes google-services.json and GoogleService-Info.plist when they exist because the build needs them.
  • It never uploads a finished .ipa or .aab.

9. Troubleshooting

Most failures are authentication, app selection, or source size problems.

  • That token is missing or was revoked: create a new token and run shiptavio login again.
  • No apps yet: register an app at /dashboard/apps/new.
  • This app has no release credits left: renew the subscription in the dashboard.
  • Cannot reach the API: check --api and your network.
  • Source too large: remove generated folders such as build output and dependency caches.

Common questions

Is the CLI required to use Shiptavio?
No. You can use the dashboard for the same submission flow. The CLI is for people who prefer a terminal or CI.
Does the CLI replace my build pipeline?
No. It packages and sends source. Shiptavio builds, signs, and submits the release with its organization accounts.
Can I run the CLI on Windows, macOS, or Linux?
Yes, anywhere Node.js 20 or newer is available. The app build runs on Shiptavio's Mac, not on your machine.
How do I rotate a leaked token?
Revoke it in Account settings, create a new token, and update the CI secret or run shiptavio login again.
Can I use the CLI with a private repository?
The CLI uploads a source package from your machine. A private repository URL is a separate source option in the dashboard and requires read access for the Shiptavio account.
What if the source is over 200 MB?
Remove generated folders and dependency caches. If the app still needs more, contact support before submitting.

Related guides

Ready to send the project?

Register the app and add the source. A person reviews the project before the build starts.