Bugsee CLI
bugsee-cli is a single, cross-platform command-line tool that handles the
build-time side of Bugsee: it uploads debug information files (R8/ProGuard
mappings, native ELF symbols, Apple dSYMs, JavaScript source maps), uploads
build artefacts for size analysis, packages build-info metadata, and
resolves build-environment metadata (VCS, CI provider, iOS dependency graph,
Xcode version, Mach-O UUIDs) — all from one binary.
It is the canonical origin for everything Bugsee needs at build time. The per-build-system integrations (the Android Gradle plugin, the iOS SDK's build script, the fastlane plugin, and others) shell out to it rather than each re-implementing HTTP, compression, retry, chunking, and the presigned-upload handshake.
You usually don't run bugsee-cli by hand. The Bugsee SDKs and build plugins
download and invoke it for you. This section documents the CLI directly for CI
pipelines, custom build systems, and anyone who wants to script uploads
themselves.
What it does
| Area | Commands |
|---|---|
| Debug information files | debug-files upload |
| JavaScript source maps | sourcemaps inject + debug-files upload --type sourcemaps |
| Build artefacts & metadata | upload build, upload build-info, pack |
| iOS build publishing | xcode post-action |
| Build metadata resolvers | vcs-metadata, ios-deps, build-env, dsym |
| Self-update | update |
Quick start
Install the latest release (downloads and SHA-256-verifies the binary for
your host from download.bugsee.com):
- Linux, macOS
- Windows
curl --proto '=https' --tlsv1.2 -sSfL https://download.bugsee.com/cli/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://download.bugsee.com/cli/install.ps1 | iex"
Upload an Android R8/ProGuard mapping:
- Inline token
- Environment variable
bugsee-cli debug-files upload ./app/build/outputs/mapping/release \
--app-token "your-app-token" \
--version 1.4.0 --build 1400
export BUGSEE_APP_TOKEN="your-app-token"
bugsee-cli debug-files upload ./app/build/outputs/mapping/release \
--version 1.4.0 --build 1400
See Installation for every install channel and Configuration for tokens, endpoints, and environment variables.
Design notes
- Exit codes are a contract. Metadata resolvers exit
0even when they find nothing (callers inspect the JSON shape, not the exit code); upload commands use a structured exit-code contract so an integrator can decide whether to fall back to its own uploader. - Output is JSON on stdout for every resolver subcommand, so the tool composes cleanly into scripts.
- No telemetry beyond an uploader header. The only thing the CLI reports
about itself is an
X-Bugsee-Uploader: cliheader on metadata POSTs, so the backend can distinguish CLI uploads from legacy in-language uploads. See Exit codes & telemetry.