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

aircall-cli

v0.2.0

Published

Unofficial CLI for the Aircall Public API

Downloads

30

Readme

aircall-cli

npm version

Warning: This is an unofficial CLI tool for the Aircall API. It is not affiliated with, endorsed by, or maintained by Aircall. Simply a project in vibe coding that may provide value to some users :)

A command-line interface for interacting with the Aircall Public API. Manage calls, contacts, users, numbers, tags, teams, and webhooks from your terminal.

Installation

npm install -g aircall-cli

Requires Node.js 18 or later.

Quick Start

  1. Authenticate with your Aircall API credentials (found in the Aircall Dashboard under Integrations > API keys):
aircall auth login --api-id YOUR_API_ID --api-token YOUR_API_TOKEN
  1. Test your connection:
aircall ping
  1. Run your first command:
aircall calls list
aircall users list --format json

Available Commands

Authentication

| Command | Description | |---------|-------------| | aircall auth login | Authenticate with API credentials (interactive or via flags) | | aircall auth status | Check current authentication status | | aircall auth logout | Remove stored credentials |

Calls

| Command | Description | |---------|-------------| | aircall calls list | List calls | | aircall calls get <id> | Get details for a specific call | | aircall calls search | Search calls with filters |

Conversation Intelligence

| Command | Description | |---------|-------------| | aircall calls summary <id> | Get the AI-generated summary of a call | | aircall calls topics <id> | Get the topics discussed in a call | | aircall calls sentiments <id> | Get the sentiment analysis of a call | | aircall calls action-items <id> | Get the action items extracted from a call | | aircall calls transcription <id> | Get the transcription of a call | | aircall calls realtime-transcription <id> | Get the realtime transcription of a call | | aircall calls custom-summary <id> | Get the custom summary result (AI Assist Pro) | | aircall calls evaluations <id> | Get evaluation data for a call | | aircall calls playbook <id> | Get the playbook result (AI Assist Pro) |

Contacts

| Command | Description | |---------|-------------| | aircall contacts list | List contacts | | aircall contacts get <id> | Get details for a specific contact | | aircall contacts create | Create a new contact | | aircall contacts search | Search contacts by phone or email |

Users

| Command | Description | |---------|-------------| | aircall users list | List users | | aircall users get <id> | Get details for a specific user |

Numbers

| Command | Description | |---------|-------------| | aircall numbers list | List phone numbers | | aircall numbers get <id> | Get details for a specific number |

Tags

| Command | Description | |---------|-------------| | aircall tags list | List tags | | aircall tags get <id> | Get details for a specific tag | | aircall tags create | Create a new tag |

Teams

| Command | Description | |---------|-------------| | aircall teams list | List teams | | aircall teams get <id> | Get details for a specific team |

Webhooks

| Command | Description | |---------|-------------| | aircall webhooks list | List webhooks | | aircall webhooks get <id> | Get details for a specific webhook | | aircall webhooks create | Create a new webhook | | aircall webhooks delete <id> | Delete a webhook |

Utility

| Command | Description | |---------|-------------| | aircall ping | Test your API connection |

Pagination

All list commands support pagination:

# Specific page
aircall calls list --page 2 --per-page 50

# Auto-paginate through all results
aircall calls list --all

The --all flag automatically fetches every page. The Aircall API caps results at 10,000 items for calls and contacts.

Output Formats

Every command supports --format table (default) or --format json:

# Human-readable table (default)
aircall users list

# Machine-readable JSON (great for piping to jq)
aircall users list --format json
aircall users list --format json | jq '.[].email'

Rate Limiting

The CLI automatically handles Aircall API rate limits:

  • Tracks X-AircallAPI-Remaining and X-AircallAPI-Reset headers
  • Proactively pauses when approaching the limit
  • Automatically retries on 429 responses with appropriate backoff
  • Displays a message to stderr when waiting

Configuration

Credentials are stored at ~/.config/aircall-cli/config.json. You can override the API base URL:

aircall auth login --api-id ID --api-token TOKEN --base-url https://api.aircall.io

To clear stored credentials, delete the config file:

rm -rf ~/.config/aircall-cli

Development

git clone https://github.com/bryanryu1/aircall-cli.git
cd aircall-cli
npm install
npm run build

# Run in development mode (uses ts-node, no build needed)
./bin/dev.js --help

# Run production build
./bin/run.js --help

License

MIT