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/skills

v0.25.2

Published

Claude Code skills for Ano — use the ano CLI, parse Send-to-Shell payloads, and auto-sync work to channels (bundled MCP + Stop hook)

Readme

Ano Skills

Claude Code skills for Ano.

Ano is team chat with Claude Code and agents built in. These skills teach Claude Code how to work with Ano: use the ano CLI, read workspace context, send messages, and understand payloads sent from the Ano desktop app.

Install

claude plugin install @ano-chat/skills

Ano Sync — keep a channel current as you work (automatic)

ano-sync turns a teammate's Ano channel into a live "control tower" for your work. The plugin bundles everything, so it's one install + a one-time allow-list — no manual MCP config, no manual hooks:

  • the ano MCP server (ano_send_sync_event + ano_get_channel_context),
  • a SessionStart hook that auto-reads the channel's state at task start,
  • a Stop hook that, when a turn changed files, has the agent post one rich Sync Event before it stops,
  • the ano-sync skill (behavior + anti-spam).

It is opt-in per repo and silent everywhere else.

One-time: allow the tools (so there's never an "Allow?" prompt)

Plugins can't grant tool permissions (by design), so add this once to ~/.claude/settings.json (merge into any existing permissions):

{
  "permissions": {
    "allow": [
      "mcp__ano__ano_send_sync_event",
      "mcp__ano__ano_get_channel_context"
    ]
  }
}

Per repo: turn it on

Add to the repo's CLAUDE.md (this is the on switch — remove it to turn off):

## Ano Sync

- channel: #ano-sync-demo <!-- a name is fine — the agent resolves it to the id -->

(or set ANO_SYNC_CHANNEL to a name or id in your env.) Then just work: the agent auto-reads the channel at task start and auto-posts a Sync Event when a turn changed files — no prompting, no accept clicks. Works wherever Claude Code runs (iTerm2, Cursor's terminal, …).

On / off

  • Per repo: add/remove the ## Ano Sync block (or ANO_SYNC_CHANNEL).
  • Globally: claude plugin disable ano-skills / claude plugin enable ano-skills.

The bundled ano MCP points at production by default (api-us.ano.dev). To target another environment (e.g. staging for dogfooding), set ANO_MCP_URL before launching Claude Code: export ANO_MCP_URL=https://api-staging.ano.dev/mcp.

What Is Included

Nine focused, self-contained skills. Each loads only when its trigger phrases match — so a "send a message" prompt no longer pulls the full CLI surface into context.

| Skill | Domain | | ------------------- | -------------------------------------------------------------------------------------- | | ano-core | Foundational rules — auth, output modes, exit codes, rate limits, triggered-auth flow. | | ano-messages | Send/read/reply/search messages, DMs, group DMs, file attachments, screenshots. | | ano-channels | List/admin channels + workspaces + members, send invites. | | ano-coworkers | Create / update / test AI teammates (managed or external-webhook). | | ano-notifications | DND quiet hours, notification level, email/desktop/mobile push toggles. | | ano-tables | List/query/write Ano tables (structured rows / lists / databases). | | ano-automations | Build-Before-Talk methodology, 5 trigger types, 5 action tools, third-party OAuth. | | ano-realtime | ano connect SSE bridge, OpenClaw agent forwarding, install-as-service. | | ano-payloads | Parse <ano_payload> XML blocks from the Ano desktop's Send-to-Shell gesture. |

Trigger ownership rules (for future skill edits)

  • Verb-led triggers (send/read/search/post/reply/dm/share) → ano-messages
  • Object-led naming channels/workspaces/members/invites → ano-channels
  • Object-led naming coworkers/teammates → ano-coworkers
  • Object-led naming dnd/notification/push/email → ano-notifications
  • Object-led naming tables/rows → ano-tables
  • Object-led naming automations/triggers/jobs/webhooks/integrations → ano-automations
  • Object-led naming bridge/stream/connect → ano-realtime
  • Foundational (use ano / ano version / authenticate / smoke / doctor) → ano-core

Resolve overlap on the more-specific term. "Send a webhook" → ano-automations (webhook = automation noun), not ano-messages.

Adding a new trigger — decision flowchart

Use this when the CLI ships a new command (or a new phrasing surfaces) and you need to decide which skill owns it.

Is the phrase verb-led ("send X", "read Y", "search Z")?
└── yes → does the object name a noun OTHER skills own?
          ├── yes → owner skill (e.g. "send a webhook" → ano-automations)
          └── no  → ano-messages

Is the phrase object-led? Match the noun family:
├── channels / workspaces / members / invites    → ano-channels
├── coworkers / teammates / AI teammate          → ano-coworkers
├── dnd / quiet hours / notification / push / email  → ano-notifications
├── tables / rows / records / items              → ano-tables
├── automations / triggers / jobs / webhooks /
│   schedules / integrations / OAuth services    → ano-automations
├── bridge / stream / SSE / openclaw / connect   → ano-realtime
└── payloads / <ano_payload> blocks              → ano-payloads

Is the phrase foundational (auth / config / diagnostics / CLI itself)?
└── ano-core

Still ambiguous?
└── Prefer the more-specific term. If two skills could legitimately
    own it, the one whose name appears as the LATER noun in the
    phrase usually wins (e.g. "list channels" → channels, not core).

Verify after adding:

# 1. Total triggers across all skills, with duplicates flagged:
python3 -c "
import re, glob
all_t = []
for f in glob.glob('skills/*/SKILL.md'):
    with open(f) as fh:
        m = re.search(r'^triggers:\n((?:  -.*\n)+)', fh.read(), re.M)
        if m: all_t += [l.strip()[2:] for l in m.group(1).splitlines()]
dupes = [t for t in set(all_t) if all_t.count(t) > 1]
print(f'total: {len(all_t)}  unique: {len(set(all_t))}  duplicates: {dupes or \"none\"}')
"

# 2. Confirm no skill grew over 500 lines:
wc -l skills/*/SKILL.md | sort -n | tail

Use It

Install the Ano CLI. Two paths — pick whichever fits your setup:

# Native binary (recommended — ~20ms cold start, no Node required)
curl -fsSL https://raw.githubusercontent.com/ano-chat/ano-cli/main/scripts/install.sh | bash

# npm (works everywhere Node 20+ runs, including Windows)
npm install -g @ano-chat/cli

Sign in:

ano auth login

Then ask Claude Code to work with Ano, for example:

Read the latest messages in #general.
Send a DM to Jane.
Read your DM with Jane.
Search Ano for the staging error thread.

Links