CodePilot: a multi-provider AI agent desktop client with a BSL-1.1 catch
A multi-model AI agent desktop client — connect any AI provider, extend with MCP & skills, control from your phone. Built with Electron + Next.js.
At a glance
- What is it?
- CodePilot wraps Anthropic-compatible and OpenAI-compatible endpoints, MCP servers, and chat bridges in an Electron shell. The interesting question is not the feature list but the licence and the Claude Code CLI dependency underneath it.
- Who is it for?
- Adopt CodePilot if you already run several model providers, want MCP servers and skills in one desktop window, and are comfortable with a source-available licence. Skip it if you need an OSI-approved licence, a headless or server deployment, or a tool that works without the Claude Code CLI.
- 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 last received commits 11 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 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What CodePilot is actually for
The problem CodePilot addresses is provider sprawl. If you use Anthropic for one task, a Chinese provider such as Zhipu GLM or Kimi for another, and Ollama for anything that must stay local, you normally juggle separate clients with separate histories. CodePilot puts those behind one chat window and lets you switch providers and models mid-conversation without losing context, according to the README. The stated provider list covers direct API access (Anthropic, OpenRouter), cloud platforms (AWS Bedrock, Google Vertex AI), a set of Chinese providers, local runtimes (Ollama, LiteLLM), and any custom Anthropic-compatible or OpenAI-compatible endpoint. The audience is developers and technical users on macOS, Windows or Linux who want a graphical agent rather than a terminal session. The repository topics (electron, gui, nextjs, claude-code) match that positioning. It is not a library and not a hosted service: it is an installable desktop app.
The Claude Code CLI sits underneath the agent features
This is the part worth reading twice. The README describes CodePilot as having grown from a coding tool into a general-purpose agent, and the Quick Start note says installing the Claude Code CLI via npm install -g @anthropic-ai/claude-code unlocks direct file editing, terminal commands and git operations. It is described as recommended but not required for basic chat. So the split is: chat works against whatever provider you configure, while the file-and-shell capabilities depend on a separate Anthropic package being present on the machine. The README also lists a CLI import feature for Claude Code .jsonl session history, which reinforces that the two are meant to be used together. If your organisation blocks that npm package, expect a chat client rather than a coding agent. The documentation does not spell out exactly which features degrade, so treat the boundary as unverified until you test it yourself.
How the pieces fit: Electron shell, Next.js UI, SQLite on disk
The stack is TypeScript throughout, with Electron for the desktop shell and Next.js for the interface. The README states that local storage uses SQLite in WAL mode and that all data stays on the machine. That is the data-flow claim to hold onto: conversations, usage analytics and scheduler state are local, while model calls go out to whichever provider you configured. Extensions come in two shapes. MCP servers are registered over stdio, sse or http with runtime status monitoring. Skills are described as custom, project-level or global, with a skills.sh marketplace as an installation source. A Task Scheduler runs recurring jobs on cron expressions or intervals, and a Remote Bridge connects Telegram, Feishu, Discord, QQ and WeChat so a phone message can reach the desktop session. The Assistant Workspace adds persona files (soul.md, user.md, claude.md, memory.md) plus onboarding and daily check-ins, which is where the persistent-memory behaviour is defined.
Getting it running: two paths, and only one of them is signed
Path A is the release download. The README lists macOS .dmg builds for arm64 and x64, a Windows .exe installer for x64, and Linux AppImage, deb and rpm packages for x64 and arm64. After launching, you configure a provider under Settings > Providers by adding an API key, and the README says presets exist for the major providers. Update behaviour differs by platform and this is stated plainly: official macOS stable builds check, download and install signed updates in the app; Windows can update in-app from official GitHub Release packages but those packages are unsigned, and the first supported Windows version must be installed manually; Linux releases remain manual downloads. Path B is the source build. Prerequisites are Node.js 18+ and npm 9+, then git clone https://github.com/op7418/CodePilot.git, cd CodePilot, npm install, and either npm run dev for browser mode at http://localhost:3000 or npm run electron:dev for the full desktop app. The README does not document a build step for producing your own installers, so a source build is a development workflow rather than a packaging one.
The licence is source-available, not open source
The README badge says BSL-1.1, while the repository metadata reports the licence as NOASSERTION. Those two signals disagree in form, and the practical reading is that the terms live in the LICENSE file rather than in a standard SPDX identifier that tooling can classify. Business Source License projects typically grant broad non-production use and restrict production or competing use until a change date, after which the licence converts to something more permissive. The change date, the Additional Use Grant and the conversion target are the three things that determine whether you can ship CodePilot inside a commercial product. None of them appear in the material available here. If your legal or procurement process requires an OSI-approved licence, this project will not clear it on the strength of the README alone. Read the LICENSE file directly before you build anything on top of it. Nothing here is legal advice.
Where it is the wrong tool
Three cases stand out. First, headless and server-side use: this is an Electron desktop application, and the source path offers browser mode on localhost, which is a development convenience rather than a supported multi-user deployment. There is no documentation of a server mode, authentication layer or shared workspace. Second, licence-sensitive environments, as above. Third, anyone who wants a single-provider, single-purpose coding agent: the multi-provider abstraction, the Assistant Workspace, the Media Studio and the phone bridges are the product, and if you do not want them you are paying the complexity cost for nothing. There is also a release-cadence signal worth noting. The three most recent releases listed are v0.67.15, v0.67.14 and v0.67.13, published on 2026-09-05, 2026-09-05 and 2026-09-01. Two releases in one day at a 0.67 minor version suggests fast iteration. Fast iteration on a desktop app that stores your session history in SQLite means you should check whether schema migrations are documented before you rely on it for long-lived archives. The README does not say.
What you would use instead, and how it differs
The closest comparison in the material is the Claude Code CLI itself, which CodePilot already wraps. The CLI is a terminal tool tied to Anthropic's models, and CodePilot is a graphical shell that adds other providers, MCP management, skills, a scheduler and chat bridges on top. If your work is Anthropic-only and you are comfortable in a terminal, the CLI is the smaller dependency and CodePilot's main value proposition disappears. A second comparison point is Ollama, which the README lists as a supported local provider rather than a competitor: Ollama serves local models over an API and has no desktop chat client of this kind in the material, so the two compose rather than compete. For teams that want a hosted, zero-install option, CodePilot is the wrong shape entirely. The honest framing is that CodePilot is a front end. Its differentiator is breadth of providers and extensions in one window, not any capability the underlying providers lack.
Maintenance cost and what to verify first
Running CodePilot has three recurring costs. The first is the provider bill: the README advertises token usage tracking and cost estimates with daily charts, which implies you are expected to watch spend across several accounts. The second is update handling, and it is uneven by platform. macOS gets signed in-app updates; Windows gets in-app updates from unsigned GitHub Release packages after a manual first install; Linux stays manual. If you run Linux across a team, budget for manual upgrade work. The third is extension surface. MCP servers are registered over stdio, sse or http with runtime status monitoring, and skills can come from a marketplace, so each added server and skill is something you now depend on and must keep working. Before adopting, verify four concrete things: the LICENSE file's BSL-1.1 change date and Additional Use Grant; whether your platform path is signed or manual; whether the features you need survive without npm install -g @anthropic-ai/claude-code; and whether SQLite schema changes between releases are documented, given the pace of v0.67.x releases.
Editorial conclusion
Adopt CodePilot if you already run several model providers, want MCP servers and skills in one desktop window, and are comfortable with a source-available licence. Skip it if you need an OSI-approved licence, a headless or server deployment, or a tool that works without the Claude Code CLI. Before installing, read the LICENSE file to confirm the BSL-1.1 change date and the Additional Use Grant, and check whether your platform gets signed in-app updates or manual downloads only.
Community notes