Skip to main content

GA CLI - Google Analytics Command Line Interface

A command-line interface tool for managing Google Analytics 4 properties, accounts, and data streams.

Note: The package is published as ga4-cli on PyPI, but the command is ga-cli.

Features

  • List and manage Google Analytics accounts
  • Create and manage GA4 properties
  • Manage data streams and retrieve measurement IDs
  • Beautiful table output with Rich
  • JSON output support
  • Authentication via service account credentials

Installation

Using pip

pip install ga4-cli

After installation, the command is available as ga-cli:

ga-cli --version
ga-cli --help

Using pipx (recommended for a global command)

pipx install ga4-cli

Using Docker (build locally)

docker build -t ga-cli .

# Run with credentials mounted
docker run -v /path/to/credentials.json:/credentials.json \
  -v ~/.ga-cli:/root/.ga-cli \
  ga-cli accounts list --credentials /credentials.json

Download Binary (No Python Required)

Download standalone binaries from GitHub Releases:

File Platform
ga-cli-linux-amd64.tar.gz Linux x86_64
ga-cli-macos-arm64.tar.gz macOS Apple Silicon
ga-cli-macos-amd64.tar.gz macOS Intel
ga-cli-windows-amd64.exe.zip Windows x86_64

Linux/macOS:

# Pick the file for your platform from the table above
curl -L -o ga-cli.tar.gz https://github.com/sulimanbenhalim/ga-cli/releases/latest/download/ga-cli-macos-arm64.tar.gz
tar -xzf ga-cli.tar.gz
chmod +x ga-cli
sudo mv ga-cli /usr/local/bin/

Windows: Download ga-cli-windows-amd64.exe.zip from the releases page, extract, and run.

From source

git clone https://github.com/sulimanbenhalim/ga-cli.git
cd ga-cli
pip install -e .

Setup

1. Get Google Service Account Credentials

  1. Go to Google Cloud Console
  2. Create or select a project
  3. Enable the Google Analytics Admin API
  4. Create a service account
  5. Download the JSON credentials file
  6. In Google Analytics, go to Admin > Account access management, click +, and add the service account's email (the client_email value in the JSON file) with the Editor role

2. Initialize GA CLI

ga-cli config init

This will prompt you for the path to your service account JSON file, test the credentials, and save the path. If you have not done step 6 yet, it prints the exact email to add and you can carry on afterwards without running init again.

Alternatively, set the environment variable:

export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json

Usage

Configuration

# Initialize with credentials
ga-cli config init

# Show current configuration
ga-cli config show

Accounts

# List all accounts
ga-cli accounts list

# Get account details
ga-cli accounts get <account-id>

# Output as JSON
ga-cli accounts list --format json

Properties

# List properties for an account
ga-cli properties list <account-id>

# Get property details
ga-cli properties get <property-id>

# Create a new property
ga-cli properties create <account-id> --name "My Website" --timezone "America/New_York" --currency "USD"

# Move a property to the trash (restorable from the GA Admin UI until purged)
ga-cli properties delete <property-id>

Data Streams

# List data streams for a property
ga-cli datastreams list <property-id>

# Get data stream details (including measurement ID)
ga-cli datastreams get <property-id> <stream-id>

# Create a new web data stream
ga-cli datastreams create <property-id> --name "Main Website" --url "https://example.com"

Examples

Quick workflow to create a new GA4 property

# 1. List your accounts to get the account ID
ga-cli accounts list

# 2. Create a new property
ga-cli properties create 123456789 --name "BOTCHA" --timezone "Africa/Tripoli"

# 3. Create a web data stream
ga-cli datastreams create 987654321 --name "BOTCHA Website" --url "https://botcha.example.com"

# 4. Get the measurement ID
ga-cli datastreams get 987654321 111222333

Get measurement ID quickly

# If you know your property and stream IDs
ga-cli datastreams get <property-id> <stream-id> | grep "Measurement ID"

Command Reference

Global Options

  • --credentials PATH - Path to service account credentials file
  • --version - Show version
  • --help - Show help message

Output Formats

Most list and get commands support:

  • --format table (default) - Beautiful table output
  • --format json - JSON output

Development

Setup development environment

# Clone the repository
git clone https://github.com/sulimanbenhalim/ga-cli.git
cd ga-cli

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode
pip install -e .

Run tests

pytest tests/ -v

Project Structure

ga-cli/
├── ga_cli/
│   ├── __init__.py
│   ├── cli.py              # Main CLI entry point
│   ├── auth.py             # Authentication manager
│   ├── config.py           # Configuration manager
│   ├── commands/
│   │   ├── accounts.py     # Account commands
│   │   ├── properties.py   # Property commands
│   │   ├── datastreams.py  # Data stream commands
│   │   └── config.py       # Config commands
│   └── formatters/
│       ├── table.py        # Table formatter
│       └── json.py         # JSON formatter
├── tests/
├── setup.py
├── requirements.txt
└── README.md

Requirements

  • Python 3.10+
  • Click 8.0+
  • google-analytics-admin 0.27.0+
  • google-auth 2.0+
  • rich 13.0+ (up to 15.x)
  • pytz 2023.3+

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions, please open an issue on GitHub.

Release files for ga4-cli 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ga4-cli 0.2.1
File Size Uploaded
ga4_cli-0.2.1.tar.gz 20.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ga4-cli 0.2.1
File Interpreter ABI Platform
ga4_cli-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 49.1 kB

Release files / ga4_cli-0.2.1.tar.gz

Download URL ga4_cli-0.2.1.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bc85ce3374c113a1764f10e355641e09dbe3ebcb6b48ec34f5a18d572d578aa4
BLAKE2b-256 checksum
How to use checksums
b011a8371dc7ec4e5cd0c1126a3533a1cd473b34bf79cfb6db16138b95127ffa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release files / ga4_cli-0.2.1-py3-none-any.whl

Download URL ga4_cli-0.2.1-py3-none-any.whl
Size 28.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51afc6a225673625afa15c5dcc815a1c915dbc9ab748f9274daf999b2433a5cb
BLAKE2b-256 checksum
How to use checksums
afee4487b95fa6e6ad7b71ee871ded56ca8aead21f5706fa8bc542aed904cefc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page