{"adoption": {"forks": 252, "observed_at": "2026-08-28T04:05:07.724310+00:00", "stars": 1586}, "canonical_url": "https://ross.abutalabs.com/products/yakgpt", "card": {"archived": false, "artifact_type": "application", "description": "Locally running, hands-free ChatGPT UI", "domain": ["large-language-models", "chatbots", "artificial-intelligence", "web-development", "speech-processing"], "enriched": true, "function": ["chatbot", "speech-recognition", "tts", "llm-inference", "chat-interface"], "health_score": 20, "homepage": "https://yakgpt.vercel.app", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["yakGPT/yakGPT"], "name": "yakGPT/yakGPT", "platform": ["browser", "cross-platform"], "pushed_at": "2024-05-08T23:58:37+00:00", "repo": "yakGPT/yakGPT", "stars": 1586, "tags": ["chatgpt", "openai-api", "voice-mode", "whisper", "eleven-labs", "azure-speech", "self-hosted-ui", "nextjs", "web-server", "nodejs"], "topics": [], "urls": [], "use_cases": ["chat with gpt-4 in the browser using my own api key", "hands-free voice chat with chatgpt using my microphone", "self-host a chatgpt interface without analytics or tracking", "faster chatgpt ui that calls the openai api directly", "speech to text dictation for ai chat prompts", "text to speech responses for ai conversations", "run a chatgpt client locally on localhost"], "what_it_is": "YakGPT is a locally running, browser-based ChatGPT UI that connects directly to the OpenAI API with your own key. It adds hands-free voice interaction via speech-to-text (Azure, Whisper) and text-to-speech (Azure, Eleven Labs) while keeping all state in localStorage.", "when_to_avoid": ["you need a backend, team features, or shared chat history", "you want provider-agnostic support beyond OpenAI, Azure, and Eleven Labs", "you need an actively developed project with frequent updates", "you want a mobile app rather than a browser-based UI"], "when_to_choose": ["you want a privacy-conscious ChatGPT client with no analytics and local-only state", "you prefer voice interaction over typing", "you want lower latency by hitting the OpenAI API directly instead of the official UI", "you want to self-host or run the UI locally with your own API key"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/yakgpt", "repo": "yakGPT/yakGPT", "role": "main", "score": 30}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "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:07.724310+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:07.724310+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:55:30.507678+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cb90bffaeb901c7b2ab3c8b1543f4ddc7d64e34f0fabbe090cd456d9784c1033", "fetched_at": "2026-08-28T04:05:07.724310+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yakGPT/yakGPT"}, {"content_hash": "ebca4cb012f076a6601f863b7853f187865037032db31354684d43be98df0834", "fetched_at": "2026-08-29T11:26:17.030416+00:00", "kind": "homepage", "missing": false, "url": "https://yakgpt.vercel.app"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 89, "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": 1252, "days_push": 847, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 30, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}