23 functions over the official SEC EDGAR APIs. Run them with one command; no Python to write.
GitHub (open source, also for OpenWebUI): https://github.com/lkcair/sec-finance-ai
Run once, and again after every install or update of this skill (updates replace the folder):
bash
cd {baseDir} && python3 -m venv .venv && .venv/bin/python -m pip install -r requirements.txt
requirements.txt pins every dependency to an exact version with SHA-256 hashes (Python 3.10+). On Windows use .venv\Scripts\python instead of .venv/bin/python.
Always use this exact form:
bash
{baseDir}/.venv/bin/python {baseDir}/scripts/cli.py <function> key=value key=value
{baseDir}/.venv/bin/python {baseDir}/scripts/cli.py list prints every function with its parameters. Only call functions from that list.query='"going concern"'.Missing dependency, run Setup, then retry.Find the filing URL: get_latest_10k, get_latest_10q, get_recent_8k_filings or get_company_filings (each result has filing_url). The content_preview from get_latest_10k/ get_latest_10q (10,000 characters) and get_recent_8k_filings (5,000) is only the start of the filing: when preview_is_partial is true, follow read_more and read on with step 3.
Optional size check before downloading: get_filing_size filing_url=URL returns the exact size from the EDGAR index and recommendation = read_text or link_only.
download_filing_text filing_url=URL answers in one of three modes:
mode: text: 50,000 characters per page. While has_more is true, call again with offset=<next_offset>.mode: search: add search='risk factors' to get snippets around each match with its position. Read around a match with offset=<position>.mode: link_only: the document is over 25 MB. Give the user filing_url and size_mb; do not try to read it.For numbers (revenue, net income, debt) use get_filing_content, get_company_concept or get_xbrl_frames instead of reading the text.
NeedCommandLatest annual / quarterly reportget_latest_10k ticker=AAPL / get_latest_10q ticker=AAPLRecent 8-K eventsget_recent_8k_filings ticker=AAPL limit=5Any form, any periodget_company_filings ticker=AAPL form_type=10-K,10-K/A limit=20 start_date=2015-01-01Read or search a filingdownload_filing_text filing_url=URL (add search='...' or offset=N)Exhibits inside a filingget_filing_documents filing_url=URLSearch all filings by wordsfull_text_search query='"supply chain"' form_type=8-K start_date=2025-01-01Key financials (XBRL)get_filing_content ticker=AAPL or get_company_concept ticker=AAPL concept=RevenuesCompare one metric across all companiesget_xbrl_frames concept=Revenues period=CY2024Insider trades (Form 4)get_insider_transactions ticker=TSLAActivist / large holdersget_beneficial_ownership ticker=GME schedule=13D (or 13G, all)A fund's portfolio (13F)get_13f_holdings ticker_or_cik=BRK-B or ticker_or_cik=1350694Recent IPOsget_recent_ipos days=30Find a companysearch_filings query=Apple
Tickers with a share class work either way ( BRK.B or BRK-B). Numeric CIKs work wherever a ticker is accepted.
get_company_filings, get_latest_10k, get_latest_10q, get_recent_8k_filings, analyze_8k_filing, get_proxy_statements, get_recent_iposget_filing_size, download_filing_text, get_filing_documents, get_filing_contentfull_text_search, search_filingsget_insider_transactions, get_beneficial_ownership, get_13f_holdingsget_company_facts, get_company_concept, get_available_metrics, get_xbrl_framesget_sec_api_status, get_available_functions, run_self_testForms include 10-K, 10-Q, 8-K, 20-F, 40-F, 6-K, DEF 14A, S-1, S-3, S-4, S-8, F-1, 424B4, 425, 13D/13G, 3/4/5, 13F-HR, 144, Form D, N-CSR, N-PORT, SC TO and amendments. Any other EDGAR form code is matched exactly.
https://*.sec.gov: every redirect hop is re-checked, and responses are size-capped while streaming.SEC_USER_AGENT="Your Name your@email.com" in the environment; otherwise a generic agent string is sent.