{"adoption": {"forks": 56, "observed_at": "2026-08-28T04:03:36.222938+00:00", "stars": 1104}, "canonical_url": "https://ross.abutalabs.com/products/thread-notebook", "card": {"archived": false, "artifact_type": "application", "description": "AI-powered Jupyter Notebook. Use AI to generate and edit code cells, automatically fix errors, and chat with your data", "domain": ["data-science", "large-language-models", "developer-tools", "analytics"], "enriched": true, "function": ["llm-inference", "chatbot", "data-science", "developer-tools"], "health_score": 87, "homepage": null, "language": "JavaScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["alishobeiri/thread-notebook"], "name": "alishobeiri/thread-notebook", "platform": ["python", "cross-platform", "self-hosted"], "pushed_at": "2026-06-01T05:08:36+00:00", "repo": "alishobeiri/thread-notebook", "stars": 1104, "tags": ["jupyter-notebook", "ai-copilot", "notebook", "ollama", "code-generation", "data-analysis"], "topics": ["analysis", "analytics", "data-science", "jupyter", "jupyter-notebook", "jupyter-notebooks", "jupyterhub", "jupyterlab", "python", "ai", "ollama", "react", "reactjs"], "urls": [], "use_cases": ["generate jupyter notebook cells from natural language", "ai copilot for data analysis notebooks", "automatically fix errors in python notebook cells", "chat with my csv data in a notebook", "offline jupyter alternative using ollama", "edit notebook code with natural language prompts"], "what_it_is": "Thread is an AI-powered Jupyter Notebook alternative that integrates an AI copilot into the notebook editing experience. It runs locally and can use Ollama or your own API key to generate and edit code cells, fix errors, and chat with your data.", "when_to_avoid": ["you need the full Jupyter ecosystem of extensions and kernels", "you require a non-AGPL license for commercial embedding", "you don't want any AI features in your notebooks"], "when_to_choose": ["you want a Jupyter-style notebook with built-in AI assistance", "you need a fully local/offline AI notebook via Ollama", "you want automatic error explanation and fixing while doing data analysis"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/thread-notebook", "repo": "alishobeiri/thread-notebook", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "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:03:36.222938+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.222938+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:44:43.162929+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e71b292e020a7f13ece223b03ef500577455d60503a069eaddf13e7dc076cb6a", "fetched_at": "2026-08-28T04:03:36.222938+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alishobeiri/thread-notebook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 59, "rhythm": 31}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 834, "days_push": 93, "days_rel": 250, "gap_med": null, "n_releases_24m": 1}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}