{"adoption": {"forks": 113, "observed_at": "2026-08-28T04:04:00.119395+00:00", "stars": 1211}, "canonical_url": "https://ross.abutalabs.com/products/opentslm", "card": {"archived": false, "artifact_type": "library", "description": "OpenTSLM: Time-Series Language Models for Reasoning over Multivariate Medical Text- and Time-Series Data", "domain": ["machine-learning", "large-language-models", "healthcare", "time-series", "artificial-intelligence"], "enriched": true, "function": ["machine-learning", "llm-training", "llm-inference", "nlp"], "health_score": 76, "homepage": "https://www.opentslm.com", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["OpenTSLM/OpenTSLM"], "name": "OpenTSLM/OpenTSLM", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-21T05:24:22+00:00", "repo": "OpenTSLM/OpenTSLM", "stars": 1211, "tags": ["time-series-language-model", "multimodal", "medical-ai", "ecg", "eeg", "huggingface", "research", "time-series-analysis", "gpu"], "topics": [], "urls": [], "use_cases": ["reason over ECG time series with natural language questions", "sleep staging from EEG readings using an LLM", "human activity recognition from accelerometer data", "generate captions and rationales for time series", "build patient-facing digital health applications with temporal reasoning", "fine-tune a language model on multivariate time-series data"], "what_it_is": "OpenTSLM is a family of Time-Series Language Models that integrate time series as a native modality into pretrained LLMs (Llama, Gemma), enabling natural-language reasoning over multivariate medical text and time-series data. It is a Python library available on PyPI, released under the MIT license by researchers from Stanford, ETH Zurich, and collaborators.", "when_to_avoid": ["you only need classical time-series forecasting without language reasoning", "you cannot access gated Hugging Face models like Llama or Gemma", "you need a production-ready clinical system rather than a research library", "you lack GPU resources for training or inference"], "when_to_choose": ["you need an LLM that natively understands time-series data alongside text", "you are doing research on multimodal temporal reasoning in medicine", "you want an open-source, MIT-licensed TSLM with pretrained checkpoints", "your tasks include ECG QA, sleep staging, HAR, or time-series captioning"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opentslm", "repo": "OpenTSLM/OpenTSLM", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.119395+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:18:02.571446+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "06709942a449bcda41ea764173e1735e9fbd772cb28d9f43943ed9be46cf5b13", "fetched_at": "2026-08-28T04:04:00.119395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenTSLM/OpenTSLM"}, {"content_hash": "868e475a2c81ccdd466bd8b28ae748c00b7b06695699fe281f55d1a839b1db98", "fetched_at": "2026-08-29T12:26:04.384764+00:00", "kind": "homepage", "missing": false, "url": "https://www.opentslm.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 34, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 476, "days_push": 43, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}