The @aptos-labs/aptos-cli package allows you to use the Aptos CLI from inside a Nodejs project.
To install the Aptos CLI, you need to have Node.js and npm installed on your system. Then, you can install it using:
npm install @aptos-labs/aptos-cliThat command will download the Aptos CLI and create a Node bin file, making it available to use in a Node environment.
Once you have the package installed and the Node bin file, you can run the following command, in your project environment, to install the Aptos CLI in your project:
npx aptos --installAlternatively, you can simply run the cli using the npx aptos command. That will install the Aptos CLI in your project if it's not already installed.
npx aptosTo use the Aptos CLI, in your project environment, run the npx aptos command, to see the available commands.
npx aptosIf you already have the Aptos CLI binary installed on your system, you can specify its path to use it directly:
npx aptos --binary-path /path/to/aptos <command>You can install a specific version of the Aptos CLI by setting the APTOS_CLI_VERSION environment variable:
# Install version 4.5.0
APTOS_CLI_VERSION=4.5.0 npx aptos --install
# Or with the v prefix
APTOS_CLI_VERSION=v4.5.0 npx aptos --installWhen APTOS_CLI_VERSION is set:
- The specified version is downloaded directly from GitHub releases (package managers are bypassed)
- The version is validated to ensure it exists before downloading
- This works for both
--installand--updatecommands
This is useful for:
- Pinning to a known working version
- Testing against specific CLI versions
- Reproducible builds in CI/CD pipelines
To update the Aptos CLI, you can run the following command within your project environment:
npx aptos --updateTo set up the project for development:
- Clone the repository
- Install dependencies:
npm install
- Run the development server:
npm run dev
This will build the project and run the CLI.
To build the project:
npm run buildThe Aptos CLI can be used in CI/CD pipelines to build Move packages and generate deployment payloads. This is useful for automated deployments and multi-step workflows.
# In your GitHub Actions workflow
# Prerequisites: Set up Node.js first
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install Aptos CLI npm package
run: npm install @aptos-labs/aptos-cli
- name: Install Aptos CLI
run: npx aptos --install
- name: Build Move package
working-directory: your-move-project
run: |
~/.local/bin/aptos move compile \
--named-addresses your_module=0x1 \
--save-metadata
- name: Generate publish payload
working-directory: your-move-project
run: |
~/.local/bin/aptos move build-publish-payload \
--named-addresses your_module=0x1 \
--json-output-file publish-payload.json \
--assume-yes
- name: Upload artifact for later steps
uses: actions/upload-artifact@v4
with:
name: move-artifacts
path: your-move-project/publish-payload.jsonFor upgrading existing object-deployed contracts:
- name: Generate upgrade payload
working-directory: your-move-project
run: |
~/.local/bin/aptos move build-upgrade-payload \
--named-addresses your_module=0x1 \
--object-address 0xYOUR_OBJECT_ADDRESS \
--json-output-file upgrade-payload.json \
--assume-yesjobs:
build:
runs-on: ubuntu-latest
steps:
# ... build steps above ...
- uses: actions/upload-artifact@v4
with:
name: move-artifacts
path: your-move-project/publish-payload.json
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: move-artifacts
- name: Use the payload
run: |
# The payload JSON can be used for deployment
cat publish-payload.jsonSee the build-move-artifacts.yaml workflow for a complete working example.