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

finan-code-push

v1.0.3

Published

CLI for Finan CodePush - Self-hosted OTA update service for React Native

Downloads

418

Readme

Finan CodePush CLI

CLI tool for managing OTA (Over-The-Air) updates for React Native apps via Finan CodePush server.

Installation

npm install -g finan-code-push

Quick Start

# 1. Login to server
finan-code-push login --accessKey YOUR_ACCESS_KEY

# 2. Create an app
finan-code-push app add MyApp

# 3. Release an update
finan-code-push release-react MyApp ios -d Staging

Authentication

Login with Access Key

finan-code-push login --accessKey YOUR_ACCESS_KEY

Get your access key from the CodePush dashboard at https://cp.sobanhang.com

Check Current Session

finan-code-push whoami

Logout

finan-code-push logout

App Management

Add a New App

finan-code-push app add <appName>

# Example
finan-code-push app add MyApp

List All Apps

finan-code-push app ls

Remove an App

finan-code-push app rm <appName>

Rename an App

finan-code-push app rename <currentName> <newName>

Transfer App Ownership

finan-code-push app transfer <appName> <email>

Deployment Management

Each app has deployments (e.g., Staging, Production). By default, Staging and Production are created.

List Deployments

finan-code-push deployment ls <appName>

# Example
finan-code-push deployment ls MyApp

Add a Deployment

finan-code-push deployment add <appName> <deploymentName>

# Example
finan-code-push deployment add MyApp Beta

View Release History

finan-code-push deployment history <appName> <deploymentName>

# Example
finan-code-push deployment h MyApp Staging

Clear Deployment History

finan-code-push deployment clear <appName> <deploymentName>

Remove a Deployment

finan-code-push deployment rm <appName> <deploymentName>

Releasing Updates

Release React Native App (Recommended)

Automatically bundles and releases your React Native app:

finan-code-push release-react <appName> <platform> [options]

Platforms: ios, android, windows

Examples:

# Release iOS to Staging
finan-code-push release-react MyApp ios

# Release Android to Production
finan-code-push release-react MyApp android -d Production

# Release with description
finan-code-push release-react MyApp ios --des "Bug fixes and performance improvements"

# Release as mandatory update
finan-code-push release-react MyApp ios -m

# Release with specific target version
finan-code-push release-react MyApp ios -t "1.2.0"

# Release with Hermes enabled
finan-code-push release-react MyApp android --useHermes

# Release to 25% of users (gradual rollout)
finan-code-push release-react MyApp ios -r 25%

Options:

| Option | Description | Default | |--------|-------------|---------| | -d, --deploymentName | Target deployment | Staging | | --des, --description | Release description | - | | -m, --mandatory | Mandatory update | false | | -x, --disabled | Disabled initially | false | | -r, --rollout | Rollout percentage | 100% | | -t, --targetBinaryVersion | Target app version | Auto-detect | | -h, --useHermes | Enable Hermes | false | | -e, --entryFile | Entry JS file | Auto-detect | | -b, --bundleName | Bundle file name | Auto-detect | | -s, --sourcemapOutput | Sourcemap output path | - | | -o, --outputDir | Output directory | - | | -p, --plistFile | Info.plist path (iOS) | Auto-detect | | -g, --gradleFile | build.gradle path (Android) | Auto-detect |

Release Pre-built Bundle

If you have a pre-built bundle:

finan-code-push release <appName> <bundlePath> <targetBinaryVersion> [options]

Examples:

# Release a folder
finan-code-push release MyApp ./build "1.0.0" -d Staging

# Release with wildcard version (targets all versions)
finan-code-push release MyApp ./bundle "*"

# Release with semver range
finan-code-push release MyApp ./bundle "~1.2.0"

Promoting & Rolling Back

Promote Release

Promote latest release from one deployment to another:

finan-code-push promote <appName> <sourceDeployment> <destDeployment>

# Example: Promote from Staging to Production
finan-code-push promote MyApp Staging Production

Rollback Release

Rollback to the previous release:

finan-code-push rollback <appName> <deploymentName>

# Example
finan-code-push rollback MyApp Production

Patch Release Metadata

Update metadata of an existing release:

finan-code-push patch <appName> <deploymentName> [options]

# Example: Make latest release mandatory
finan-code-push patch MyApp Production -m

# Example: Disable a release
finan-code-push patch MyApp Staging -x

Collaborators

Add Collaborator

finan-code-push collaborator add <appName> <email>

List Collaborators

finan-code-push collaborator ls <appName>

Remove Collaborator

finan-code-push collaborator rm <appName> <email>

Access Keys

List Access Keys

finan-code-push access-key ls

Add Access Key

finan-code-push access-key add --name "CI Server"

Remove Access Key

finan-code-push access-key rm <accessKeyName>

Debugging

View CodePush debug logs from a running app:

finan-code-push debug <platform>

# Example
finan-code-push debug ios

Configuration

Access key is stored at ~/.code-push.config

Server Configuration

CLI mặc định kết nối tới server Finan CodePush:

  • Dashboard: https://cp.sobanhang.com (web UI để quản lý apps, lấy access key)
  • API Server: https://cp-api.sobanhang.com (CLI kết nối tới đây)

Nếu muốn dùng server khác, truyền URL khi login:

finan-code-push login https://your-server.com --accessKey YOUR_KEY

Requirements

  • Node.js >= 18.0.0
  • React Native project (for release-react command)
  • Xcode (for iOS releases)
  • Android SDK (for Android releases)

Common Workflows

CI/CD Release

# In your CI pipeline
finan-code-push login --accessKey $CODEPUSH_ACCESS_KEY
finan-code-push release-react MyApp ios -d Production -m --des "v1.2.3"
finan-code-push release-react MyApp android -d Production -m --des "v1.2.3"

Staged Rollout

# Release to 10% of users
finan-code-push release-react MyApp ios -d Production -r 10%

# After monitoring, increase to 50%
finan-code-push patch MyApp Production -r 50%

# Finally, release to all users
finan-code-push patch MyApp Production -r 100%

Links

  • CodePush Dashboard: https://cp.sobanhang.com
  • API Server: https://cp-api.sobanhang.com
  • Source Repository: https://code.finan.one/finan-fe/code-push-server

License

MIT