btcli (deprecated)

Disable date: 2027-01-19

Install command:
brew install btcli

Bittensor command-line tool

https://docs.learnbittensor.org/btcli

License: MIT

Development: Pull requests

Formula JSON API: /api/formula/btcli.json

Formula code: btcli.rb on GitHub

Bottle (binary package) installation support provided for:

macOS on
Apple Silicon
golden gate ✅
tahoe ✅
sequoia ✅
Linux ARM64 ✅
x86_64 ✅

Current versions:

stable ✅ 9.23.2

Revision: 1

Depends on:

certifi 2026.10.23 Mozilla CA bundle for Python
libyaml 0.2.5 YAML Parser
numpy 2.5.4 Package for scientific computing with Python
openssl@4 4.1.0 Cryptography and SSL/TLS Toolkit
python@3.15 3.15.2 Interpreted, interactive, object-oriented programming language
xxhash 0.8.4 Extremely fast non-cryptographic hash algorithm

Depends on when building from source:

rust 1.99.1 Safe, concurrent, practical language

Conflicts with: bittensor (because both install `btcli` binaries), btpd (because both install `btcli` binaries)

Binaries: btcli

Analytics:

30 days90 days365 days
Installs30371,065
Installs (--HEAD)001
Installs on Request30371,065
Installs on Request (--HEAD)001
Build Errors2

Known vulnerabilities in the current version:

GHSA-59cr-6r3x-644w GitPython submodule update path traversal can write outside the repository
GHSA-54p9-h82j-f925 (medium) Multidict: Reference leak in CIMultiDict/MultiDict items-view union and subtraction
GHSA-fx3j-rwgx-fr94 (medium) GitPython: separate_git_dir leaks env vars via crafted .gitmodules submodule name
GHSA-m64x-33q8-m5h7 GitPython parse_actor_and_date() is vulnerable to quadratic backtracking on malformed identity lines
GHSA-w8jc-g24h-crhw (high) GitPython command wrappers omit unsafe protocol and option checks
GHSA-f9j4-qggq-h239 (high) GitPython Remote.pull() refspec bypasses the --upload-pack unsafe-option guard, enabling arbitrar...
GHSA-23mf-xhv8-69c2 GitPython: arbitrary file read via attacker-controlled branch name in `Head.checkout()` (incomple...
GHSA-gq48-pqfc-9p58 GitPython: Submodule.move() follows an attacker-committed intermediate symlink outside the worktree
GHSA-494j-54xm-rwp3 AIOHTTP: Secure attribute not enforced for shared cookie
GHSA-5wr8-gcqf-gqf3 aiohttp server lacks an initial request/header timeout
GHSA-6cjc-53gc-5rqm AIOHTTP: Connector pool exhaustion via Max-Age overflow
GHSA-9xw5-w5jj-pvcg AIOHTTP: File descriptor exhaustion in multipart requests
GHSA-f9xw-jh8m-3mwq AIOHTTP: Absolute-form request targets can spoof Request.scheme
GHSA-gx76-c99x-2c96 AIOHTTP: Cookie from subdomain can remove Host-Only Scope from existing cookies
GHSA-pqxq-w44r-73xw AIOHTTP: Pure-Python parser request smuggling
GHSA-83vg-56qc-22m7 (high) GitPython validates a submodule's ".git" path only after cloning into it (RCE)
GHSA-mq44-7p77-q5h7 AIOHTTP: WebSocket client accepts compressed frames without negotiated permessage-deflate
GHSA-rwj8-pgh3-r573 (high) GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
GHSA-3rp5-jjmw-4wv2 (high) GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand...
GHSA-mfx4-hv73-q22v AIOHTTP: HTTP request smuggling via WebSocket upgrade
GHSA-cq5v-8q36-5273 AIOHTTP: Out-of-bounds heap read in C HTTP response parser error path (malformed chunked response)
GHSA-539m-9xh6-q6rr (medium) GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, ...
GHSA-3f7w-8rr8-f37f (high) GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enab...
GHSA-p538-c434-8v24 (medium) GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Co...
GHSA-94p4-4cq8-9g67 (high) GitPython: Environment-variable exfiltration via Repo.create_remote() / Remote.add() URL (incompl...
GHSA-6p8h-3wgx-97gf (high) GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary comma...
GHSA-fjr4-x663-mwxc (high) GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (ke...
GHSA-r9mr-m37c-5fr3 (high) GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enable...
GHSA-hh9p-6wh2-4mfc (medium) GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()
GHSA-9rj7-rf2p-w77r (high) GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via -...
GHSA-4gmw-gg2m-w46p (high) GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enab...
GHSA-wvpp-8hx9-p66j (high) GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token ...
GHSA-jm78-9fvv-mhgr (high) GitPython: git-config OPTION-name injection via =/#/whitespace bypasses name validator, enabling ...
GHSA-hmq2-w58f-27jc (high) GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules...
GHSA-7833-fr7j-v32q (high) GitPython: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodul...
GHSA-284h-m62q-gf8w (critical) GitPython: Dormant multi-line git-config values are corrupted into live injected directives (e.g....
GHSA-8mcc-hrx5-hvxc (high) GitPython: clone_from()/clone() omit --separate-git-dir from unsafe_git_clone_options, enabling a...
GHSA-5xxx-qhh7-9287 (medium) GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrar...
GHSA-3wxw-xv34-2frg (medium) GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling a...
PYSEC-2026-3982 (high) GitPython: Repository content can impersonate the git directory, leading to arbitrary code execution
PYSEC-2026-3984 (high) GitPython: Denial of Service via catastrophic backtracking (ReDoS) in Actor.name_email_regex — co...
GHSA-2g87-pp6c-29x5 aiohttp: Multiple instances of excessive or unbounded memory/CPU use

Data from Homebrew/advisory-database. Run brew vulns btcli for a live check.