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

@holliacp/acp-cli

v1.0.6

Published

A command-line tool for managing Nacos configurations and AI skills

Downloads

168

Readme

ACP CLI

A powerful command-line tool for managing Nacos configuration center and AI skills, written in Go.

Features

  • 🚀 Fast and lightweight - single binary with no dependencies
  • 💻 Interactive terminal mode with auto-completion
  • 🎯 Skill management - full lifecycle: upload → review → release, plus get/list/describe
  • 🤖 AgentSpec management - full lifecycle: upload → review → release, plus get/list/describe
  • 📝 Configuration management - list, get and set configurations
  • 🌐 Namespace support for multi-environment management
  • 📦 Batch operations - upload all skills and agent specs at once
  • 🧾 Structured output - --output json on list/describe for scripting

Installation

npm / npx

Use npx to run directly without installation:

npx @holliacp/acp-cli --help
npx @holliacp/acp-cli skill-list --host 127.0.0.1 --port 8848 -u nacos -p nacos

Or install globally via npm:

npm install -g @holliacp/acp-cli
acp-cli --help

Download Binary

Download the latest release from GitHub Releases.

Build from Source

# Clone the repository
git clone https://github.com/holliacp/acp-cli.git
cd acp-cli

# Build
go build -o acp-cli

# Or use make
make build

Quick Start

CLI Mode

Run commands directly:

# List all skills
acp-cli skill-list -s 127.0.0.1:8848 -u nacos -p nacos

# Get a skill
acp-cli skill-get skill-creator -s 127.0.0.1:8848 -u nacos -p nacos

# Upload a skill
acp-cli skill-upload /path/to/skill -s 127.0.0.1:8848 -u nacos -p nacos

Interactive Terminal Mode

Start an interactive session:

acp-cli -s 127.0.0.1:8848 -u nacos -p nacos

Once in terminal mode, you can run commands interactively:

acp> skill-list
acp> skill-get skill-creator
acp> config-list
acp> help

Commands

AgentSpec Management

Agent specs follow a three-stage lifecycle aligned with the server: upload (editing) → review (reviewing → reviewed) → release (online).

List AgentSpecs

# CLI mode (pretty output by default)
acp-cli agentspec-list -s 127.0.0.1:8848 -u nacos -p nacos

# With filters
acp-cli agentspec-list --name my-agentspec --page 1 --size 20

# Machine-readable output for scripts
acp-cli agentspec-list --output json

# Terminal mode
acp> agentspec-list
acp> agentspec-list --name my-agentspec --page 2
acp> agentspec-list --output json

Describe AgentSpec

Show detail + version history (latest / editing / reviewing / online, plus per-version status):

acp-cli agentspec-describe my-agentspec
acp-cli agentspec-describe my-agentspec --output json

# Terminal mode
acp> agentspec-describe my-agentspec

Get/Download AgentSpec

Download an agent spec to local directory (default: ~/.agentspecs):

# CLI mode
acp-cli agentspec-get my-agentspec -s 127.0.0.1:8848 -u nacos -p nacos
acp-cli agentspec-get my-agentspec -o /custom/path

# Download specific version
acp-cli agentspec-get my-agentspec --version v1

# Download by route label
acp-cli agentspec-get my-agentspec --label latest

# Download multiple agent specs
acp-cli agentspec-get spec1 spec2 spec3

# Terminal mode
acp> agentspec-get my-agentspec

Upload AgentSpec

Upload an agent spec from local directory (creates or updates the editing version):

# Upload single agent spec
acp-cli agentspec-upload /path/to/agentspec -s 127.0.0.1:8848 -u nacos -p nacos

# Upload all agent specs in a directory
acp-cli agentspec-upload --all /path/to/agentspecs/folder

# Terminal mode
acp> agentspec-upload /path/to/agentspec
acp> agentspec-upload --all /path/to/agentspecs

Review AgentSpec

Submit the current editing version for review (editing → reviewing). The server-side review pipeline is asynchronous and eventually marks the version as reviewed.

acp-cli agentspec-review my-agentspec

# Terminal mode
acp> agentspec-review my-agentspec

Release AgentSpec

Publish an approved (reviewed) version online:

acp-cli agentspec-release my-agentspec --version 0.0.2
acp-cli agentspec-release my-agentspec --version 0.0.2 --update-latest=false

# Terminal mode
acp> agentspec-release my-agentspec --version 0.0.2

Note: if agentspec-release fails with HTTP 400 parameter validate error right after agentspec-review, the async review pipeline probably hasn't marked the version as reviewed yet. The CLI will print a hint telling you to wait a few seconds and re-check status via agentspec-describe. Retry when STATUS=reviewed.

Publish AgentSpec (deprecated)

agentspec-publish is kept as a backward-compatible shortcut that runs upload + review in sequence. It prints a deprecation warning and will be removed in a future release — prefer the explicit lifecycle commands above.

# Legacy shortcut (deprecated)
acp-cli agentspec-publish /path/to/agentspec
acp-cli agentspec-publish --all /path/to/agentspecs/folder

Skill Management

Skills follow the same three-stage lifecycle as agent specs: upload (editing) → review (reviewing → reviewed) → release (online).

List Skills

# CLI mode (pretty output by default)
acp-cli skill-list -s 127.0.0.1:8848 -u nacos -p nacos

# With filters
acp-cli skill-list --name skill-creator --page 1 --size 20

# Machine-readable output for scripts
acp-cli skill-list --output json

# Terminal mode
acp> skill-list
acp> skill-list --name skill-creator --page 2
acp> skill-list --output json

Describe Skill

acp-cli skill-describe skill-creator
acp-cli skill-describe skill-creator --output json

# Terminal mode
acp> skill-describe skill-creator

Get/Download Skill

Download a skill to local directory (default: ~/.skills):

# CLI mode
acp-cli skill-get skill-creator -s 127.0.0.1:8848 -u nacos -p nacos
acp-cli skill-get skill-creator -o /custom/path

# Terminal mode
acp> skill-get skill-creator

Upload Skill

Upload a skill from local directory (creates or updates the editing version):

# Upload single skill
acp-cli skill-upload /path/to/skill -s 127.0.0.1:8848 -u nacos -p nacos

# Upload all skills in a directory
acp-cli skill-upload --all /path/to/skills/folder

# Terminal mode
acp> skill-upload /path/to/skill
acp> skill-upload --all /path/to/skills

Review Skill

Submit the current editing version for review (editing → reviewing):

acp-cli skill-review skill-creator

# Terminal mode
acp> skill-review skill-creator

Release Skill

Publish an approved (reviewed) version online:

acp-cli skill-release skill-creator --version 0.0.2
acp-cli skill-release skill-creator --version 0.0.2 --update-latest=false

# Terminal mode
acp> skill-release skill-creator --version 0.0.2

Same async-pipeline note as agentspec-release: if skill-release returns HTTP 400 parameter validate error just after skill-review, wait and retry when skill-describe shows the version as reviewed.

Publish Skill (deprecated)

skill-publish is kept as a backward-compatible shortcut that runs upload + review in sequence. Prefer the explicit lifecycle commands.

# Legacy shortcut (deprecated)
acp-cli skill-publish /path/to/skill
acp-cli skill-publish --all /path/to/skills/folder

Configuration Management

List Configurations

# CLI mode
acp-cli config-list -s 127.0.0.1:8848 -u nacos -p nacos

# With filters
acp-cli config-list --data-id myconfig --group DEFAULT_GROUP

# With pagination
acp-cli config-list --page 1 --size 20

# Terminal mode
acp> config-list
acp> config-list --data-id myconfig --page 2

Get Configuration

# CLI mode
acp-cli config-get myconfig DEFAULT_GROUP -s 127.0.0.1:8848 -u nacos -p nacos

# Terminal mode
acp> config-get myconfig DEFAULT_GROUP

Terminal Commands

When in interactive terminal mode:

acp> help           # Show all available commands
acp> server         # Show server information
acp> ns             # Show current namespace
acp> ns production  # Switch to production namespace
acp> clear          # Clear screen
acp> quit           # Exit terminal

Global Flags

| Flag | Short | Default | Description | |------|-------|---------|-------------| | --host | | acp-store.hollicube.com when --host and --port are both omitted; otherwise 127.0.0.1 when only --port is provided | Nacos server host | | --port | | 8848 when omitted after --host; 80 is used by the generated default profile | Nacos server port | | --server | -s | acp-store.hollicube.com:80 when no host/port/profile config is provided | Nacos server address (deprecated, use --host and --port) | | --username | -u | | Nacos username | | --password | -p | | Nacos password | | --namespace | -n | (empty/public) | Nacos namespace ID | | --config | -c | | Path to configuration file | | --profile | | default | Profile name (~/.acp-cli/<profile>.conf) | | --auth-type | | inferred from credentials or none | Auth type: nacos, aliyun, or sts-hiclaw | | --access-key | | | AccessKey for aliyun/sts-hiclaw auth | | --secret-key | | | SecretKey for aliyun/sts-hiclaw auth | | --security-token | | | STS SecurityToken for sts-hiclaw auth | | --verbose | | false | Enable verbose/debug output | | --help | -h | | Show help information |

Profile Configuration

Use profile edit to create or update a profile configuration:

# Create or update the default profile
acp-cli profile edit

# Create or update a named profile
acp-cli profile edit dev

# Use the profile
acp-cli --profile dev skill-list

Profile files are stored under ~/.acp-cli/<profile>.conf. They are YAML files managed by the CLI, and sensitive fields are encrypted before they are saved.

Example generated profile:

host: 127.0.0.1
port: 8848
authType: nacos
username: ENC[v1:aes-256-gcm:...]
password: ENC[v1:aes-256-gcm:...]
namespace: ""

Sensitive fields (username, password, accessKey, secretKey, and securityToken) are encrypted with AES-256-GCM before being saved by the CLI. The local encryption key is stored at ~/.acp-cli/key with 0600 permissions. Existing plaintext config files remain readable for backward compatibility; the next profile load or profile edit rewrites sensitive fields in encrypted form.

Configuration Priority

Configuration values are applied in the following priority order:

  1. Command line arguments (highest priority)
  2. Configuration file
  3. Environment variables
  4. Default values (lowest priority)

Supported environment variables:

export HOLLIACP_HOST=127.0.0.1
export HOLLIACP_PORT=8848
export HOLLIACP_NAMESPACE=xxx

For example:

  • acp-cli --config ./local.conf --host 10.0.0.1 - Uses 10.0.0.1 from command line, other values from config file
  • HOLLIACP_HOST=127.0.0.1 HOLLIACP_PORT=8848 HOLLIACP_NAMESPACE=xxx acp-cli skill-list - Uses environment variables when command line and config file values are not provided
  • acp-cli - Uses default acp-store.hollicube.com:80 when neither --host nor --port is provided
  • acp-cli --host 127.0.0.1 - Uses 127.0.0.1:8848 because --host was provided without --port
  • acp-cli --port 8849 - Uses 127.0.0.1:8849 because only --port was provided
  • acp-cli --config ./local.conf - Uses all values from config file

Project Structure

acp-cli/
├── cmd/                       # CLI commands
│   ├── root.go                # Root command / global flags
│   ├── list_skill.go          # skill-list
│   ├── describe_skill.go      # skill-describe
│   ├── get_skill.go           # skill-get
│   ├── upload_skill.go        # skill-upload
│   ├── review_skill.go        # skill-review
│   ├── release_skill.go       # skill-release
│   ├── publish_skill.go       # skill-publish (deprecated wrapper)
│   ├── list_agentspec.go      # agentspec-list
│   ├── describe_agentspec.go  # agentspec-describe
│   ├── get_agentspec.go       # agentspec-get
│   ├── upload_agentspec.go    # agentspec-upload
│   ├── review_agentspec.go    # agentspec-review
│   ├── release_agentspec.go   # agentspec-release
│   ├── publish_agentspec.go   # agentspec-publish (deprecated wrapper)
│   ├── list_config.go         # config-list
│   ├── get_config.go          # config-get
│   ├── set_config.go          # config-set
│   ├── profile.go             # profile / config file handling
│   └── interactive.go         # Interactive terminal entry
├── internal/
│   ├── client/                # Nacos client
│   ├── skill/                 # Skill service
│   ├── agentspec/             # AgentSpec service
│   ├── config/                # Profile config and credential encryption
│   ├── listener/              # Config listener
│   ├── terminal/              # Interactive terminal implementation
│   ├── help/                  # Help system
│   └── util/                  # Path and output helpers
├── main.go
├── go.mod
└── README.md

License

MIT License