A powerful command-line interface for Apple's Xcode Cloud, built in Rust. Manage your CI/CD workflows, build runs, and artifacts directly from your terminal.
- π Interactive Browser: Navigate through products, workflows, branches, and actions with an intuitive menu system
- π¦ Product Management: List and inspect your Xcode Cloud products
- βοΈ Workflow Operations: View workflows, start builds, and monitor progress
- πΏ Branch Management: List and work with repository branches
- ποΈ Build Control: Start new build runs and track their status
- π Run Analytics: View detailed build run information, artifacts, and test results
- π Token Management: Generate and manage App Store Connect API tokens
- π Raw Data Access: Get detailed JSON information for debugging and automation
brew tap maximbilan/xcloud https://github.com/maximbilan/xcloud
brew install xcloudgit clone https://github.com/yourusername/xcloud.git
cd xcloud
cargo build --releaseThe binary will be available at target/release/xcloud.
cargo install xcloudxcloud requires App Store Connect API credentials. Set these environment variables:
export XCLOUD_ISSUER="your-issuer-id" # App Store Connect Issuer ID
export XCLOUD_KEY_ID="your-key-id" # App Store Connect API Key ID
export XCLOUD_P8="your-private-key-content" # Contents of your .p8 private key- Issuer ID: Found in App Store Connect under "Users and Access" β "Keys" β "App Store Connect API"
- Key ID: The identifier for your API key
- Private Key: The contents of your downloaded
.p8file (either the full PEM format or just the base64 content)
Simply run xcloud to enter the interactive browser:
xcloudThis will guide you through:
- Selecting a product
- Choosing a workflow
- Picking a branch
- Performing actions (start builds, view runs, etc.)
# List all Xcode Cloud products
xcloud products
# Get detailed information about a specific product
xcloud product-info --product <product-id># List workflows for a product
xcloud workflows --product <product-id>
# Get detailed workflow information
xcloud workflow-info --workflow <workflow-id>
# List recent build runs for a workflow
xcloud runs --workflow <workflow-id># List branches for a product's repository
xcloud branches --product <product-id># Start a new build run
xcloud build-start --workflow <workflow-id> --branch <branch-id># Get detailed information about a build run
xcloud run-info --run <run-id>
# List artifacts for a build run
xcloud artifacts --run <run-id>
# View test results for a build run
xcloud test-results --run <run-id># Generate and print a short-lived App Store Connect token
xcloud token-v, --verbose: Enable verbose output for debugging-h, --help: Show help information--version: Show version information
# 1. List your products
xcloud products
# 2. List workflows for your product
xcloud workflows --product abc123-def456-ghi789
# 3. List branches
xcloud branches --product abc123-def456-ghi789
# 4. Start a build
xcloud build-start --workflow xyz789-abc123 --branch main# Check recent runs for a workflow
xcloud runs --workflow xyz789-abc123
# Get detailed run information
xcloud run-info --run run-abc123-def456
# Download artifacts
xcloud artifacts --run run-abc123-def456# Generate a token for other tools
TOKEN=$(xcloud token)
# Use the token with curl
curl -H "Authorization: Bearer $TOKEN" \
https://api.appstoreconnect.apple.com/v1/ciProductsThe interactive mode provides a hierarchical navigation system:
- Products β Select your Xcode Cloud product
- Workflows β Choose a workflow to work with
- Branches β Pick a branch for builds
- Actions β Perform operations like:
- Start build runs
- View recent runs
- Inspect run details
- Download artifacts
- View test results
Use arrow keys to navigate and Enter to select. Type to filter options.
xcloud uses the official App Store Connect API v1. It automatically handles:
- JWT token generation and caching
- API pagination
- Error handling and retries
- Rate limiting compliance
"Missing env XCLOUD_ISSUER"
- Ensure your environment variables are set correctly
- Check that your
.p8key file is properly formatted
"Failed to parse XCLOUD_P8 as an EC PKCS#8 private key"
- Make sure your private key is in the correct format
- xcloud accepts both full PEM format and base64-only content
"No products available"
- Verify your API key has the necessary permissions
- Check that you have Xcode Cloud products set up in App Store Connect
Use the --verbose flag to see detailed API requests and responses:
xcloud --verbose productsContributions are welcome! Please feel free to submit a Pull Request.
git clone https://github.com/yourusername/xcloud.git
cd xcloud
cargo build
cargo testThis project is licensed under the MIT License - see the LICENSE file for details.
- Built with Rust for performance and reliability
- Uses clap for command-line argument parsing
- Powered by reqwest for HTTP requests
- Interactive menus provided by dialoguer
Made with β€οΈ for the iOS development community
