Skip to main content

Binance-first trading CLI for balances, market data, opportunity scanning, and execution.

Project description

CoinHunter Banner

Typing SVG

A Binance-first crypto trading CLI for balances, market data, opportunity scanning, and execution.


What's New in 3.0

  • Split decision models — portfolio (add/hold/trim/exit) and opportunity (enter/watch/skip) now use independent scoring logic.
  • Configurable ticker windowsmarket tickers supports --window 1h, 4h, or 1d.
  • Live / dry-run audit logs — audit logs are written to separate subdirectories; use catlog --dry-run to review simulations.
  • Flattened commandsaccount, opportunity, and config are now top-level for fewer keystrokes.
  • Runtime config managementconfig get, config set, and config key/secret let you edit settings without touching files manually.

Install

For end users, install from PyPI with pipx (recommended) to avoid polluting your system Python:

pipx install coinhunter
coinhunter --help

You can also use the shorter coin alias:

coin --help

Check the installed version:

coinhunter --version

To update later:

pipx upgrade coinhunter

Initialize runtime

coinhunter init
coinhunter init --force

This creates:

  • ~/.coinhunter/config.toml
  • ~/.coinhunter/.env
  • ~/.coinhunter/logs/

If you are using zsh or bash, init will also generate and install shell completion scripts automatically, and update your rc file (~/.zshrc or ~/.bashrc) if needed.

init interactively prompts for your Binance API key and secret if they are missing. Use --no-prompt to skip this.

config.toml stores runtime and strategy settings. .env stores:

BINANCE_API_KEY=
BINANCE_API_SECRET=

Strategy settings are split into three blocks:

  • [signal] for shared market-signal weights and lookback interval
  • [opportunity] for scan thresholds, liquidity filters, and top-N output
  • [portfolio] for add/hold/trim/exit thresholds and max position weight

Override the default home directory with COINHUNTER_HOME.

Commands

By default, CoinHunter prints human-friendly TUI tables. Add --agent to any command to get JSON output (or compact pipe-delimited tables for large datasets).

Add --doc to any command to see its output schema and field descriptions (great for AI agents):

coin buy --doc
coin market klines --doc

Examples

# Account (aliases: a, acc)
coinhunter account
coinhunter account --agent
coin a

# Market (aliases: m)
coinhunter market tickers BTCUSDT ETH/USDT sol-usdt --window 1h
coinhunter market klines BTCUSDT ETHUSDT --interval 1h --limit 50
coin m tk BTCUSDT ETHUSDT -w 1d
coin m k BTCUSDT -i 1h -l 50

# Trade (buy / sell are now top-level commands)
coinhunter buy BTCUSDT --quote 100 --dry-run
coinhunter sell BTCUSDT --qty 0.01 --type limit --price 90000
coin b BTCUSDT -Q 100 -d
coin s BTCUSDT -q 0.01 -t limit -p 90000

# Portfolio (aliases: pf, p)
coinhunter portfolio
coinhunter portfolio --agent
coin pf

# Opportunity scanning (aliases: o)
coinhunter opportunity
coinhunter opportunity --symbols BTCUSDT ETHUSDT SOLUSDT
coin o -s BTCUSDT ETHUSDT

# Audit log
coinhunter catlog
coinhunter catlog -n 20
coinhunter catlog -n 10 -o 10
coinhunter catlog --dry-run

# Configuration management (aliases: cfg, c)
coinhunter config get                    # show all config
coinhunter config get binance.recv_window
coinhunter config set opportunity.top_n 20
coinhunter config set signal.lookback_interval 4h
coinhunter config set portfolio.max_position_weight 0.25
coinhunter config set trading.dry_run_default true
coinhunter config set market.universe_allowlist BTCUSDT,ETHUSDT
coinhunter config key YOUR_API_KEY       # or omit value to prompt interactively
coinhunter config secret YOUR_SECRET     # or omit value to prompt interactively
coin c get opportunity.top_n
coin c set trading.dry_run_default false

# Self-upgrade
coinhunter upgrade
coin upgrade

# Shell completion (manual)
coinhunter completion zsh  > ~/.zsh/completions/_coinhunter
coinhunter completion bash > ~/.local/share/bash-completion/completions/coinhunter

upgrade will try pipx upgrade coinhunter first, and fall back to pip install --upgrade coinhunter if pipx is not available.

Architecture

CoinHunter V2 uses a flat, direct architecture:

Layer Responsibility Key Files
CLI Single entrypoint, argument parsing cli.py
Binance Thin API wrappers with unified error handling binance/spot_client.py
Services Domain logic services/account_service.py, services/market_service.py, services/signal_service.py, services/opportunity_service.py, services/portfolio_service.py, services/trade_service.py
Config TOML config, .env secrets, path resolution config.py
Runtime Paths, TUI/JSON/compact output runtime.py
Audit Structured JSONL logging audit.py

Logging

Audit logs are written to:

~/.coinhunter/logs/audit_YYYYMMDD.jsonl

Events include:

  • trade_submitted
  • trade_filled
  • trade_failed
  • opportunity_portfolio_generated
  • opportunity_scan_generated

Use coinhunter catlog to read recent entries in the terminal. It aggregates across all days and supports pagination with -n/--limit and -o/--offset.

Development

Clone the repo and install in editable mode:

git clone https://git.tacitlab.cc/TacitLab/coinhunter-cli.git
cd coinhunter-cli
pip install -e ".[dev]"

Or use the provided Conda environment:

conda env create -f environment.yml
conda activate coinhunter

Run quality checks:

pytest tests/           # run tests
ruff check src tests     # lint
mypy src                 # type check

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coinhunter-3.0.0.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

coinhunter-3.0.0-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

Details for the file coinhunter-3.0.0.tar.gz.

File metadata

  • Download URL: coinhunter-3.0.0.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for coinhunter-3.0.0.tar.gz
Algorithm Hash digest
SHA256 51d631bcc961d23ae65f8fde765452a395097a2dcb01abdaed2395987d6c5d79
MD5 ad07144378ee9aff4f4f58238ef64fe2
BLAKE2b-256 a56089bd261207090d88af44554aea4dd8186e2636c1c5df5b982e378f75fdb4

See more details on using hashes here.

File details

Details for the file coinhunter-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: coinhunter-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 33.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for coinhunter-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7cd67bb06df81b24ebca607386134c10597d734c4620e2dbfe3b163d41ff257b
MD5 ab8b3b9a8572cf5252d096f1e9cc3144
BLAKE2b-256 30c32f6f3f1f587968d99c6646278d8f0675eb709af177d6cc3668fb14b6ec1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page