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

@banananasplitz/cli

v0.3.0

Published

Agent-first CLI for Banana Split expense tracking API

Readme

@banananasplitz/cli

Agent-first CLI for the Banana Split expense tracking API. Designed for AI agents (OpenCode, Claude Code, Cursor, etc.) to interact with Banana Split data by shelling out and parsing JSON output.

Install

# Run directly with npx (no install needed)
npx @banananasplitz/cli help

# Or install globally
npm install -g @banananasplitz/cli
banana help

Authentication

Get an API key from the Banana Split Telegram bot, then configure it:

# Option 1: Save to config file (~/.bananasplit.json)
banana login --api-key <your-key>

# Option 2: Environment variable
export BANANA_SPLIT_API_KEY=<your-key>

# Option 3: Pass directly
banana get-chat --api-key <your-key>

Resolution order: --api-key flag > BANANA_SPLIT_API_KEY env > ~/.bananasplit.json

Usage

All output is JSON to stdout. Errors are JSON to stderr with exit code 1.

# List chats
banana list-chats

# Get chat details (auto-scoped with chat-scoped API keys)
banana get-chat

# Get debts
banana get-debts --currency SGD

# Get simplified debts
banana get-simplified-debts --currency SGD

# List expenses
banana list-expenses
banana list-expenses --currency USD

# Get expense details
banana get-expense --expense-id <uuid>

# Create an expense (split equally)
banana create-expense \
  --description "Dinner" \
  --amount 120 \
  --payer-id 123456 \
  --split-mode EQUAL \
  --participant-ids 123456,789012,345678

# Get balance between two users
banana get-net-share --main-user-id 123 --target-user-id 456 --currency SGD

# Get totals for a user
banana get-totals --user-id 123456

# List/create settlements
banana list-settlements
banana create-settlement --sender-id 123 --receiver-id 456 --amount 50 --currency SGD

# Snapshots
banana list-snapshots
banana get-snapshot --snapshot-id <uuid>

# Exchange rates
banana get-exchange-rate --base-currency USD --target-currency SGD

# Update chat settings
banana update-chat-settings --debt-simplification true --base-currency SGD

Commands

| Command | Description | | ---------------------- | -------------------------------------- | | help | Show available commands and options | | login | Save API key to config file | | install-skill | Print path to bundled Agent Skill | | list-chats | List all expense-tracking chats/groups | | get-chat | Get chat details and members | | get-debts | Get outstanding debts | | get-simplified-debts | Get optimized debt graph | | update-chat-settings | Update chat configuration | | list-expenses | List expenses in a chat | | get-expense | Get expense details | | create-expense | Create a new expense | | get-net-share | Get balance between two users | | get-totals | Get total borrowed/lent for a user | | list-settlements | List debt settlements | | create-settlement | Record a payment | | list-snapshots | List expense snapshots | | get-snapshot | Get snapshot details | | get-exchange-rate | Get currency exchange rate |

For AI Agents

This CLI is designed for programmatic use. Every command outputs structured JSON:

# Success: JSON to stdout, exit code 0
banana get-exchange-rate --base-currency USD --target-currency SGD
# {"rate":1.27255022,"base":"USD","target":"SGD"}

# Error: JSON to stderr, exit code 1
banana get-chat
# {"error":"auth_error","message":"No API key found..."}

Run banana help to get a machine-readable JSON schema of all commands and their options.

Agent Skill

This package includes an Agent Skills spec-compliant skill file that teaches AI agents how to use the CLI.

Discover the skill path

banana install-skill
# Returns: {"skill_path": "/path/to/skills/banana-cli", ...}

Install for your agent

Copy the skill directory to your agent's skills location:

# OpenCode
cp -r "$(banana install-skill | jq -r .skill_path)" .agents/skills/banana-cli

# Claude Code
cp -r "$(banana install-skill | jq -r .skill_path)" ~/.claude/skills/banana-cli

# Cursor
cp -r "$(banana install-skill | jq -r .skill_path)" .cursor/skills/banana-cli

License

MIT