{"name":"pytse-client","description":"Work with Tehran Stock Exchange (TSE / TSETMC / بورس تهران) data via pytse-client. Use when the user asks for Iranian stocks, Persian ticker symbols (فولاد, وبملت, شپنا, خودرو, خساپا), historical OHLCV, adjusted prices, realtime quotes, order book / five best bids-asks, tick/trade details, individual vs institutional (حقیقی حقوقی) flow, major shareholders, financial indexes (شاخص کل), filter-writing stats (فیلترنویسی), EPS/P/E/NAV/float shares, or exporting TSE CSVs. Do not use for NYSE, crypto, or non-Iranian markets.","version":"1.0.0","license":"GPL-3.0","compatibility":"Requires Python 3.8+, the pytse-client package, and outbound HTTP to service.tsetmc.com / old.tsetmc.com / cdn.tsetmc.com. Persian (fa-IR) identifiers are first-class. Not for NYSE, crypto, or non-Iranian venues.","sourceRepo":"https://github.com/Glyphack/pytse-client","sourceVersion":"0.19.1","allowedTools":"Bash Read Write","files":[{"path":"SKILL.md","kind":"instruction","title":"Skill entrypoint","summary":"YAML frontmatter + activation rules, decision tree, hard constraints.","loadWhen":"On skill activation (~2k tokens)","url":"/skills/pytse-client/SKILL.md"},{"path":"LICENSE","kind":"license","title":"Skill license","summary":"GPL-3.0 notice — the skill wraps the GPLv3 pytse-client upstream.","loadWhen":"When redistributing or deriving from the skill","url":"/skills/pytse-client/LICENSE"},{"path":"references/ticker-api.md","kind":"reference","title":"Ticker API","summary":"Every Ticker property, realtime board, shareholders, float, trade ticks.","loadWhen":"When inspecting a single symbol","url":"/skills/pytse-client/references/ticker-api.md"},{"path":"references/download-api.md","kind":"reference","title":"Download API","summary":"Batch history, adjust=True algorithm, CSV layout, jdate.","loadWhen":"When downloading OHLCV or client types","url":"/skills/pytse-client/references/download-api.md"},{"path":"references/orderbook-and-trades.md","kind":"reference","title":"Order book & trades","summary":"get_orderbook, get_trade_details, timeframes, diff_orderbook.","loadWhen":"When the user wants the book or ticks","url":"/skills/pytse-client/references/orderbook-and-trades.md"},{"path":"references/financial-indexes.md","kind":"reference","title":"Financial indexes","summary":"شاخص کل and sector indexes, FinancialIndex class, intraday.","loadWhen":"When the user mentions شاخص","url":"/skills/pytse-client/references/financial-indexes.md"},{"path":"references/filter-stats.md","kind":"reference","title":"Filter-writing stats","summary":"get_stats, market watch, flow codes, YVal instrument types.","loadWhen":"When building فیلترنویسی screens","url":"/skills/pytse-client/references/filter-stats.md"},{"path":"references/pitfalls.md","kind":"reference","title":"Pitfalls","summary":"IP bans, asyncio, Arabic/Persian letters, halted symbols, missing EPS.","loadWhen":"On errors, retries, or encoding issues","url":"/skills/pytse-client/references/pitfalls.md"},{"path":"references/symbols-and-markets.md","kind":"reference","title":"Symbols & markets","summary":"Flow codes, ISIN, delisted index override, all_symbols().","loadWhen":"When resolving a name or market segment","url":"/skills/pytse-client/references/symbols-and-markets.md"},{"path":"references/agent-protocol.md","kind":"reference","title":"Agent protocol","summary":"JSON tool schemas, HTTP invoke contract, progressive disclosure.","loadWhen":"When calling the hosted skill HTTP API","url":"/skills/pytse-client/references/agent-protocol.md"},{"path":"references/data-dictionary.md","kind":"reference","title":"Data dictionary","summary":"Exact columns, dtypes, and CSV/cache conventions for every DataFrame pytse-client returns.","loadWhen":"When parsing, validating, or persisting returned data","url":"/skills/pytse-client/references/data-dictionary.md"},{"path":"scripts/_jsonio.py","kind":"script","title":"_jsonio.py","summary":"Private helpers shared by the bundled scripts: JSON output, error envelopes, frame normalization.","loadWhen":"Internal — imported by the scripts, never run directly","url":"/skills/pytse-client/scripts/_jsonio.py"},{"path":"scripts/download_history.py","kind":"script","title":"download_history.py","summary":"CLI: download OHLCV for one or all symbols as JSON.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/download_history.py"},{"path":"scripts/ticker_snapshot.py","kind":"script","title":"ticker_snapshot.py","summary":"CLI: fundamentals + last board for one symbol.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/ticker_snapshot.py"},{"path":"scripts/client_types.py","kind":"script","title":"client_types.py","summary":"CLI: حقیقی/حقوقی history.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/client_types.py"},{"path":"scripts/financial_index.py","kind":"script","title":"financial_index.py","summary":"CLI: index snapshot + history.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/financial_index.py"},{"path":"scripts/get_orderbook.py","kind":"script","title":"get_orderbook.py","summary":"CLI: historical five-level book.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/get_orderbook.py"},{"path":"scripts/get_trade_details.py","kind":"script","title":"get_trade_details.py","summary":"CLI: ticks or aggregated intraday bars.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/get_trade_details.py"},{"path":"scripts/get_stats.py","kind":"script","title":"get_stats.py","summary":"CLI: key stats universe for filter writing.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/get_stats.py"},{"path":"scripts/resolve_symbol.py","kind":"script","title":"resolve_symbol.py","summary":"CLI: search TSETMC and normalize Arabic/Persian letters.","loadWhen":"Execute, do not load into context","url":"/skills/pytse-client/scripts/resolve_symbol.py"},{"path":"scripts/smoke.py","kind":"script","title":"smoke.py","summary":"Offline runtime self-test: imports, symbols corpus, known-symbol resolution.","loadWhen":"After install, to verify the runtime","url":"/skills/pytse-client/scripts/smoke.py"},{"path":"assets/tools.json","kind":"asset","title":"tools.json","summary":"Machine-readable tool catalog matching this studio.","loadWhen":"When registering tools with a host agent","url":"/skills/pytse-client/assets/tools.json"}],"tools":[{"name":"all_symbols","category":"universe","summary":"List every symbol known to pytse-client (from bundled symbols_name.json plus live appends).","pythonApi":"pytse_client.all_symbols()","script":null},{"name":"resolve_symbol","category":"universe","summary":"Resolve a Persian name to TSETMC index, ISIN-adjacent ids, and old indexes for delisted rows.","pythonApi":"pytse_client.download.get_symbol_info(symbol)","script":"scripts/resolve_symbol.py"},{"name":"download_history","category":"history","summary":"Download daily OHLCV for one, many, or all symbols. Optional Jalali column and split-adjusted prices.","pythonApi":"tse.download(symbols, write_to_csv=False, include_jdate=False, adjust=False)","script":"scripts/download_history.py"},{"name":"download_client_types","category":"flow","summary":"Retail (حقیقی) vs institutional (حقوقی) daily buy/sell counts, volumes, values, and ownership change.","pythonApi":"tse.download_client_types_records(symbols, write_to_csv=False, include_jdate=False)","script":"scripts/client_types.py"},{"name":"download_financial_indexes","category":"index","summary":"Download OHLCV history for TSE financial indexes, or all of them.","pythonApi":"tse.download_financial_indexes(symbols, write_to_csv=False, include_jdate=False)","script":"scripts/financial_index.py"},{"name":"financial_index_snapshot","category":"index","summary":"Live-ish snapshot of an index: last_value, last_update, high, low, history, intraday_price.","pythonApi":"tse.FinancialIndex(symbol)","script":"scripts/financial_index.py"},{"name":"ticker_snapshot","category":"ticker","summary":"Full Ticker board: title, group, EPS, P/E, NAV, float, market cap, best bid/ask, state, last prices.","pythonApi":"tse.Ticker(symbol, index=None, adjust=False)","script":"scripts/ticker_snapshot.py"},{"name":"ticker_realtime","category":"ticker","summary":"Five-level live book plus last trade, state, and حقیقی/حقوقی trade summaries.","pythonApi":"ticker.get_ticker_real_time_info_response()","script":"scripts/ticker_snapshot.py"},{"name":"ticker_shareholders","category":"ownership","summary":"Current major shareholders table. Float ≈ 100 - sum(percentage).","pythonApi":"ticker.shareholders","script":"scripts/ticker_snapshot.py"},{"name":"ticker_shareholders_history","category":"ownership","summary":"Daily major-holder history. Slow. Do not parallelize across symbols.","pythonApi":"ticker.get_shareholders_history(from_when, to_when, only_trade_days=True)","script":null},{"name":"ticker_trade_details","category":"intraday","summary":"Last trading day's tick tape for a symbol (time, volume, price).","pythonApi":"ticker.get_trade_details()","script":null},{"name":"get_trade_details","category":"intraday","summary":"Historical ticks or aggregated intraday bars (30s, 1m, 5m, 10m, 15m, 30m, 1h) for a date range.","pythonApi":"tse.get_trade_details(symbol, start_date, end_date=None, to_csv=False, timeframe=None, aggregate=False)","script":"scripts/get_trade_details.py"},{"name":"get_orderbook","category":"intraday","summary":"Historical five-level order book between two dates. Optional diff-only faster payload.","pythonApi":"tse.get_orderbook(symbol, start_date, end_date=None, to_csv=False, ignore_date_validation=False, diff_orderbook=False, async_requests=True)","script":"scripts/get_orderbook.py"},{"name":"get_asks_and_bids","category":"intraday","summary":"Market-wide top-of-book snapshot from MarketWatchInit — no symbol parameter; filter the returned frame by symbol.","pythonApi":"tse.get_asks_and_bids(to_csv=False, base_path=None)","script":null},{"name":"get_stats","category":"screener","summary":"Universe key statistics used for TSETMC filter-writing: averages, client types, market-watch fields.","pythonApi":"tse.get_stats(base_path=None, to_csv=False)","script":"scripts/get_stats.py"},{"name":"ticker_total_shares_history","category":"ownership","summary":"Async history of share count (capital increases).","pythonApi":"await ticker.get_total_shares_history_async(from_when, to_when, only_open_days=True)","script":null}]}