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

@ano-chat/cli

v2.31.1

Published

CLI for Ano — team communication for humans and agents

Readme

Ano CLI

The official command-line interface for Ano: team chat for humans, Claude Code, Codex, and other agents.

Use ano to read workspace context, send messages, search conversations, work with tables, and stream live events from a terminal.

Why This CLI Exists

Ano's product loop is terminal + CLI + app. A person or an agent should be able to move through team context without opening a browser or waiting on repeated network round trips.

The CLI is built for that loop:

  • Structured output for agents: --agent and --json.
  • A warm background daemon for fast repeated commands.
  • A local Zero replica for common reads when the daemon is running.
  • Plain commands for humans, scripts, and CI.

Install

Native Binary

Recommended for macOS and Linux.

curl -fsSL https://raw.githubusercontent.com/ano-chat/ano-cli/main/scripts/install.sh | bash

This installs ano to ~/.local/bin. The native binary has no Node runtime requirement and keeps cold-start overhead low for shell and agent workflows.

Pin a version or change the install directory:

curl -fsSL https://raw.githubusercontent.com/ano-chat/ano-cli/main/scripts/install.sh | bash -s -- --version v2.28.0
curl -fsSL https://raw.githubusercontent.com/ano-chat/ano-cli/main/scripts/install.sh | ANO_INSTALL_DIR=/usr/local/bin bash

npm

Use npm when you want the standard Node package install path or need Windows support.

npm install -g @ano-chat/cli

Requires Node.js 20 or newer.

Sign In

Interactive login:

ano auth login

API-key login for scripts and agents:

ano auth login --key ano_cwk_your_api_key

Check the active profile:

ano auth status --json

Common Commands

# Discovery
ano workspaces list
ano channels list
ano users list

# Messages
ano messages read --channel <channel-id>
ano messages search "staging error"
ano messages send "Deploy is live" --channel <channel-id>

# Direct messages
ano dm list
ano dm read "Jane"
ano dm send "Can you review this?" --to "Jane"

# Tables
ano tables list
ano tables get <table-id>
ano tables query <table-id>

# Diagnostics
ano doctor
ano daemon status --json

Channel names are not globally unique. In multi-workspace or production scripts, prefer IDs and pass -w <workspace-id>.

Output for Agents

For agent integrations, prefer the persistent stdio protocol:

ano agent stdio

The process reads newline-delimited JSON requests from stdin and writes one JSON response per line to stdout. Agent integrations can spawn it automatically after auth; the end user does not need to interact with it.

The first stdio exec should fetch startup context:

{
  "id": 1,
  "v": 1,
  "method": "exec",
  "argv": ["agent", "context", "-w", "<workspace-id>", "--json"]
}

Then cache the returned workspace, channel, user, and table IDs for the session. Every stdio exec command must include --agent, --json, or --quiet.

For one-shot fallback, every command supports machine-readable output:

ano channels list --agent
ano messages read --channel <channel-id> --json

Use:

  • --agent for raw JSON objects with no display chrome.
  • --json for an envelope with ok, data, breadcrumbs, and meta.
  • --md for GitHub-flavored Markdown tables.

Do not list channels or users just to read or send by name. Use messages send --channel-name <name> -w <workspace-id> --agent or dm read "Name" --agent / dm send --to "Name" --agent.

See Agent Performance for the protocol shape and integration guidance.

Daemon and Local Replica

Most commands go through a per-user daemon when available. The daemon keeps the command tree, HTTP connection pool, and a small Zero-backed SQLite replica warm. That makes common reads feel close to process-startup cost instead of paying a full network round trip each time.

Useful controls:

ano daemon status --json
ano daemon start
ano daemon stop

Opt out for one command:

ANO_NO_DAEMON=1 ano channels list --json

Development

npm install
npm run typecheck
npm test
npm run build
npm run surface:check

Update the command-surface snapshot after adding commands or flags:

npm run surface:update

Read CONTRIBUTING.md before opening a PR.

Packages

Security

Please report vulnerabilities privately. See SECURITY.md.