{"adoption": {"forks": 166, "observed_at": "2026-08-28T04:06:06.678167+00:00", "stars": 2024}, "canonical_url": "https://ross.abutalabs.com/products/witsy", "card": {"archived": false, "artifact_type": "application", "description": "Witsy: desktop AI assistant / universal MCP client", "domain": ["artificial-intelligence", "large-language-models", "chatbots", "desktop-applications", "developer-tools"], "enriched": true, "function": ["chatbot", "llm-inference", "mcp", "rag", "speech-recognition", "tts", "image-processing", "search-engine", "agent-framework"], "health_score": 84, "homepage": null, "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Kochava-Studios/witsy"], "name": "Kochava-Studios/witsy", "platform": ["windows", "cross-platform"], "pushed_at": "2026-04-23T17:32:21+00:00", "repo": "Kochava-Studios/witsy", "stars": 2024, "tags": ["byok", "mcp-client", "ollama", "multi-provider", "electron-app", "ai-assistant", "prompt-anywhere", "text-to-image", "text-to-speech", "ai-agents", "macos", "linux", "desktop", "electron"], "topics": ["anthropic", "genai", "groq", "ollama", "ollama-gui", "openai", "electron-app", "electronjs", "vuejs", "vuejs3", "deepseek", "gemini", "googleai", "mistral", "mistralai", "openrouter", "mcp", "mcp-client"], "urls": [], "use_cases": ["chat with multiple llm providers from one desktop app", "run mcp servers with any llm", "use ollama models locally in a chat gui", "generate images and videos from text prompts", "dictate speech to text and read answers aloud", "run ai commands on highlighted text in any application", "bring your own api keys byok assistant", "search the web with llm augmented answers"], "what_it_is": "Witsy is a cross-platform desktop AI assistant built with Electron and Vue 3 that lets users chat with many LLM providers using their own API keys or local Ollama models. It doubles as a universal MCP client, allowing MCP servers to be used with virtually any LLM, and includes image/video generation, speech features, and prompt-anywhere commands.", "when_to_avoid": ["you need a headless or server-side API rather than a GUI app", "you want a fully managed service without supplying your own API keys", "you only need a lightweight terminal or CLI chat client"], "when_to_choose": ["you want one desktop app for OpenAI, Anthropic, Gemini, Mistral, Groq and more", "you need MCP tool support with models that lack native MCP", "you prefer local models via Ollama or LM Studio", "you want speech-to-text, TTS, and image generation alongside chat"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/witsy", "repo": "Kochava-Studios/witsy", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "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:06:06.678167+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.678167+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:59:48.746509+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fd2c5332614246092018b40293a42a836926b74d0154cf98e5ef650bafb1b5", "fetched_at": "2026-08-28T04:06:06.678167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Kochava-Studios/witsy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 78, "longevity": 61, "rhythm": 61}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 860, "days_push": 132, "days_rel": 182, "gap_med": 2, "n_releases_24m": 132}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}