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

@aetherwealth/cli

v0.1.36

Published

Official Aether Wealth CLI: manage your trading journal, accounts, alerts, market data, macro calendar, and technical indicators from the command line.

Readme

Aether Wealth CLI

Official command-line client for Aether Wealth. Manage your trading journal, accounts, alerts, market context, and technical indicators from any terminal — the same data your Aether Wealth dashboard and the Aether Wealth MCP server use, driven by the same OAuth-signed account.

The package runs locally with npx, authenticates with browser-based OAuth, and talks to production Aether Wealth by default. It is built for traders who want to script their journal, wire alerts into other tools, or check market context without opening the dashboard.

Journaling, not order routing. trades create and trades close record entries in your Aether Wealth trading journal for analysis and stats — they do not place, modify, or close live orders with any broker. Nothing in this CLI executes trades on a market.

Install

npx -y @aetherwealth/cli --help

Or install it globally:

npm install -g @aetherwealth/cli
aether-wealth --help

Authentication

Run aether-wealth login once. It opens the Aether Wealth OAuth flow in your browser; after you approve access, the CLI stores an access token in the operating-system keychain where available, with a protected 0600 file fallback (AETHER_CLI_CREDENTIALS_FILE forces the file store, useful on headless Linux without a secret service).

aether-wealth login     # sign in with your browser
aether-wealth whoami    # show who you are signed in as
aether-wealth logout    # clear the local credential on this device

No shared API key is configured anywhere — every command runs as you, with your account's permissions.

CI / Non-Interactive Use

Set AETHER_ACCESS_TOKEN to a pre-minted OAuth access token to skip the browser flow entirely. It is read fresh per request and never written to disk or to the config file. Destructive commands (trades delete, accounts delete, alerts delete) still require --yes/-y to run non-interactively.

Where It Points

The CLI talks to production Aether Wealth (https://api.aetherwealth.ai) by default. Point it elsewhere with AETHER_BASE_URL (for example http://localhost:9006 for local development against a running aether-backend).

Environment Variables

| Variable | Purpose | | --- | --- | | AETHER_BASE_URL | Backend base URL. Defaults to https://api.aetherwealth.ai; set http://localhost:9006 for a local aether-backend. Must be https unless the host is loopback. | | AETHER_ACCESS_TOKEN | CI escape hatch: a pre-minted OAuth access token that skips the browser flow. Read fresh per request, never written to disk. | | AETHER_CLI_CREDENTIALS_FILE | Force the 0600 file credential store instead of the OS keychain (headless Linux without a secret service). | | AETHER_DEFAULT_ACCOUNT_ID | Account id used when --account is omitted on trade commands. | | AETHER_DEFAULT_CONVERSATION_ID | Conversation id used when --conversation is omitted on chat commands. |

Commands

Every command supports --json (machine-readable output), --no-color, --debug (print request/response timing to stderr), and -h/--help.

Auth

| Command | Purpose | | --- | --- | | login | Sign in with your browser (OAuth). | | logout | Sign out on this device. | | whoami | Show who you're signed in as. | | auth login\|logout\|status | Same three, grouped under auth. |

Trades

| Command | Purpose | | --- | --- | | trades list | List trades (--account, --status, --pair, --from, --to, --page, --limit). | | trades show <id> | Show one trade in detail. | | trades create | Create a trade (--account, --pair, --direction LONG\|SHORT, --entry-price, --entry-time, plus optional --lot-size, --stop-loss, --take-profit, --notes, --tag, --timeframe, --risk-percent). | | trades update <id> | Update fields (--notes, --tag, --stop-loss, --take-profit, --lot-size, --timeframe, --risk-percent). | | trades close <id> | Close an open trade (--exit-price, --exit-time, --notes, --fees, --swap). | | trades delete <id> | Delete a trade (confirms; --yes to skip in scripts). |

Accounts And Stats

| Command | Purpose | | --- | --- | | accounts list | List trading accounts. | | accounts trades <id> | List trades for an account. | | accounts create | Create an account (--name, --broker, --account-type, --initial-balance, --currency, --notes, --default-risk). | | accounts update <id> | Update account fields (--name, --broker, --notes, --active, …). | | accounts delete <id> | Delete an account (confirms; --yes to skip in scripts). | | stats | Aggregate trading stats (--account, --pair, --from, --to). |

API Keys

| Command | Purpose | | --- | --- | | keys list | List your API keys. | | keys create --name X | Create a new API key (--permissions, --rate-limit, --expires-at). | | keys regenerate <id> | Rotate a key secret (--permissions replaces access). | | keys update <id> | Update key metadata (--name, --rate-limit, --active). | | keys revoke <id> | Revoke a key. |

Chat

| Command | Purpose | | --- | --- | | chat send "<msg>" | Send a chat message (--conversation, --provider, --model). | | chat list | List your AI conversations. | | chat show <id> | Show one conversation with messages. | | chat new | Create an empty conversation. | | chat delete <id> | Delete a conversation. |

Alerts

| Command | Purpose | | --- | --- | | alerts list | List price + trendline alerts (--kind indicator, --pair, --include-archived). | | alerts create price | Create a price-level alert (--pair --timeframe --price --condition above\|below\|crosses, plus --trigger close\|wick, --persistent, --no-email, --no-push, --message, --expires). | | alerts create trendline | Create a trendline alert from two chart points (--pair --timeframe --price1 --time1 --price2 --time2 --condition). | | alerts create indicator | Create an indicator-condition alert (--pair --timeframe --indicator <type> --param k=v,k2=v2 --series <output> --op <op>, plus --dedup edge\|continuous). Threshold ops (gt gte lt lte eq crosses_above crosses_below) take --threshold <n>; series ops (gt_series lt_series crosses_above_series crosses_below_series) take --other <series>. | | alerts update <id> | Update fields (--price, --condition, --active, --archive; --kind indicator for indicator alerts). | | alerts delete <id> | Delete an alert (--kind indicator; confirms, --yes to skip). |

Market Context

| Command | Purpose | | --- | --- | | market candles | Recent OHLC bars (--pair --timeframe, plus --limit, --offset). | | market calendar | Economic calendar events (--currency USD,EUR, --from, --to, --min-impact <n>). | | market macro | Macro time series such as CPI or interest rates (--currency --indicator, plus --from, --to, --limit). | | market instruments | Supported instruments and timeframes. |

Technical Indicators

| Command | Purpose | | --- | --- | | indicators <name…> | Compute one or more indicators, e.g. indicators rsi macd --pair EURUSD --timeframe 1h --param time_period=14,series_type=close [--outputsize N]. Param names are per-indicator (Twelve Data names, e.g. time_period, series_type); an unknown key returns the allowed list. |

Example

aether-wealth login
aether-wealth trades list --status OPEN --account acc_123
aether-wealth stats --pair EURUSD --from 2026-01-01
aether-wealth alerts create price --pair XAUUSD --timeframe 1h \
  --price 2400 --condition above --message "Gold above 2400"
aether-wealth indicators rsi ema --pair EURUSD --timeframe 1h \
  --param time_period=14 --json | jq .

Safety And Limits

  • OAuth is per user — the CLI never stores or configures a shared service secret.
  • Tokens live in the OS keychain (or a 0600 file) and can be cleared with logout.
  • Destructive commands (trades delete, accounts delete, alerts delete) prompt for confirmation; pass --yes/-y to run them in scripts. In a non-interactive shell without --yes, they refuse to run rather than guess.
  • Every request goes over one transport (typed tRPC over HTTPS to aether-backend) — there's no separate REST fallback to keep in sync.
  • Backend rate limits and cost-sensitive-indicator gates apply the same way they do for the dashboard and the MCP server. Rate-limited reads (market, indicators) are retried automatically with backoff; if the limit persists the command prints a clear message and exits with code 4 (distinct from 1), so a script can back off and retry.

Known Deltas From The Dashboard

The CLI is not yet at full parity with the Aether Wealth dashboard:

  • trades create cannot set exit fields directly — create the trade open, then use trades close <id> to set --exit-price/--exit-time.
  • trades list has no --tag filter (filter client-side on the JSON output, e.g. --json | jq '.trades[] | select(.tags[]? == "breakout")').
  • whoami/auth status show your account id in place of an email when the backend hasn't granted the email OAuth scope for your session.

Links

  • Aether Wealth: https://aetherwealth.ai
  • Trading app: https://app.aetherwealth.ai
  • npm package: https://www.npmjs.com/package/@aetherwealth/cli