quotient-forecasting
v0.8.27
Published
The forecasting intelligence platform for agentic traders.
Maintainers
Readme
Quotient CLI
The forecasting intelligence platform for agentic traders.
Bring Quotient intelligence into your terminal or AI agent.
Query covered assets and their linked prediction markets, calibrated forecasts, published Quotient signals, differences between Q and market prices, and the underlying research behind each forecast.
Install
npm install --global quotient-forecasting
quotient setupSetup asks three questions: how you want to connect, whether to open your browser, and whether to take the quick start. Choosing "Create a free API key" opens your browser, signs you in, and returns the key straight to the terminal — it is never displayed or pasted by hand. Quick start then installs the Quotient skill for the agent clients you already have.
Choose "Customize" instead to pick specific clients, save an X profile and public portfolio wallets, and opt into native MCP tools.
What you can do
| | Command |
|---|---|
| List covered Asset metadata without forecast data ($0.005) | quotient assets list |
| Search an Asset by name/ticker and summarize linked-market coverage ($0.01) | quotient assets search "Apple" |
| Resolve up to 50 platform IDs or market keys in one batch | quotient assets search --reference xyz:GOLD --reference polymarket:gold-2400 |
| Search current or historical markets with a timestamped Q/venue pair | quotient markets search "oil" [--as-of 2026-08-11] |
| Get Q's forecast for a market | quotient forecast <market> |
| Resolve a Kalshi or Polymarket event URL into its exact binary contracts (free) | quotient forecast resolve <url-or-ticker> |
| Generate a new forecast for one exact Kalshi or Polymarket market ($1.00) | quotient forecast request <url-or-ref> --market 516729 --yes |
| Read or resume a submitted forecast job (free) | quotient forecast status <job-id> [--wait] |
| See published Quotient signals | quotient signals --today |
| Find where Q differs most from market prices | quotient markets mispriced --today |
| Read the research behind a forecast | quotient sources <market> |
| See recent forecast and research updates | quotient updates --hours 3 |
| Read calibrated price outlooks | quotient outlooks [--asset wti] [--anchor weekly] [--asset-class commodity] |
| Read a source-aware asset stance | quotient stance --asset wti |
| Review a Polymarket wallet through Q | quotient portfolio report --wallet 0x... |
| Generate a daily summary with Assets carrying Q or venue-price data | quotient digest daily |
| Scope a daily summary to one Asset's exact linked markets | quotient digest daily AAPL |
| Profile one explicitly named X account | quotient profile x <handle> |
Add --json to any data command for structured output. Wherever a response includes a
selected Q forecast probability, its nullable thesis identifies the reasoning for that
same forecast version. Add --full to print available theses in human-readable search,
Asset, signal, spread, forecast, lookup, and portfolio output.
Kalshi event pages can contain many binary strike contracts, and Polymarket event pages can
contain many binary markets. Use forecast resolve to see the exact children and current
YES bid/ask — it accepts kalshi.com and polymarket.com browser URLs (bare non-URL tickers
are treated as Kalshi). forecast request never guesses: pass an exact child, or select
one from a parent event with --market (a Kalshi ticker, or a Polymarket market id or
slug) or --strike (Kalshi ladders only). Submission returns a background job and waits by polling; the forecast itself
can take several minutes without holding the admission request open. The CLI writes the job
ID and progress to stderr, including with --json. Resume an interrupted wait with
quotient forecast status <job-id> --wait; status polling is lightweight and fetches the
full result only after success. User requests have no
resolution lead-time, volume, liquidity, or activity floor: a supported contract remains
eligible while it is live.
Name/ticker Asset search returns a coverage summary. An exact --reference lookup returns
every active market directly connected by HAS_MARKET, including markets where Q agrees
with the venue or no Q forecast exists. A linked row pairs latest_q_probability with its
nullable thesis, forecast_at, and market_odds_at_forecast. Asset search excludes causal AFFECTS-only rows
and never combines question-specific probabilities into an Asset-level probability or trade
direction. market_odds is the venue-neutral current YES probability for Polymarket
International, Polymarket US, Kalshi, or Limitless.
Nested relationships is a flat, non-recursive navigation envelope of exact HAS_MARKET,
ON_MARKET, ON_FORECAST, and HAS_SIGNAL edges. Refs preserve direction and via, carry no
probabilities, and exclude AFFECTS. via: direct is one hop; via: market or via: asset is
exactly one explicit two-hop path, with direction relative to that intermediate node. Each
assets/markets/signals category is capped at 50; inspect
its truncated flag. Asset search's linked_markets remains complete even when relationship refs
are truncated.
Portfolio report reads a Polymarket wallet only. To enrich Hyperliquid or other external
holdings, deduplicate their stable ticker/platform IDs and pass them in one Asset search with
repeated --reference flags. A daily digest makes three serial calls—Asset search, signals,
and mispriced markets. A target such as AAPL, oil, or gold scopes the latter two sections
to exact linked marketKey values; it does not fan out into per-market reads.
quotient outlooks returns the calibrated p10/p25/median_price (p50)/p75/p90
price outlook per Asset and horizon. quotient perps remains a deprecated alias. The
default view leads with Q's published directional label and then names p25 as the bear
case, median_price as the base case, and p75 as the bull case. --full adds p10/p90
tails and range coverage. is_primary_horizon marks the nearest still-open horizon
without skipping neutral. Preserve every horizon and state disagreement across horizons.
For bullish/bearish comparisons, match horizons and settlement bases and rank by
directional_take.score_sigma, not p50 or p75 alone. Its label and strength describe
score magnitude, not calibrated confidence. A directional take carries
is_price_signal: false; price_signals is empty or contains one current call with
is_price_signal: true on its exact Hyperliquid group.
--asset-class commodity returns every covered commodity series in one call. quotient signals and quotient markets mispriced
narrow to one taxonomy value with --tag or --category (e.g. --category commodities).
Use Asset search for an underlying's linked prediction-market intelligence.
A signal is active or retired (with a reason); --status filters on exactly those two
values. Each covered market also carries a forecast_status — its read against Q:
warning (moved ≥25% against Q's side, measured from the worse of the signal entry and
the latest forecast), caution (≥15%), converged (reached Q's price), or
converging/sideways/diverging. Flagged rows stay in the feed; the CLI prints the
status beside each signal and relays it verbatim.
Price outlooks and asset stances group results by settlement basis. Prediction-market YES prices, settlement references, and execution quotes remain separate. Cross-source gaps are basis observations, not arbitrage claims or conversion rates.
Release CI checks the overlapping API/CLI skill policy and verifies that every metered agent operation has a reviewed keyless price matching canonical OpenAPI (or an explicit deny reason):
npm run artifacts:check -- --openapi /path/to/openapi.json --api-skill /path/to/public/skill/skill.mdThe API-served skill and compact CLI-installed skill use different packaging and release
versions. agent-artifacts.json pins both versions plus their shared commands and source-aware
interpretation rules, so the check catches semantic drift without requiring byte-identical bundles.
Use it with an agent
After setup, ask your agent naturally. Good first questions:
- "What data does Quotient have available?"
- "How do I schedule daily buys for Quotient signals?"
- "Give me a digest of what's going on with my portfolio."
And once you know your way around:
- "What does Q forecast for this market?"
- "What prediction markets are linked to Apple?"
- "Gold is in my Hyperliquid portfolio—show the Asset intelligence around it."
- "Show today's commodity mispricing."
- "What research supports this forecast?"
The Quotient skill routes the request to the right CLI command. Restart any agent session that was already open before setup ran.
Managing your install
quotient login # browser sign-in only, leaves skills and context alone
quotient sync # pull settings you saved in the Quotient console
quotient skill update auto # refresh the skill after upgrading the CLI
quotient skill uninstall auto # remove the skill; access and MCP entries are kept
quotient status # check access and remaining creditsOrdinary commands perform a one-second, once-daily best-effort update check. New CLI or
skill releases are announced on stderr, so human output and --json stdout stay stable.
Set QUOTIENT_DISABLE_UPDATE_CHECK=1 to disable it.
MCP is optional
MCP exposes the same Quotient data as native agent tools. It can add latency because the agent loads more tools and context. Use it only when you want native tool discovery.
quotient mcp install autoDocumentation: https://thesis.quotient.social/connect
