agentsclimarketplace

Tushare data

Skill Haochenhust/ch-skills/skills/tushare-data

This skill should be used when the user asks '查一下XX的行情', '拉一下财务数据', '估值数据', 'PE/PB多少', '股东变化', '业绩预告', or when any analysis/research task needs A-share market data, financial statements, valuation metrics, or shareholder data. Tushare Pro is the PRIMARY structured data source — more stable and comprehensive than AKShare. Requires a TUSHARE_TOKEN env var (your own Tushare Pro token).From its SKILL.md

Install
npx -y skills add Haochenhust/ch-skills --skill tushare-data

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

4 things to look at

  • reads credentialsReads from 1 credential source: `TUSHARE_TOKEN`.
  • 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 4 commands, including `python3 -m venv .venv` and 3 more.
  • fetches URLsInstructs the agent to fetch 1 URL, including https://tushare.pro.

SKILL.md

5.9 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

Tushare Data

Primary structured data source for A-share investment research via the Tushare Pro API. A thin CLI wrapper (scripts/fetch_tushare.py) over the tushare Python SDK.

When to Use

  • Any task needing stock fundamentals, valuation, or financial statements
  • Preferred over AKShare for: financial statements, PE/PB/PS, shareholder data, earnings forecasts
  • AKShare remains preferred for: ETF data, sector fund flows, northbound capital (Tushare needs higher points)

Setup

  1. Get a token: register at https://tushare.pro and copy your API token from the user center. Financial-statement interfaces need ~2000 points.
  2. Install deps and export your token:
python3 -m venv .venv
.venv/bin/pip install tushare pandas
export TUSHARE_TOKEN=<your Tushare Pro token>      # never hard-code this
PY=.venv/bin/python3

The script reads the token from the TUSHARE_TOKEN env var (or a --token flag). Keep it in your shell profile or a secret manager, not in the skill.

Available Interfaces

Market Data

ModeDescriptionKey Fields
dailyDaily OHLCVopen, high, low, close, vol, pct_chg
weeklyWeekly OHLCVSame as daily
monthlyMonthly OHLCVSame as daily
daily_basicDaily valuationPE, PE_TTM, PB, PS, turnover, total_mv, circ_mv, dv_ratio
adj_factorAdjustment factorFor computing forward/backward adjusted prices
stock_basicStock listts_code, name, industry, area, list_date, act_name
trade_calTrading calendarcal_date, is_open, pretrade_date

Financial Statements

ModeDescriptionKey Fields
incomeIncome statementrevenue, total_revenue, n_income, basic_eps, ebit, ebitda
balancesheetBalance sheettotal_assets, total_liab, total_hldr_eqy, inventories
cashflowCash flown_cashflow_act, n_cashflow_inv_act, free_cashflow
fina_indicatorFinancial ratiosROE, ROA, grossprofit_margin, netprofit_margin, current_ratio, debt_to_assets, netprofit_yoy

Earnings & Dividends

ModeDescriptionKey Fields
forecastEarnings forecasttype (预增/预减/扭亏/首亏), net_profit_min/max, p_change_min/max
expressEarnings expressQuick earnings release before full report
dividendDividendscash_div, stk_div, record_date, ex_date

Shareholder & Capital

ModeDescriptionKey Fields
top10_holdersTop 10 shareholdersholder_name, hold_amount, hold_ratio, hold_change
stk_holdernumberShareholder countTracks concentration/dilution
moneyflowCapital flowNet inflow by trade size
marginMargin tradingMarket-wide margin data

Index & Fund

ModeDescriptionKey Fields
index_dailyIndex OHLCVSame as daily for indices
index_weightIndex componentscon_code, weight
fund_basicFund listname, fund_type, management
conceptConcept themesThematic stock groups
concept_detailConcept membersStocks in each concept

Command Reference

# Stock info
$PY scripts/fetch_tushare.py --mode stock_basic --symbols 002463.SZ

# Daily price (date range)
$PY scripts/fetch_tushare.py --mode daily --symbols 002463.SZ --start 20260101 --end 20260317

# Daily valuation (PE/PB/turnover/market cap)
$PY scripts/fetch_tushare.py --mode daily_basic --symbols 002463.SZ --start 20260301

# Income statement / ratios / balance sheet / cash flow
$PY scripts/fetch_tushare.py --mode income --symbols 002463.SZ
$PY scripts/fetch_tushare.py --mode fina_indicator --symbols 002463.SZ
$PY scripts/fetch_tushare.py --mode balancesheet --symbols 002463.SZ
$PY scripts/fetch_tushare.py --mode cashflow --symbols 002463.SZ

# Earnings forecast / dividends / shareholders
$PY scripts/fetch_tushare.py --mode forecast --symbols 002463.SZ
$PY scripts/fetch_tushare.py --mode dividend --symbols 002463.SZ
$PY scripts/fetch_tushare.py --mode top10_holders --symbols 002463.SZ
$PY scripts/fetch_tushare.py --mode stk_holdernumber --symbols 002463.SZ

# Index components (CSI 300) / concept themes
$PY scripts/fetch_tushare.py --mode index_weight --symbols 000300.SH
$PY scripts/fetch_tushare.py --mode concept

Tushare vs AKShare Decision Guide

NeedUse TushareUse AKShare
Daily OHLCV✅ More stableBackup
PE/PB/PS valuation✅ daily_basicLimited
Financial statements✅ Structured, typedBasic summary
Earnings forecast✅ forecast/expressNot available
Shareholder data✅ top10_holdersNot available
Dividend data✅ dividendNot available
ETF search/dataUse AKShare✅ Better coverage
Northbound capitalUse AKShare✅ Free
Sector fund flowsUse AKShare✅ Free
Limit-up/down poolUse AKShare✅ Free

(For AKShare-based fetching, see the sibling stock-market-data and financial-data-fetcher skills.)

Rules

  1. Always set TUSHARE_TOKEN env var before calling the script — never hard-code it
  2. Tushare stock codes use suffix: .SZ (Shenzhen), .SH (Shanghai), .BJ (Beijing)
  3. Date format: YYYYMMDD (no dashes)
  4. Rate limit: ~50 requests/minute at 2000 points level
  5. Financial data lag: statements available after company announces (check ann_date)

What ships with it: 2 files

12.0 KB alongside SKILL.md, 1 of them executable

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.