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

@seguelac/aca-cli

v0.2.0

Published

Command-line interface for ACA (Automated Client Acquisition) — push leads to campaigns, triage replies, manage contacts, all from your terminal.

Downloads

65

Readme

aca-cli

Command-line interface for ACA (Automated Client Acquisition) — push leads into campaigns, triage replies, manage contacts, and run autopilot, all from your terminal.

Install

npm install -g @seguelac/aca-cli

Requires Node.js 18 or later.

Quick start

# 1. Generate a token at app.aca.io → Settings → CLI Tokens
#    (Required for Google sign-in users; recommended for everyone.)
aca login --token aca_<paste-token-here>

# 2. Use it
aca leads search --tag warm --has-email
aca enroll -c <campaignId> --contacts <id1,id2>
aca inbox unread --channel linkedin

Legacy email/password login is still supported for accounts that have a password set:

aca login              # prompts for email + password
aca login -e [email protected] -p <password>

If your account uses Google sign-in, email/password login won't work — generate a token instead.

Pass --json to any command for pipe-friendly output:

aca campaign leads <campaignId> --stuck --json | jq '.[] | .contact_id'

Commands

Auth

| Command | What it does | |---|---| | aca login --token <value> | Recommended. Save an API token from app.aca.io. Works for any account (Google, SSO, password). Token is long-lived; revoke at any time in the app. | | aca login | Email + password login (legacy). Auto-refreshing JWT. Doesn't work for Google sign-in users. | | aca logout | Clears the cached session. | | aca whoami | Shows the active auth method (token vs JWT). |

Organization

| Command | What it does | |---|---| | aca org ls | Lists all organizations you belong to. | | aca org switch <id> | Sets the active org for subsequent commands. | | aca org current | Shows the active org. |

Leads → campaign

| Command | What it does | |---|---| | aca leads search [filters] | Search contacts. Filters: --query, --tag, --status, --company, --has-email, --has-linkedin. | | aca leads get <contactId> | Full contact record. | | aca lists ls | List your lead lists. | | aca lists create -n "Name" | Create a new list. | | aca lists add -l <listId> --contacts <ids> | Bulk-add contacts to a list. | | aca lists members -l <listId> | List members of a list. | | aca lists remove -l <listId> --contacts <ids> | Remove contacts from a list. | | aca enroll -c <campaignId> -l <listId> | Enroll an entire list into a campaign. | | aca enroll -c <campaignId> --contacts <ids> | Enroll specific contacts. |

Inbox & replies

| Command | What it does | |---|---| | aca inbox unread | List unread conversations across all channels. --channel linkedin\|email\|... to filter. | | aca inbox show <id> | Show a conversation and its recent messages. | | aca inbox list | List all conversations. Filters: --channel, --status, --intent. | | aca reply <id> -m "..." | Reply to a conversation. Also accepts piped stdin. |

Campaigns

| Command | What it does | |---|---| | aca campaign ls | List sequences. | | aca campaign status <id> | Aggregate progress counts (pending, replied, failed, etc.). | | aca campaign leads <id> --stuck | List stuck leads (status: failed or sender_disconnected). |

Contacts

| Command | What it does | |---|---| | aca contact get <id> | Full record. | | aca contact tag <id> --add tag1,tag2 --remove tag3 | Add/remove tags. | | aca contact set-status <id> -s do_not_contact | Update status. |

Autopilot

| Command | What it does | |---|---| | aca autopilot ls | List autopilot configurations. | | aca autopilot trigger <conversationId> | Queue an AI draft. | | aca autopilot pause <conversationId> --hours 48 | Pause AI on a conversation. | | aca autopilot resume <conversationId> | Re-enable AI. |

Config & completion

| Command | What it does | |---|---| | aca config show | Display current config. | | aca config set <key> <value> | Set a value. Keys: active_org_id, update_check_enabled. | | aca config unset <key> | Remove a value. | | aca completion zsh \| bash \| fish | Print shell completion script. |

To install completions in zsh:

aca completion zsh > "${fpath[1]}/_aca"

In bash:

aca completion bash > /usr/local/etc/bash_completion.d/aca

In fish:

aca completion fish > ~/.config/fish/completions/aca.fish

Configuration

The CLI stores files under ~/.aca/:

  • session.json — cached auth token (0600 permissions)
  • config.json — local preferences (active org, update-check setting)
  • update-check.json — timestamp + cached latest version

To disable the daily update check:

aca config set update_check_enabled false

Environment variables

| Variable | Purpose | |---|---| | ACA_TOKEN | Skip --token flag. CLI uses this for auth on every command. Useful for CI. | | ACA_EMAIL | Skip the email prompt during legacy aca login | | ACA_PASSWORD | Skip the password prompt during legacy aca login (use with care in shared shells) |

Development

git clone https://github.com/seguelaCedric/aca-cli
cd aca-cli
npm install
npm run dev    # tsc --watch
npm test       # vitest
npm run build  # tsc once

Local dev binary:

node dist/index.js <command>

Release

Bump version in package.json + CHANGELOG.md, commit, tag, push:

npm version patch  # or minor / major
git push --follow-tags

The Release GitHub Actions workflow runs tests and publishes to npm on tags matching v*.*.*. Requires NPM_TOKEN secret in the repo settings.

License

MIT — see LICENSE.