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

@aqua-cloud/cli

v2.8.0

Published

CLI tool for Aqua Cloud — manage requirements, defects, and test cases from the terminal

Readme

Aqua CLI

A command-line tool for Aqua Cloud — manage requirements, defects, and test cases from your terminal.

Designed for AI coding agents (Claude Code, Cursor, Copilot, Aider, Windsurf) and human developers alike. Any tool that can run shell commands can use Aqua CLI.

Why a CLI?

  • Universal — every AI agent can run bash commands, not all support MCP
  • Zero setupnpx @aqua-cloud/cli works instantly, no config files to edit
  • Composable — pipe to jq, grep, xargs — Unix philosophy
  • Compound operations — one command does what takes 3-4 MCP tool calls
  • Scriptable — use in CI/CD, git hooks, shell scripts

Quick Start

Install

npm install -g @aqua-cloud/cli

# Or run directly without installing
npx @aqua-cloud/cli --help

Configure

# Interactive setup
aqua login

# Or via environment variables
export AQUA_URL=https://your-instance.aqua-cloud.io/aquaWebNG
export AQUA_USER=your-username
export AQUA_PASS=your-password
export AQUA_PROJECT_ID=123

# Or via CLI flags
aqua --url https://... --user admin --pass secret --project 123 list Requirement

Verify

aqua doctor

Configuration

Settings are resolved in priority order (highest wins):

  1. CLI flags--url, --user, --pass, --project
  2. Environment variablesAQUA_URL, AQUA_USER, AQUA_PASS, AQUA_PROJECT_ID
  3. Project file.aqua.env in the current directory (git-ignored)
  4. User config~/.aqua/config.json (created by aqua login)

OAuth tokens are cached to ~/.aqua/token.json to avoid re-authenticating on every invocation.

Commands

Items

aqua list <type>                          # List items (Requirement, Defect, TestCase, TestScenario)
aqua list Requirement --status "Draft"    # Filter by status
aqua list Defect --assigned-to "John"     # Filter by assignee
aqua list Defect --take 10               # Limit results

aqua get <ID>                             # Get item details (e.g., aqua get RQ123)
aqua get <ID> --brief                     # Brief: just title + status

aqua create <type> --title "..." --desc "..."          # Create an item
aqua create Requirement --title "Login" --parent RQ100 # Create sub-item

aqua status <ID> <status-name>            # Update status by name (auto-resolves to ID!)
aqua comment <ID> "message"               # Add a comment
aqua history <ID>                         # View change history
aqua link <ID1> <ID2>                     # Create relationship between items
aqua search "query"                       # Global search

Test Cases

aqua steps <TC-ID>                        # Get test steps
aqua add-steps <TC-ID> --file steps.json  # Add steps from JSON file
aqua add-steps <TC-ID> --stdin            # Add steps from stdin (pipe-friendly)

Projects

aqua projects                             # List all projects
aqua project                              # Show current project
aqua project <ID>                         # Switch to a project
aqua statuses <type>                      # List available statuses for a type

Compound Commands

These combine multiple API calls into single operations — the real value-add for AI agents.

# Full context dump: details + children + test cases + steps + history
aqua context <ID>

# Find an unassigned item and claim it
aqua pick <type> [--status "Ready"]

# Mark done + optional comment in one shot
aqua done <ID> -c "Implemented and all tests pass"

# Bulk create test cases with steps from a JSON file
aqua gen-tests <RQ-ID> --file tests.json

# Project dashboard with counts by status
aqua dashboard [--type Defect]

# Update multiple items to the same status at once
aqua bulk-status Done RQ123 RQ124 RQ125

Exchange (ReqIF / DOORS)

aqua export-reqif RQ123                   # Export a single item
aqua export-reqif RQ1,RQ2,RQ3            # Export specific items
aqua export-reqif --folder 42             # Export from specific folder
aqua export-reqif --all                   # Export all requirements
aqua export-reqif --all -o out.reqif      # Custom output path
aqua export-reqif --all --type Defect     # Export defects instead

aqua import-reqif doors-export.reqif      # Import items from ReqIF
aqua import-reqif export.reqif --preview  # Dry run — show parsed items
aqua import-reqif export.reqif --folder 42   # Import into specific folder
aqua import-reqif export.reqif --parent RQ100  # Create as sub-items
aqua import-reqif export.reqif --type Defect   # Import as defects

Export requires a scope — pass IDs (positional or --id), --folder, or --all. Import always needs a file path.

Utilities

aqua login                                # Interactive credential setup
aqua doctor                               # Check config and API connectivity
aqua cheatsheet                           # Concise reference card (great for AI agent context)

Output Formats

| Format | Flag | Description | |--------|------|-------------| | json | --format json or --json | Full JSON (default when piped) | | table | --format table | ASCII table (default in terminal) | | compact | --format compact | One line per item | | ids | --format ids | Just IDs, one per line (for piping) |

Output format is auto-detected: table when running in a terminal, json when output is piped to another command. Override with --format or --json.

Verbosity

aqua get RQ123                    # Standard detail
aqua get RQ123 --brief            # Title + status + ID only
aqua get RQ123 -v                 # All fields, relations, full text

Smart Features

Status by name

No need to look up numeric status IDs. The CLI resolves names automatically:

aqua status RQ123 Done            # Resolves "Done" → status ID 31586
aqua status RQ123 "In Progress"   # Handles multi-word statuses

Auto type inference

Item type is inferred from the ID prefix — no --type flag needed:

aqua get DF456                    # Knows it's a Defect
aqua get RQ123                    # Knows it's a Requirement
aqua get TC789                    # Knows it's a TestCase

Fuzzy ID parsing

All these work:

aqua get RQ123
aqua get RQ0123
aqua get 123 --type Requirement

Error Handling

Errors are structured JSON with actionable suggestions:

{
  "error": true,
  "code": "STATUS_NOT_FOUND",
  "message": "Status 'Dne' not found for Requirement",
  "suggestion": "Available statuses: Draft (ID: 31582), To Do (ID: 31583), ...",
  "command_hint": "aqua statuses Requirement"
}

Exit codes: 0 success, 1 user error, 2 auth error, 3 API error.

For AI Agents

Feed the cheatsheet to your AI agent at the start of a session:

aqua cheatsheet

This prints a concise reference of all commands with examples — enough context for any agent to work with Aqua Cloud effectively.

Install the skill into your coding agent

This package ships a ready-made rules/skill bundle that teaches your AI coding agent how to drive the Aqua CLI — commands, examples, and multi-step workflows. Install it for your agent of choice:

aqua install-skill            # Claude Code (default)
aqua install-skill cursor     # Cursor
aqua install-skill agents     # AGENTS.md — Codex, opencode, Amp, Jules, Pi, Devin, …
aqua install-skill --list     # show every supported agent and its target path

Supported agents: claude, cursor, windsurf, cline, roo, continue, trae, kiro, augment, junie, antigravity, copilot, gemini, goose, zed, agents (with aliases codex, opencode, amp, jules, pi, devin).

Scope. By default the skill installs to the agent's user-level location so it applies across all your projects. Use --local to write it into the current repository instead (so it can be committed and shared with your team), or --global to force the user-level location:

aqua install-skill gemini             # ~/.gemini/GEMINI.md (global, default)
aqua install-skill gemini --local     # ./GEMINI.md (this project, committable)
aqua install-skill cursor             # ./.cursor/rules/aqua-cloud.mdc (no global location, so project-local)

A few agents have no user-level file (Cursor, Windsurf, Trae, Copilot) and the agents group reads a different global file per tool, so those install project-local. Shared instruction files (AGENTS.md, GEMINI.md, .goosehints, Zed's rules) are updated in place between managed markers — your existing content is never overwritten. The agent picks the skill up on its next session.

Example: pipe-friendly workflows

# Get all requirement IDs in Draft status
aqua list Requirement --status Draft --format ids

# Bulk update items piped from another command
aqua list Defect --status "Open" --format ids | xargs aqua bulk-status "In Progress"

# Get item details as JSON for further processing
aqua get RQ123 --json | jq '.Name'

gen-tests JSON Format

The gen-tests command expects a JSON file with this structure:

[
  {
    "title": "Login with valid credentials",
    "description": "Verify successful login flow",
    "steps": [
      {
        "name": "Enter credentials",
        "instructions": "Type username and password",
        "expectedResult": "Fields accept input"
      },
      {
        "name": "Click login",
        "instructions": "Click the login button",
        "expectedResult": "User is redirected to dashboard"
      }
    ]
  }
]

Requirements

  • Node.js >= 20.6.0
  • An aqua Cloud instance and a valid aqua subscription

Support

  • Email: [email protected]
  • Documentation: https://docs.aqua-cloud.io
  • Website: https://aqua-cloud.io

License

Proprietary software. © 2026 aqua cloud GmbH. All rights reserved.

This package is licensed, not sold. Use is permitted only by customers with a valid aqua subscription and is governed by the LICENSE file and aqua's Terms & Conditions. Redistribution, modification, and reverse engineering are not permitted except as expressly allowed by that agreement.