{"adoption": {"forks": 335, "observed_at": "2026-08-28T04:05:49.640250+00:00", "stars": 1892}, "canonical_url": "https://ross.abutalabs.com/products/py-gpt", "card": {"archived": false, "artifact_type": "application", "description": "Desktop AI Assistant powered by GPT-5, GPT-4, o1, o3, Gemini, Claude, Ollama, DeepSeek, Perplexity, Grok, Bielik, chat, vision, voice, RAG, image and video generation, agents, tools, MCP, plugins, speech synthesis and recognition, web search, memory, presets, assistants,and more. Linux, Windows, Mac", "domain": ["artificial-intelligence", "large-language-models", "chatbots", "desktop-applications", "cross-platform"], "enriched": true, "function": ["chatbot", "agent-framework", "rag", "speech-recognition", "tts", "llm-inference", "image-processing", "video-processing", "mcp", "plugin-system", "chat-interface"], "health_score": 99, "homepage": "https://pygpt.net", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["szczyglis-dev/py-gpt"], "name": "szczyglis-dev/py-gpt", "platform": ["windows", "python", "cross-platform"], "pushed_at": "2026-08-19T18:15:55+00:00", "repo": "szczyglis-dev/py-gpt", "stars": 1892, "tags": ["desktop-ai-assistant", "openai", "gpt-4", "gpt-5", "gemini", "claude", "ollama", "llama-index", "voice-assistant", "image-generation", "video-generation", "autonomous-agents", "chat-with-files", "ai-agents", "retrieval-augmented-generation", "linux", "macos", "desktop"], "topics": ["artificial-intelligence", "chatbot", "desktop-app", "openai", "ai", "ai-assistant", "llm", "autonomous-agent", "llama-index", "gpt-4", "claude", "gemini", "o1", "ollama", "deepseek", "perplexity", "grok", "gpt-5", "mcp", "sora2"], "urls": [], "use_cases": ["chat with gpt-4 and claude locally on my desktop", "talk to my pdf files with an ai assistant", "run a local ai assistant with ollama models", "generate images and videos with ai from a desktop app", "voice-controlled ai assistant with speech recognition and synthesis", "build autonomous ai agents that run system commands", "connect mcp tools to a desktop chat assistant", "ai assistant with web search and plugins"], "what_it_is": "PyGPT is an open-source, all-in-one desktop AI assistant for Linux, Windows, and Mac, written in Python. It supports chat, agents, vision, voice, RAG-based chat with files, image/video generation, and multiple LLM providers including OpenAI, Gemini, Claude, Ollama, and DeepSeek.", "when_to_avoid": ["you need a headless API or server-side integration rather than a GUI app", "you only want a lightweight CLI or library for LLM calls", "you require a fully offline assistant without any API keys (local Ollama works, but many features need cloud providers)", "you need a mobile or web-based assistant"], "when_to_choose": ["you want a ChatGPT-like assistant running locally on your desktop", "you need multi-provider LLM support (OpenAI, Gemini, Claude, Ollama) in one app", "you want chat with your own files via RAG, voice, vision, and agents in a single tool", "you need a plugin/MCP-extensible assistant with presets and conversation memory"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/py-gpt", "repo": "szczyglis-dev/py-gpt", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "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:05:49.640250+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.640250+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:12:58.543693+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "100e9d7bdd9287ef46d1e3ec936025a80d5b91c67f2c02b1b50feba41c8213d2", "fetched_at": "2026-08-28T04:05:49.640250+00:00", "kind": "readme", "missing": false, "url": "https://github.com/szczyglis-dev/py-gpt"}, {"content_hash": "e37794effad802fc617f23f8f9a353e5f82a3aa3e88acab7e4166f0160b1587d", "fetched_at": "2026-08-29T10:52:08.291699+00:00", "kind": "homepage", "missing": false, "url": "https://pygpt.net"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 88, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1242, "days_push": 14, "days_rel": 14, "gap_med": 0, "n_releases_24m": 246}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}