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

@augustdigital/cli

v4.11.3

Published

CLI powering the August Digital ecosystem.

Downloads

362

Readme

@augustdigital/cli

The august command — a read-only CLI over the August Digital SDK. Inspect vault APY, TVL, positions, redemptions, and user points across EVM, Solana, and Stellar without writing TypeScript.

Read-only by design. There are no signing or write commands.

Install

npm install -g @augustdigital/cli

Or run without installing:

npx -y @augustdigital/cli --help

Quickstart

august init                              # one-time setup
august whoami                            # confirm config + API key status
august vault apy 0xVault --chain 8453    # current APY (human output)
august vault apy eth-coreusdc            # same call, by name
august vault apy 0xVault --chain 8453 --json | jq .data.currentApy

Config layout

august init writes:

~/.augustdigital/
├── config.json    # default chain, RPCs, profile, telemetry
├── keystore.json  # AES-256-GCM; holds your August API key (optional)
├── .session       # mode 0600; decrypted API key + expiry
└── profiles/      # named overlays for chain + RPC sets

Override the root with AUGUST_CONFIG_DIR=….

Auth

If you stored an API key during init, run august login once per shell to unlock the keystore. Subsequent commands read from .session until it expires (default 1h, set config.auth.sessionTtlSec). august logout clears it.

In CI, either set AUGUST_PASSPHRASE (so login runs non-interactively) or skip the keystore entirely and use AUGUST_API_KEY. Env vars always win over the session.

Global flags

| Flag | Purpose | | --------------------- | ------------------------------------------ | | --json | Stable JSON envelope on stdout. | | --csv | CSV output (tabular commands only). | | --chain <id> | Chain id for this call. | | --rpc <url> | RPC URL override (pair with --chain). | | --profile <name> | Named profile to activate. | | --no-color | Disable ANSI colors. | | --verbose | Diagnostics on stderr. | | --config-dir <path> | Override ~/.augustdigital for this call. |

Commands

| Group | Command | | ----------- | ----------------------------------------------------------------------------------------- | | Setup | init, login, logout, whoami | | Config | config get\|set\|list\|path | | Profiles | profile create\|switch\|list\|delete | | Diagnostics | chain list, rpc test [--chain <id>] | | Vault | vault list\|get\|apy\|tvl\|positions\|loans\|allocations\|redemptions\|history\|summary | | User | user points\|positions\|pnl --vault <addr-or-name> | | Skill | skill install\|path |

Run august <command> --help for per-command flags and examples.

Vault names

Every command that takes <vault> (and user pnl --vault …) accepts either a raw address or a vault name:

august vault list                           # discover known names per chain
august vault tvl coreusdc                   # bare symbol, chain inferred
august vault tvl eth-coreusdc               # explicit chain prefix
august vault tvl 0xE9B7…32 --chain 1        # raw address (unchanged)

Chain prefixes accepted: eth/mainnet, base, arb/arbitrum, op/optimism, avax/avalanche, bsc/bnb, polygon/matic, hyperevm/hyper, monad, mezo, plasma, ink, flare.

If a bare name matches multiple chains, the CLI returns VAULT_NAME_AMBIGUOUS; either prefix the name or pass --chain. Names come from the upshift metadata endpoint and are cached in-process for 10 minutes — addresses always work without a network call.

Recipes

# Inspect a vault
august vault summary 0xVault --chain 8453
august vault apy 0xVault --chain 8453 --json | jq .data.currentApy

# Wallet's positions across all August vaults
august user positions 0xWallet --json \
  | jq '.data.positions[] | {vault, chainId, shares}'

# Lifetime PnL for a wallet in one vault
august user pnl 0xWallet --vault 0xVault --chain 1

# Diagnose a flaky RPC
august rpc test --json

# Per-call RPC override (no config change)
AUGUST_RPC_8453=https://my-rpc.example/v1 august vault tvl 0xVault --chain 8453

# Environment-specific config
august profile create staging --chain 8453
august profile switch staging
august config set rpcs.8453 https://staging-rpc.example/v1

Claude Code skill

Ships with a Claude Code skill that teaches Claude how to call the CLI and the companion MCP server:

august skill install
# → ~/.claude/skills/august.md

Override the destination with --dest <dir> (or CLAUDE_SKILLS_DIR). Pass --force to overwrite a divergent file.

JSON envelope

Every --json response uses the same envelope as @augustdigital/mcp:

{
  "schemaVersion": 1,
  "command": "vault.apy",
  "ok": true,
  "data": { "address": "0x…", "chainId": 8453, "currentApy": 0.1234 },
  "meta": { "chainId": 8453, "durationMs": 312, "generatedAt": "2026-05-17T…" }
}

On failure: ok: false, error: { code, message, remediation? }. Match on error.code — message text is not part of the contract.

Programmatic use

import { buildProgram } from '@augustdigital/cli';

const program = buildProgram();
await program.parseAsync(['node', 'august', 'whoami', '--json']);

buildProgram() returns the same commander tree the binary uses, so embedders (tests, MCP servers, internal tooling) can drive the CLI without spawning a child process.