npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@invarn/cibuild

v1.5.6

Published

CI Build CLI — local pipeline orchestration and validation

Downloads

5,445

Readme

cibuild

The fastest way to set up iOS and Android CI on GitHub - define pipelines in YAML, run locally or on GitHub Actions.

Install

npm install -g @invarn/cibuild

This installs two identical commands: ci and cibuild.

Getting Started

Option 1. Auto-create (recommended)

From your project root, let cibuild scan the project and generate a pipeline with recommended defaults:

ci init --create

This auto-detects the platform (iOS/Android), configures build settings, collects secrets from disk, and generates a ready-to-use GitHub Actions workflow — fully non-interactive, works with AI agents and scripts.

Option 2. Interactive wizard

Walk through prompts to configure your pipeline step by step:

ci init

Option 3. Import existing pipeline

If you already have a pipeline YAML file:

ci init --import path/to/pipeline.yml

All three methods scaffold the .ci/pipelines/ directory, generate .github/workflows/ci.yml, validate dependencies, and set up .gitignore.

Customize

cibuild works best when you start with ci init --create and build on top of the generated pipeline. The full pipeline format, step catalog, and customization rules are in the spec.

Tell your AI coding agent:

Set up and customize CI/CD pipelines for this project using cibuild according to the following spec: https://raw.githubusercontent.com/invarnhq/cibuild/refs/heads/main/SPEC.md

Run

ci run                                         # Run the default pipeline
ci run .ci/pipelines/cibuild.yml -w release    # Run a specific workflow

Commands

| Command | Description | |---|---| | ci init | Interactive setup wizard | | ci init --create | Auto-create pipeline (non-interactive) | | ci init --import <path> | Import YAML pipeline (non-interactive) | | ci build | Generate a standard pipeline for the current project | | ci run <path> [-w <name>] | Run pipeline locally (development mode) | | ci run <path> [-w <name>] --production | Run on remote runner (production) | | ci run <path> [-w <name>] --validate-only | Validate only, don't execute | | ci run <path> [-w <name>] --skip-validation | Skip validation, run with interactive prompts | | ci validate <path> [-w <name>] | Validate pipeline (alias for --validate-only) | | ci detect-platform <path> [-w <name>] | Detect platform from YAML pipeline | | ci edit <path> [-w <name>] | View pipeline and edit step inputs | | ci secrets add <var> <path> [-w <name>] | Add a secret (prompted interactively) | | ci secrets add <var> <path> --file <file> | Add a secret from a file | | ci secrets upload [--env <name>] | Upload secrets to GitHub environment | | ci secrets sync-workflow <path> | Sync secret mappings into workflow YAML | | ci --help | Show help |

Options

| Flag | Description | |---|---| | -w, --workflow <name> | Select a workflow (YAML pipelines only, defaults to first) | | --production | Execute on remote runner after validation (vs local) | | --validate-only | Run validation only, don't execute pipeline | | --skip-validation | Skip pre-execution validation (for development) |

Secrets

Secrets are stored locally in .cibuild-secrets.json and never committed.

ci secrets add KEYSTORE_PASSWORD pipeline.yml
ci secrets add KEYSTORE_BASE64 pipeline.yml --file release.keystore
ci secrets add SLACK_WEBHOOK pipeline.yml -w release

Deploy to GitHub

Push all local secrets to a GitHub Environment in one command:

ci secrets upload

This uploads every secret to the cibuild environment on GitHub and automatically syncs the env: mappings in .github/workflows/ci.yml. Requires GitHub CLI (gh auth login).

GitHub Actions

Use cibuild directly in your GitHub Actions workflows:

name: CI
on: [push, pull_request]

jobs:
  build:
    runs-on: macos-latest
    environment: cibuild
    steps:
      - uses: actions/checkout@v4
      - uses: invarnhq/cibuild@v1
        with:
          workflow: release

Action Inputs

| Input | Required | Default | Description | |---|---|---|---| | pipeline | No | Auto-discover | Path to pipeline YAML file | | workflow | No | First workflow | Workflow name within the pipeline | | version | No | latest | cibuild version to install |

The action automatically maps GitHub context to cibuild environment variables (GIT_BRANCH, GIT_COMMIT, BUILD_NUMBER, BUILD_URL). See Secrets for setting up secret access in CI.

Examples

| Project | Platform | Status | |---|---|---| | CITestiOS | iOS | CI | | CITestAndroid | Android | CI |

Requirements

  • macOS or Linux (Node.js 18+ for npm install)
  • Android projects: JDK, Android SDK
  • iOS projects: macOS with Xcode (CocoaPods optional)

Run ci init from your project root to check all dependencies automatically.