# Polymarket CLI

Polymarket's Rust command line - MIT in the manifest, with no LICENSE file in the repo.

*https://predictionmarkets.tools/tools/polymarket-cli · Trading Clients, SDKs & Bots*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | Polymarket |
| Category | Trading Clients, SDKs & Bots |
| Job | terminal |
| Website | https://github.com/Polymarket/polymarket-cli |
| Pricing model | open-source |
| Free tier | true |
| Open source | true |
| Licence | MIT (declared in Cargo.toml and README, no LICENSE file in the repo) |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-20 |

### Availability

| Field | Value |
| --- | --- |
| Jurisdictions | global |
| Open to US persons | true |
| KYC required | false |

### Markets

| Field | Value |
| --- | --- |
| Settlement | crypto |
| Resolved by | none |

### Economics

| Field | Value |
| --- | --- |
| Taker fee | none |
| Maker fee | none |
| Liquidity model | clob |
| Platforms | cli |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | true |
| WebSocket | false |
| Scripting | none |
| Python | false |
| MCP server | false |
| Export | json |

### Capabilities

Yes: order_book, automation, live_trading, portfolio_tracking

No: charting, screening, backtesting, paper_trading, calibration_scoring, cross_venue, alerts, news, tax_reporting

*Verified: pricing 2026-09-20; availability 2026-09-20; capabilities 2026-09-20.*

## What it is

Polymarket's own command-line client for the on-chain exchange, written in Rust, installed as the
binary `polymarket`, and built on the vendor's `polymarket_client_sdk_v2` crate with the gamma,
data, bridge, clob and ctf features switched on. It is the most-starred thing Polymarket
publishes on GitHub — 2,878 stars and 356 forks on 20 September 2026 — and it covers more of the
platform than any other first-party client does from one place.

Every command takes `--output table` or `--output json`, which is the point of the design: the
README describes it as a terminal tool "or as a JSON API for scripts and agents", errors come back
as `{"error": "..."}` on stdout in JSON mode with a non-zero exit either way, and there is an
interactive `polymarket shell` with history for the times you are exploring rather than scripting.

What it reaches, by command group:

- **Discovery, against Gamma.** `markets list/get/search/tags`, `events list/get/tags`,
  `tags list/get/related`, `series`, `comments`, `profiles get` and `sports list/market-types/teams`.
- **CLOB reads, no wallet.** `clob book`, `books`, `price`, `midpoint`, `spread` and their batch
  forms, `last-trade`, `price-history` at 1m through max, `market`, `markets`, `tick-size`,
  `fee-rate`, `neg-risk`, `time`, `ok` — and `clob geoblock`, which asks the venue whether you
  are blocked rather than making you find out by failing.
- **Trading.** `clob create-order`, `market-order`, `post-orders`, `cancel`, `cancel-orders`,
  `cancel-market`, `cancel-all`, `orders`, `order`, `trades`, `balance` and `update-balance`,
  with GTC, FOK, GTD and FAK order types and a `--post-only` flag.
- **Rewards and credentials.** `clob rewards`, `earnings`, `reward-percentages`,
  `order-scoring`, `api-keys`, `create-api-key`, `delete-api-key`, `account-status` and
  `notifications`.
- **On-chain data for any address.** `data positions`, `closed-positions`, `value`, `traded`,
  `trades`, `activity`, `holders`, `open-interest`, `volume`, and the trader and builder
  leaderboards.
- **The on-chain plumbing most clients leave to you.** `approve check` and `approve set` for the
  ERC-20 and ERC-1155 allowances, `ctf split`, `merge`, `redeem` and `redeem-neg-risk`, the
  condition, collection and position id calculators, and `bridge deposit` for EVM, Solana and
  Bitcoin deposit addresses.

## Availability

The binary imposes nothing. There is no licence key, no account, no identity check and no
geographic gate in the tool, and the whole read surface works with no wallet configured. This
card's `us_persons` and `kyc_required` flags describe the software.

The venue is another matter. Trading on the on-chain Polymarket is blocked for US persons — see
[polymarket](https://predictionmarkets.tools/tools/polymarket) and [polymarket-clob-api](https://predictionmarkets.tools/tools/polymarket-clob-api) for what
that block is and what it is not. The CLI ships `clob geoblock` precisely because the answer
depends on where you are and not on whether the code runs. For the US exchange, which is a
separate entity with its own API and its own identity check, see
[polymarket-us](https://predictionmarkets.tools/tools/polymarket-us); this tool does not speak to it.

## Pricing

Nothing is charged for the tool. What a fill costs is the exchange's fee schedule and belongs on
[polymarket](https://predictionmarkets.tools/tools/polymarket); on-chain operations additionally cost gas on Polygon, which the
README says plainly next to `approve set` and the CTF commands.

The licence is the part of "free" that is not settled. `Cargo.toml` declares `license = "MIT"`
and the README's last section reads `MIT`, but there is no LICENSE file in the repository at any
commit or tag, GitHub's licence endpoint answers 404, and the repository's own metadata reports
no detected licence. Two in-repo declarations by the copyright holder are a real grant and not
silence, which is why this card records the software as open source — but the full MIT text is
what carries the copyright notice and the warranty disclaimer, and MIT's single condition is that
the notice travel with every copy. There is no notice in the repository to travel. If you are
vendoring this, forking it, or putting it through a corporate review that reads SBOMs rather than
manifests, that is the fact to take to your own counsel, and the cheapest fix is to ask the
vendor to commit the file.

## Markets & resolution

A client resolves nothing. Orders placed through it rest on the Polymarket CLOB and settle on
Polygon against a UMA-decided outcome; who decides and how is a question about the venue and is
answered on [polymarket](https://predictionmarkets.tools/tools/polymarket).

What this tool does expose, and few others do from one binary, is the settlement plumbing after
the decision: `ctf redeem` claims a winning position on-chain, `ctf redeem-neg-risk` handles the
multi-outcome form, and `ctf split` and `merge` move between pUSD and the conditional token pair
without going through the book at all. Amounts are in pUSD, `--partition` defaults to the binary
`1,2`, and everything on-chain needs MATIC.

## Integrations

One dependency does the real work — `polymarket_client_sdk_v2` at 0.5.1 — with `alloy` for
signing and RPC, `clap` for parsing, `tabled` for the table output and `rustyline` for the shell.
Rust edition 2024 and a declared minimum toolchain of 1.88.0, so a clone will not build on an
older compiler.

Wallet resolution is a three-step fallback, in order: the `--private-key` flag, the
`POLYMARKET_PRIVATE_KEY` environment variable, then `~/.config/polymarket/config.json`. The same
file holds `chain_id` and `signature_type`, which is one of `proxy` (the default, using
Polymarket's proxy wallet), `eoa`, or `gnosis-safe`, and can be overridden per command.

There is no WebSocket. Every price in the table is a poll, so anything that needs to watch a book
belongs in [polymarket-client](https://predictionmarkets.tools/tools/polymarket-client) or straight against the
[CLOB API](https://predictionmarkets.tools/tools/polymarket-clob-api).

## Limitations

- **No LICENSE file.** Checked again on 20 September 2026 and still absent, on the repository
  with the most stars in the organisation. See `## Pricing` for what is and is not granted.
- **Not on crates.io.** `polymarket-cli` is not a published crate, so the reflexive
  `cargo install polymarket-cli` does not get you this tool. Homebrew, the piped install script,
  or a clone.
- **Six months since the last release, three since the last commit.** v0.1.5 shipped on
  10 March 2026. The CLOB v2 migration landed on `main` on 26 May 2026 and has never been
  released, so the downloadable binary and the readable source are two different programs.
- **The version number was itself a bug, and may still be.** `Cargo.toml` reads `0.1.4` on `main`
  and also on the `v0.1.5` tag — two of the three merged fixes in that release were about version
  reporting and Homebrew formula sync.
- **The private key sits on disk in plain text.** `wallet create` generates one and writes it
  unencrypted to `~/.config/polymarket/config.json`. No passphrase, no keychain, no hardware
  wallet. On a shared or backed-up machine that is a funded account in a file.
- **The vendor's own warning is the strongest sentence in the README** — early, experimental
  software, not to be used with large amounts of funds, with commands and behaviour subject to
  change without notice. Take it literally at 0.1.x.
- **Sixteen open issues and thirty-two open pull requests** against a repository whose last
  commit is from May. Most of what the community has offered is unmerged.
- **No Windows binary**, no WebSocket, no MCP server, and nothing for the US exchange.

## Alternatives

For the same platform from Python rather than a shell,
[polymarket-client](https://predictionmarkets.tools/tools/polymarket-client) is Polymarket's own SDK, released thirty-four times
since May 2026, and it covers the same approvals, CTF operations and streaming that this CLI
covers by command — with the streaming the CLI lacks.
[py-clob-client](https://predictionmarkets.tools/tools/py-clob-client) is the archived predecessor and should not be started
from.

For the US exchange there is no first-party CLI at all; the official clients there are
[polymarket-us-python](https://predictionmarkets.tools/tools/polymarket-us-python) and
[polymarket-us-typescript](https://predictionmarkets.tools/tools/polymarket-us-typescript).

For several venues behind one interface, [ccxt](https://predictionmarkets.tools/tools/ccxt) and [pmxt](https://predictionmarkets.tools/tools/pmxt) are the
cross-venue options, and both are libraries rather than terminals.

## FAQ

### What licence is this actually under?

Checked on 20 September 2026 - Cargo.toml carries license = "MIT" and the README ends with a License section reading MIT, but the repository contains no LICENSE file, GitHub's licence endpoint returns 404 and the repository reports no detected licence. The name of a licence without its text is thin ground for redistribution, because MIT's own condition is that the copyright notice and permission notice travel with every copy, and there is no notice in the repository to carry.

### Can I install it with cargo install polymarket-cli?

No. There is no polymarket-cli crate on crates.io - the registry answers that the crate does not exist. The supported routes are the Homebrew tap, the install.sh script piped to a shell, and cargo install --path . from a clone. Prebuilt tarballs are attached to the GitHub releases for macOS and Linux on both architectures, and there is no Windows build.

### Is it still being released?

Two releases exist, v0.1.4 on 24 February 2026 and v0.1.5 on 10 March 2026, and nothing since. The default branch kept moving until 26 May 2026, when the CLOB order path was migrated to SDK v2 and CTF proxy operations were routed through v2 contracts. That migration has never been released, so the binaries you can download predate it by two and a half months.

### Where does it keep my private key?

In plain text, unless you pass it another way. The key is read from a --private-key flag, then POLYMARKET_PRIVATE_KEY, then ~/.config/polymarket/config.json - and polymarket wallet create generates a fresh key and writes it into that file unencrypted. There is no passphrase, no keychain integration and no hardware-wallet path.

### How much of it works without a wallet?

Most of it. Market, event, tag, series, comment, profile and sports discovery, the whole CLOB read surface including books, midpoints, spreads and price history, and the on-chain data commands for any address all run with no key at all. A wallet is needed only to place or cancel orders, read your own balances and trades, and sign approvals, splits, merges and redemptions.

## Also from Polymarket

- [polymarket-client](https://predictionmarkets.tools/tools/polymarket-client.md)
- [Polymarket CLOB API](https://predictionmarkets.tools/tools/polymarket-clob-api.md)
- [Polymarket Gamma API](https://predictionmarkets.tools/tools/polymarket-gamma-api.md)
- [Polymarket US API](https://predictionmarkets.tools/tools/polymarket-us-api.md)
- [Polymarket US Python SDK](https://predictionmarkets.tools/tools/polymarket-us-python.md)
- [Polymarket US TypeScript SDK](https://predictionmarkets.tools/tools/polymarket-us-typescript.md)
- [Polymarket US](https://predictionmarkets.tools/tools/polymarket-us.md)
- [Polymarket](https://predictionmarkets.tools/tools/polymarket.md)
- [py-clob-client](https://predictionmarkets.tools/tools/py-clob-client.md)

## Background

- [Where your key lives when software trades for you](https://predictionmarkets.tools/guides/where-your-key-lives.md) — Four different credentials are all called a key, and they differ in what a copy permits. What the clients in this catalogue ask for, and what to ask them back.

- [What running a bot does not solve](https://predictionmarkets.tools/guides/what-a-bot-cannot-fix.md) — A bot fixes speed and consistency. Rate limits, a missing rehearsal, a field that stops arriving, a partial fill and a paused market are not coding problems.

## Also worth comparing

- [Polycool](https://predictionmarkets.tools/tools/polycool.md) — Phone-sized Polymarket client with copy trading, parlays and a fee of its own.
- [Polyrama](https://predictionmarkets.tools/tools/polyrama.md) — Polymarket and Kalshi in one terminal, with wallet analytics and a REST API.
- [Synthesis](https://predictionmarkets.tools/tools/synthesis.md) — Polymarket and Kalshi in one browser desk, with copytrading and a shared portfolio.
- [Alphapoly (polymarket-alpha-bot)](https://predictionmarkets.tools/tools/polymarket-alpha-bot.md) — Self-hosted scanner for covering portfolios across correlated Polymarket contracts.
- [CCXT](https://predictionmarkets.tools/tools/ccxt.md) — One client for seven prediction venues, inside a 104-exchange crypto library.
- [limitless-sdk](https://predictionmarkets.tools/tools/limitless-sdk.md) — Limitless Exchange's own async Python SDK - CLOB and NegRisk orders, WebSocket, MIT.
