Model or dataset
Kochava-Studios/witsy avatar
Kochava-Studios/witsy

Witsy: a desktop AI assistant that runs MCP servers against almost any model

Witsy: desktop AI assistant / universal MCP client

2,033 stars171 forksTypeScriptAGPL-3.0

At a glance

What is it?
Witsy is an Electron desktop client that connects chat, image, speech and MCP tooling to whichever provider you already pay for. The interesting part is the MCP layer; the cost is a BYOK setup and an AGPL-3.0 licence.
Who is it for?
Adopt Witsy if you already hold API keys for one or more providers and want a single desktop surface for chat, RAG over local files and MCP servers, and you are comfortable with AGPL-3.0. Skip it if you need a hosted, multi-user deployment, if you cannot ship AGPL-3.0 obligations, or if you want a client that works without any provider key at all.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 160 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap Witsy fills: MCP tools without swapping your model

Most MCP clients assume you are using one vendor's models. Witsy's README makes the claim directly: it is a "universal MCP client" and "allows you to run MCP servers with virtually any LLM". That is the product thesis. If you have an Anthropic key for one task, a local Ollama model for another, and a Groq key because it is fast, Witsy lets the same MCP server back all three instead of locking tool use to a single provider.

The audience follows from that. This is a tool for individual developers and technical users who already hold provider keys and want a desktop surface rather than a web app. It is explicitly BYOK: the README states you "need to have API keys for the LLM providers you want to use", with Ollama offered as the free local path. There is no bundled credit and no proxy account. Anyone expecting to sign in and start typing will be stopped at the settings screen.

How the pieces fit: Electron, Vue, and a provider abstraction

The repository is a TypeScript Electron application. package.json names the entry point as .vite/build/main.js and the build tooling is Electron Forge, with separate Vite configs for the main process, the preload script and the renderer. The renderer is Vue 3, which the repository topics confirm. So the shape is conventional: a Node main process that can spawn child processes and touch the filesystem, a preload bridge, and a Vue UI on top.

That architecture is what makes the MCP support plausible. MCP servers are local processes, and an Electron main process is a reasonable place to launch and supervise them. The same applies to the RAG feature, which the README describes as searching "your local files" and handing the results to the LLM, and to local Whisper for speech-to-text. None of that would work from a browser tab without a helper.

The provider list is long and deliberately shallow. Chat covers OpenAI, Anthropic, Google Gemini, xAI, Meta, Ollama, LM Studio, MistralAI, DeepSeek, OpenRouter, Groq, Cerebras and Azure OpenAI, plus "any provider who supports the OpenAI API standard". Image, video, speech-to-text and text-to-speech each have their own shorter list. The abstraction is the OpenAI-compatible API shape, which is why so many names appear at once and also why the feature depth per provider varies.

Installing Witsy and running a first MCP-backed chat

The README points at the releases page for binaries, and adds a Homebrew cask for macOS. That is the fastest path on a Mac:

bash
brew install --cask witsy

On Windows and Linux you download the installer from the releases page instead. There is no documented package manager route for those platforms in the README.

If you prefer to build from source, the README gives two commands. The first installs dependencies from the lockfile, the second starts Electron Forge in development mode:

bash
npm ci
npm start

Note that npm start runs with DEBUG=1 set in the script, so expect verbose logging in the terminal. The build also runs a postinstall step, node ./build/postinstall.mjs, which fires automatically after npm ci.

Before any chat works you need a key. Open the settings screen and paste one, for example an OpenAI key from platform.openai.com/api-keys or an Anthropic key from console.anthropic.com/settings/keys. For a free local path, install Ollama and download some models, as the README directs.

The README does not name a specific model tag, so check ollama.com/search for what is current. Once a provider is configured, the MCP side is what distinguishes Witsy. The README states that MCP servers can be run against virtually any LLM, and it lists Smithery.ai as an MCP repository source, which is where you would look for servers to add rather than writing one yourself.

Where Witsy gets awkward: keys, scope and the AGPL

The first limitation is the one the README is most honest about. Witsy is BYOK, so every capability has a separate prerequisite. Text-to-speech needs an OpenAI, fal.ai, Fireworks.ai, Groq, Speechmatics or Gladia key. Internet search needs a Tavily key. Embeddings for RAG need either an OpenAI key or an Ollama embedding model. A user who wants the full feature list is managing half a dozen credentials across as many dashboards, and each one has its own quota and failure mode.

The second is that the README's feature list is broad and the documentation depth is not. The section on chatting with documents ends mid-sentence in the README as published, and there is no documented rollback procedure, no migration guide for settings between versions, and no published compatibility matrix for MCP servers. The repository does carry a CHANGELOG.md and a CLAUDE.md, so version history exists, but the README is not a manual.

The third is licensing. Witsy is AGPL-3.0. For an individual running the app locally that is unremarkable. For a company that wants to embed Witsy in a product, or expose a modified version over a network, AGPL-3.0 carries source-availability obligations that a permissive licence would not. That is a reason to check with whoever handles licensing at your organisation before building on it, not after. Nothing here is legal advice; the point is that the licence is a real constraint on some adoption paths and not on others.

Witsy compared with a self-hosted web UI such as PyGPT

The comparison people search for is a PyGPT alternative, and the two differ in a way that matters more than the feature table. PyGPT is a Python desktop assistant, so its extension surface is Python plugins and its install story is a Python environment. Witsy is a packaged Electron binary with an npm build path, and its extension surface is MCP servers plus LLM plugins, which the README describes as including Python code execution and internet search.

The practical difference is who can extend it. A team that already writes MCP servers can point Witsy at them without touching Witsy's source. A team that wants to modify the assistant's internals is working in TypeScript and Vue against Electron Forge, which is a heavier toolchain than a Python plugin file. Witsy also leans into desktop integration in a way a web UI cannot: Prompt Anywhere injects generated text into whatever application has focus, and AI Commands run on highlighted text. Those are OS-level hooks, and they are the features that justify a desktop app over a browser tab.

Maintenance, releases and what an upgrade actually costs

The last push to the repository was on 2026-04-23, and the repository is not archived. The most recent listed release is v3.5.2 from 2026-03-04, following v3.5.1 and v3.5.0 earlier in the same quarter, so the release cadence through that period was roughly monthly. Note the mismatch: package.json declares version 3.6.0, which is ahead of the newest release on the list. That is normal for a development branch, but it means a source build reports a different version from the downloaded binary.

Upgrade cost is low for the packaged app, since it is a desktop binary from the releases page or a Homebrew cask, and both are replaced wholesale. The cost sits in configuration. Every provider key, MCP server definition and document repository lives in local application state, and the README does not document an export or import path for any of it. If you run Witsy on more than one machine, or you reinstall, plan to re-enter that configuration by hand. The repository does include a tests/e2e directory and a WITSY_HOME environment variable used by the end-to-end test config, which suggests application state is relocatable, but the README does not present WITSY_HOME as a supported user-facing setting.

Editorial conclusion

Adopt Witsy if you already hold API keys for one or more providers and want a single desktop surface for chat, RAG over local files and MCP servers, and you are comfortable with AGPL-3.0. Skip it if you need a hosted, multi-user deployment, if you cannot ship AGPL-3.0 obligations, or if you want a client that works without any provider key at all. Before committing, verify three things: that your provider key is accepted in the settings screen, that the MCP server you care about starts from Witsy rather than only from a terminal, and that the release you download matches the version in package.json, which reads 3.6.0 while the newest listed release is v3.5.2.

Frequently asked questions

What does the name Witsy mean?

The README does not explain the origin of the name. It only presents Witsy as a product name for the desktop AI assistant and universal MCP client.

What is a Witsy alternative if I do not want to use API keys?

The README offers Ollama as the alternative to paid providers: you install Ollama, download some models, and run them locally for free inside Witsy. If you want no key at all and no local runtime, the README describes no such mode.

How is Witsy different from Msty?

Witsy's README does not describe Msty, so a direct comparison is not possible here. What the README does state is that Witsy is a universal MCP client that can run MCP servers with virtually any LLM, which is the capability it positions itself around.

Official sources

  1. Issues
  2. Kochava-Studios/witsy on GitHub
  3. License: AGPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/kochava-studios-witsy.svg)](https://hysenlabs.com/projects/kochava-studios-witsy)