Skip to content

HolliACP/acp-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

nacos cli scripts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages