adanos-cli is the command-line client for the Adanos Market Sentiment API.
It is built for three use cases:
- traders who want fast stock and crypto sentiment reports
- analysts who want repeatable CLI workflows
- agents and automation that need stable JSON output
The CLI is versioned independently from the API backend. It targets the public API at https://api.adanos.org/docs and uses the published Python SDK under the hood.
pipx install adanos-clicurl -fsSL https://raw.githubusercontent.com/adanos-software/adanos-cli/main/install.sh | bashThe shell installer downloads the latest standalone binary for:
- macOS arm64
- macOS x86_64
- Linux x86_64
By default it installs to ~/.local/bin. Override with ADANOS_INSTALL_DIR=/your/path.
brew install adanos-software/tap/adanos-cliirm https://raw.githubusercontent.com/adanos-software/adanos-cli/main/install.ps1 | iexpython3 -m pip install adanos-cligit clone https://github.com/adanos-software/adanos-cli.git
cd adanos-cli
python3 -m pip install -e ".[dev]"If you already have an API key:
adanos login # paste the key at the hidden prompt
adanos whoami
adanos doctorFirst market checks:
adanos stock TSLA
adanos compare NVDA TSLA AAPL
adanos trending stocks --limit 5
adanos consensus TSLA
adanos explain TSLA --profile investor
adanos scan stocks --style daytrader --top 10Crypto:
adanos crypto BTC
adanos crypto BTC/ETHadanos shows a compact start screen with the CLI header and next actions.
adanosExplicit interactive shell:
adanos shellThe shell prompt shows the latest monthly API request balance. Run /quota to
refresh it on demand; normal commands do not spend an extra request on quota
lookups.
One-shot command mode:
adanos stock NVDAPersist a key locally:
adanos login # interactive hidden prompt
adanos login --api-key-file ~/.config/adanos-cli/key.txtRequest a recovery email for an existing account:
adanos onboard recover --email you@example.comStart a new signup from the CLI:
adanos onboard register --name "Jane Doe" --email "jane@example.com" --purpose "Trading research"
# then redeem the one-time token from the verification email
adanos onboard redeem --save # paste the one-time code at the hidden promptUse profiles:
adanos auth login --profile prod
adanos auth login --profile staging
adanos auth switch prod
adanos auth current --jsonPriority order:
--api-keyADANOS_API_KEY- stored credentials in the active profile
Recommended secret input for automation is --api-key-stdin or --api-key-file. --api-key and ADANOS_API_KEY remain supported, but they are easier to leak through shell history or process inspection.
Use --no-input in CI or agents to make missing prompts fail fast:
adanos --no-input login --api-key-stdinStock report:
adanos stock TSLACross-platform consensus:
adanos consensus TSLACompare stocks across News, Reddit, X/Twitter, and Polymarket:
adanos compare NVDA TSLA AAPLCommon crypto symbols are detected automatically:
adanos compare BTC ETHSearch and trending use all relevant sources by default. Add --platform only when you want one source:
adanos search Tesla
adanos trending stocks --limit 5
adanos trending crypto --limit 10
adanos search Tesla --platform news-stocksSentiment screener:
adanos scan stocks --style daytrader --top 10
adanos scan crypto --min-buzz 60 --min-volume 50Narrative explanation:
adanos explain TSLA --profile investorWatchlists:
adanos watchlist add core --asset stocks --symbols TSLA NVDA AAPL
adanos watchlist report core --asset stocks
adanos watch core --kind watchlist --asset stocks --refresh 60 --iterations 1Destructive local operations prompt in an interactive terminal and require --force in scripts or JSON mode:
adanos auth logout --profile staging --force
adanos watchlist delete core --force
adanos config clear --forceRaw endpoint access:
adanos endpoint list
adanos endpoint list --platform polymarket-stocks
adanos endpoint list --search mentions
adanos endpoint call root.health
adanos endpoint call reddit-stocks.trending --limit 10
adanos endpoint call reddit-stocks.market-sentiment --from 2026-05-01 --to 2026-05-07
adanos endpoint call reddit-stocks.stock.mentions --ticker TSLA --from 2026-05-01 --to 2026-05-07 --limit 10 --offset 10 --include-inherited
adanos endpoint call x-stocks.stock.explain --ticker TSLA
adanos endpoint call sentiment.analyze --text "TSLA looks like a short squeeze setup"Polymarket endpoint output includes both market_count for selected-window breadth and current_market_count for live-only active-market breadth.
For API 1.45.1+, Polymarket top_mentions in stock detail output are representative sentiment evidence, not a liquidity leaderboard. When market status is available, the CLI shows market_status alongside the evidence. For API 1.46.0+, human summaries prefer daily_trend[].bullish_pct and daily_trend[].bearish_pct over deprecated positive/negative/neutral count fields.
Polymarket unique_traders can be null when retained wallet-level trades do not fully cover the requested window. Across platforms, each trend_history value represents its own UTC calendar day; the current partial day's value is not expected to equal the top-level period buzz_score.
Period-capable commands and endpoint calls accept --from YYYY-MM-DD and --to YYYY-MM-DD as inclusive UTC date windows. --days N remains available for v1 compatibility, but is legacy; combining --from, --to and --days returns API validation error 422. Search commands are the exception: they accept only --limit and use the API-managed recent summary window.
The CLI supports explicit machine-readable output via --output json or --quiet.
adanos --quiet capabilities
adanos --quiet whoami
adanos --quiet doctor
adanos --quiet ask "How does TSLA look?"
adanos --quiet endpoint call news-stocks.trending --limit 3Output modes:
- default auto: human text on a TTY, JSON when stdout is piped
--output text: force human text, even when stdout is redirected--plain: force plain text and disable auto JSON--output json,--json, or--quiet: force JSON--no-color: disable ANSI color output;NO_COLOR=1is also honored
JSON conventions:
- object payloads include a stable
kind - command wrappers include
command, andsubcommandwhen relevant - endpoint-backed payloads include
platform,route,endpoint,path, anddata - raw endpoint payloads are available with
--json/--output json; human mode prints compact tables or summaries
Exit codes:
0: success1: runtime or network/API failure2: usage, auth, or missing configuration error
This CLI is a research and workflow tool, not investment advice.
Identity and runtime context:
adanos whoamiProblem-focused self-check:
adanos doctor
adanos doctor --verboseTagged releases build standalone archives for:
- macOS arm64
- macOS x86_64
- Linux x86_64
The repo also generates a Homebrew formula artifact for each tagged binary release and can publish it to adanos-software/homebrew-tap when HOMEBREW_TAP_TOKEN is configured.
PyPI publishing also happens from this repo, not from the API monorepo.
Use the matching installer:
pipx uninstall adanos-cli
brew uninstall adanos-cli
python3 -m pip uninstall adanos-cliFor the standalone installer, remove ~/.local/bin/adanos. Local profiles and watchlists remain under ${XDG_CONFIG_HOME:-~/.config}/adanos-cli until you explicitly remove them.
Install the repo in editable mode:
python3 -m pip install -e ".[dev]"Run tests:
python3 -m pytest tests -qBuild wheel and sdist:
python3 -m buildBuild a standalone binary archive locally:
python3 scripts/build_cli_binary.py --output-dir dist-binariesGenerate a Homebrew formula:
VERSION=$(python3 - <<'PY'
import re
from pathlib import Path
text = Path("src/adanos_cli/__init__.py").read_text(encoding="utf-8")
print(re.search(r'__version__\s*=\s*"([^"]+)"', text).group(1))
PY
)
python3 scripts/generate_homebrew_formula.py \
--version "$VERSION" \
--darwin-arm64-url "https://example.com/adanos-cli-${VERSION}-darwin-arm64.tar.gz" \
--darwin-arm64-sha256 <sha256> \
--darwin-x86_64-url "https://example.com/adanos-cli-${VERSION}-darwin-x86_64.tar.gz" \
--darwin-x86_64-sha256 <sha256> \
--linux-x86_64-url "https://example.com/adanos-cli-${VERSION}-linux-x86_64.tar.gz" \
--linux-x86_64-sha256 <sha256> \
--output dist/homebrew/adanos-cli.rbMIT