Home / CLI

Pulse CLI

Authenticate, set up projects, upload Xcode build scans, and browse your builds — all from the terminal.

Installation

macOS, Linux, WSL

curl -fsSL https://pulse.premex.se/install.sh | bash

Windows PowerShell

irm https://pulse.premex.se/install.ps1 | iex

Windows CMD

curl -fsSL https://pulse.premex.se/install.cmd -o install.cmd && install.cmd && del install.cmd

Install a specific version

PULSE_VERSION=0.1.2 curl -fsSL https://pulse.premex.se/install.sh | bash

On Windows PowerShell, set $env:PULSE_VERSION = "0.1.2" before running the install script.

Install from source

git clone https://github.com/premex-ab/pulse.git
cd pulse/pulse-cli
go install .

Requires Go 1.22+. The binary is installed to ~/go/bin/pulse.

Verify the installation:

pulse --version

Authentication

Log in with your Pulse account. This opens your browser for secure authentication and saves your credentials locally.

pulse login

Credentials are stored at ~/.pulse/config.json.

Project Setup

Run pulse init in your project root to automatically configure Pulse. It detects your build system and applies the appropriate setup.

pulse init

Gradle projects

Adds the Pulse plugin repository to settings.gradle.kts, applies the plugin in build.gradle.kts, and optionally configures the remote build cache. The latest plugin version is fetched automatically.

Xcode projects

Prints instructions for adding a post-build action to your Xcode scheme, or the pulse upload command for CI.

Uploading Xcode Build Scans

After an Xcode build or test run, upload the .xcresult bundle to collect build data.

pulse upload path/to/Result.xcresult

The CLI parses build results, test outcomes, and environment info from the xcresult bundle and sends them to Pulse.

CI example

xcodebuild test \
  -scheme MyApp \
  -resultBundlePath result.xcresult

pulse upload result.xcresult

Browsing Build Scans

List recent build scans with links to the web dashboard.

pulse scans list

Options

--limit NNumber of scans to show (default: 10)
--project NAMEFilter by project name
--organization SLUGOverride saved organization

Configuration

The CLI stores its configuration at ~/.pulse/config.json after you run pulse login.

{
  "organization": "my-team",
  "apiToken": "plst_..."
}

Environment variables

PULSE_API_TOKENOverride the saved API token
PULSE_SERVER_URLOverride the server URL (for local development)
PULSE_VERSIONPin a specific version during install