Model or dataset
szczyglis-dev/py-gpt avatar
szczyglis-dev/py-gpt

PyGPT: a Python desktop shell for many model providers

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

1,918 stars345 forksPythonNOASSERTION

At a glance

What is it?
PyGPT is an open source desktop assistant that wraps OpenAI, Gemini, Claude, Grok, Perplexity, DeepSeek and local Ollama models behind one interface, with LlamaIndex file chat, plugins, MCP and an agents mode. The judgement: it is broad and configurable, but the breadth is also the maintenance surface, and the licence is not a standard SPDX identifier.
Who is it for?
Adopt PyGPT if you want one desktop application that can talk to OpenAI, Gemini, Claude, Grok, Perplexity, DeepSeek and a local Ollama instance without writing provider glue, and if you are comfortable running a Python application that executes code and system commands through its plugins. Do not adopt it if you need a stable, narrow tool with a predictable release cadence, or if you cannot accept a repository whose licence is reported as NOASSERTION.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

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

DEEP OPEN-SOURCE ANALYSIS

The problem PyGPT solves: one desktop client for many model APIs

If you use more than one model provider, you end up with a browser tab per vendor, a separate API key per vendor, and no shared conversation history. PyGPT is a desktop application that puts those providers behind one window. The README lists OpenAI (GPT-6 Astra, GPT-5.6, GPT-4, o1, o3), Google Gemini, Anthropic Claude, xAI Grok, Perplexity / Sonar and DeepSeek, plus anything reachable through HuggingFace, LlamaIndex, OpenAI-compatible APIs and a local Ollama install. The target user is someone who wants to switch between a hosted model and a local one without changing tools, and who is willing to supply their own API keys. The README states plainly that the application uses your own credentials and that local models do not require external API credentials. That is the whole value proposition: a single local client, your keys, your machine.

How the pieces fit: modes, LlamaIndex and the plugin layer

PyGPT is organised around modes rather than around a single chat box. The README enumerates eleven: Chat, Chat with Files, Realtime plus audio, Research (Perplexity), Completion, Image and Video generation, Experts, Computer use, Agents v2 (beta), Agents and Autonomous Mode. Each mode changes what the application sends to the provider and what it renders back. Chat with Files is the LlamaIndex integration: documents such as txt, pdf, csv, html, md, docx, json, epub, xlsx, xml, webpages, Google, GitHub, video and audio, and images are embedded into a vector database, and the README says the app handles automated embedding. Conversation history can also be supplied as additional context, which means the retrieval source is not only your files but your own past exchanges. The extension mechanism is a plugin layer with built-in entries for Files I/O, Code Interpreter, Web Search, Google, Facebook, X/Twitter, Slack, Telegram, GitHub and MCP, and the README says custom commands can be created. MCP support means the assistant can reach external tool servers through that protocol rather than only through bundled plugins. Agents v2 is described as an orchestrated multi-agent mode with a user-facing Orchestrator and dynamically managed worker agents, and it is labelled beta in both the feature list and the mode list, which is the honest signal about where the instability sits.

Installation paths and the version constraint that matters first

There are three routes. The README lists compiled binaries for Linux and Windows 10 and 11, downloadable from https://pygpt.net, which you extract or install and then run. There is no Mac binary, and the README says so directly: on Mac you must run PyGPT from PyPi or from source. The package name on PyPi is pygpt-net, not pygpt, so the command is pip install pygpt-net. The README also lists a Snap Store build and a Microsoft Store listing. Before any of that, check your interpreter: the README states Python >=3.10, <3.14. That upper bound is not decorative. A Python 3.14 environment will not satisfy the declared constraint, and a 3.9 environment will not either. On Mac, running from source means you are responsible for the GUI dependencies that the Linux and Windows binaries would otherwise bundle, and the README does not enumerate those in the material available here, so treat the source route as the one with the least documented support.

The plugin layer is also the risk surface

PyGPT ships a Python/OS tool with real-time Python and IPython execution, a Code Interpreter plugin, and plugins that give the assistant access to the local filesystem and the ability to run system commands. The README lists these as features. They are also the reason this application deserves more caution than a plain chat client. An assistant that can write and execute Python, read and write files, and run system commands is, from the operating system's point of view, a program with your privileges. The README notes that models can run Python and system or custom commands, transfer files and call external APIs. That is a deliberate design decision, and it is the same decision that makes the tool useful for automation. The consequence is that the trust boundary is not the model provider's API; it is whatever the model decides to emit into the Code Interpreter. Nothing in the supplied material describes a sandbox, a permission prompt per command, or a capability restriction on the plugins, so the safe assumption is that there is none and that you should run this in an environment you are willing to have modified. The README does not claim otherwise; it simply does not address the question.

Where PyGPT is the wrong tool

The breadth is the limitation. A project that supports OpenAI, Gemini, Claude, Grok, Perplexity, DeepSeek, HuggingFace, LlamaIndex, OpenAI-compatible endpoints and Ollama, plus eleven modes, plus image generation, video generation, speech synthesis across five services, speech recognition across five services, a calendar, a notepad, a painter, a node-based agents builder and a task scheduler, has a large surface to keep working. The release notes in the supplied material show three releases within four days in September 2026 (2.8.10, 2.8.12, 2.8.13), which is a fast cadence and, for anyone pinning a version, a reason to pin it. If you want a small library that does one thing, this is not it. If you want a headless component to embed in a service, this is not it either: PyGPT is a desktop application, and the README frames it as such. And if you need a permissively licensed dependency with a clear SPDX identifier, the repository's licence field reports NOASSERTION, which means GitHub could not classify it automatically. That is not proof of a restrictive licence, but it does mean you cannot assume MIT or Apache-2.0 without opening the licence file. The README describes the application as free and open source; the licence identifier in the repository metadata does not confirm which licence that is.

What it is not: a comparison with a plain Ollama client

The closest alternative for a local-first user is Ollama's own tooling plus a thin client, or a minimal chat front end pointed at a single provider. The difference in approach is architectural. A single-provider client assumes one endpoint, one authentication scheme and one response format, so it stays small and its failure modes are few. PyGPT assumes many endpoints and normalises them behind modes and plugins, which is why it needs LlamaIndex for retrieval, separate speech layers for synthesis and recognition, and a plugin registry for tools. The trade is explicit: you get provider portability and file chat in one application, and in exchange you accept a larger dependency tree, a faster release cadence, and a beta agents mode. If your work is entirely local and entirely text, the simpler client will be easier to reason about. If your work moves between a hosted model and a local one, and you want the same conversation history and the same file index in both, PyGPT is doing work that the simple client does not attempt.

Maintenance, licence and what to check before you commit

The maintenance cost is the dependency surface. Speech synthesis alone spans OpenAI, Microsoft Azure, Google Cloud / GenAI, Eleven Labs and xAI. Speech recognition spans OpenAI Whisper (API or local), Google, Google Cloud / GenAI, Bing and xAI Grok Voice. Each of those is an external API with its own key, quota and deprecation schedule, and the README notes that additional API keys may be required depending on the model and provider. Upgrades arrive frequently, as the September 2026 release timestamps show, so a pinned version is the practical choice for anything you depend on. On licensing, the repository metadata reports NOASSERTION, and the README calls the application free and open source without naming a licence in the material available here. I cannot tell you which terms apply. Read the licence file in the repository before you ship this inside a company, and if the terms are unclear, ask someone qualified rather than guessing from the README's wording.

Editorial conclusion

Adopt PyGPT if you want one desktop application that can talk to OpenAI, Gemini, Claude, Grok, Perplexity, DeepSeek and a local Ollama instance without writing provider glue, and if you are comfortable running a Python application that executes code and system commands through its plugins. Do not adopt it if you need a stable, narrow tool with a predictable release cadence, or if you cannot accept a repository whose licence is reported as NOASSERTION. Before installing, check the licence file in the repository yourself, confirm the Python version constraint of >=3.10 and <3.14 against your interpreter, and decide whether the Agents v2 beta mode is something you actually need, because it is the part of the project most likely to change.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. szczyglis-dev/py-gpt on GitHub
Community notes

Community notes