Model or dataset
op7418/CodePilot avatar
op7418/CodePilot

CodePilot: a multi-model AI agent desktop client from op7418

A multi-model AI agent desktop client — connect any AI provider, extend with MCP & skills, control from your phone. Built with Electron + Next.js.

6,495 stars702 forksTypeScriptNOASSERTION

At a glance

What is it?
CodePilot is an Electron and Next.js desktop client that talks to 17+ AI providers, adds MCP servers and skills, and can be driven from Telegram, Feishu, Discord, QQ or WeChat. It is a strong fit if you want one GUI over many models; it is the wrong tool if you want a command-line agent you can script.
Who is it for?
Adopt CodePilot if you want a single desktop GUI in front of several providers, need MCP servers and skills in one place, and are comfortable with a BUSL-1.1 licence for a private, non-commercial build. Skip it if you need a scriptable CLI agent, a permissively licensed dependency, or a client whose remote bridge you can audit, since the README documents the channels but not their authentication.
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 9 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 problem CodePilot targets: one desktop over many model providers

Most people who use AI assistants daily end up with three or four tabs, a terminal, and a browser session open at once. A Claude subscription lives in one place, a Qwen or GLM key in another, a local Ollama model somewhere else. CodePilot's answer is to put all of them behind a single Electron window and let you switch provider and model mid-conversation without losing context. The README lists 17+ providers out of the box, grouped as direct API (Anthropic, OpenRouter), cloud platforms (AWS Bedrock, Google Vertex AI), Chinese providers (Zhipu GLM, Kimi, Moonshot, MiniMax, Volcengine Ark, Xiaomi MiMo, Aliyun Bailian), local and self-hosted (Ollama, LiteLLM), and custom Anthropic-compatible or OpenAI-compatible endpoints. The intended user is not a beginner who wants one chatbot. It is someone already juggling several keys, who wants a file browser, a git panel and token cost charts in the same window as the conversation.

How the pieces fit: Electron shell, Next.js renderer, SQLite on disk

The repository layout makes the architecture fairly clear. There is an electron/ directory and an apps/ workspace, package.json declares "main": "dist-electron/main.js", and npm run electron:build runs next build before scripts/build-electron.mjs, so the Next.js app is the renderer and Electron is the shell around it. npm run dev starts plain Next.js on port 3000 for browser mode, while npm run electron:dev runs Next dev, an esbuild watcher and the Electron process together under concurrently. State is local: the README states that storage is SQLite in WAL mode and that all data stays on your machine. Extensions arrive through MCP servers over stdio, sse or http, plus skills that can be custom, project-scoped or global. The Remote Bridge is the piece that changes the shape of the product: Telegram, Feishu, Discord, QQ and WeChat become input channels, so a message sent from a phone is processed by the desktop client and the answer comes back to the desktop. That is an unusual design. Most desktop clients terminate at the desktop; here the desktop is the server.

Installing CodePilot and running a first conversation

The README offers two paths. Most users should take Path A: download the installer for macOS (Apple Silicon or Intel .dmg), Windows (.exe) or Linux (AppImage, deb or rpm) from the Releases page, launch it, then open Settings > Providers and add an API key for one supported provider. The README says presets exist for all major providers, so the step is picking one rather than hand-writing an endpoint.

The README also notes that installing the Claude Code CLI unlocks direct file editing, terminal commands and git operations, and calls it recommended but not required for basic chat. That command is:

bash
npm install -g @anthropic-ai/claude-code

Developers who want to build from source need Node.js 18+ and npm 9+. The README gives this sequence, where the first form runs a browser build on port 3000 and the second starts the full desktop app:

bash
git clone https://github.com/op7418/CodePilot.git
cd CodePilot
npm install
npm run dev              # browser mode at http://localhost:3000
# -- or --
npm run electron:dev     # full desktop app

After npm install, expect the Next.js dev server to print a local URL for the browser path, or an Electron window to open for the desktop path. The repository ships a .mcp.json file at the top level, so MCP configuration has a project-level home rather than living only in app settings. For a first real use, start a session, send a prompt, then use the slash commands the README lists (/help, /clear, /cost, /compact, /doctor, /review) to check cost and context before adding anything else.

Where CodePilot gets in the way

The licence is the first constraint. package.json declares "license": "BUSL-1.1", the Business Source License 1.1, while the README badge says BSL-1.1 and the repository metadata reports NOASSERTION. Those are three different spellings of a non-OSI licence, and the README does not explain what the BUSL change date or additional use grant are. Anyone planning to redistribute CodePilot, bundle it into a product, or treat it as a drop-in open source dependency needs to read the LICENSE file itself, because nothing in the README answers that question.

The second constraint is the Claude Code CLI dependency. The README is explicit that basic chat works without it, but file editing, terminal commands and git operations do not. So the most useful capabilities sit behind an external npm package that you install globally, which is awkward in locked-down environments and adds a second thing to keep updated.

Third, the Remote Bridge is documented as a list of channels, not as a security model. The README names Telegram, Feishu, Discord, QQ and WeChat and says you send messages from your phone, but it does not describe how those inbound messages are authenticated, whether a bot token is required, or what happens if a channel is compromised. Given that the desktop client is the thing executing MCP servers and possibly shell commands, that gap matters more here than it would in a chat-only app.

Finally, updates are uneven. The README states that macOS stable builds can check, download and install signed updates in the app, that Windows releases update in the app using unsigned packages from GitHub after a manual first install, and that Linux releases remain manual downloads. If you run Linux, you are maintaining your own upgrade path.

CodePilot compared with the Claude Code CLI it imports from

The clearest alternative is the Claude Code CLI itself, and the comparison is not close in either direction. The CLI is a terminal program: you run it in a directory, it reads and writes files, runs commands and talks to git, and you script it. CodePilot is a GUI wrapper around that same class of work, and it even imports Claude Code CLI .jsonl session history, which tells you the author expects people to arrive with an existing CLI history. The difference in approach is that CodePilot adds a window, a file tree with syntax-highlighted preview, a git panel with branches and worktrees, split-screen dual sessions, checkpoint rewind, token and cost charts, and provider switching that the CLI does not offer. What you give up is composability: there is no documented way to pipe CodePilot into a shell script or a CI job, and the desktop app is the unit of execution. If your work is interactive and visual, the GUI earns its place. If your work is automated, the CLI is still the right layer.

Maintenance, releases and the cost of staying current

The release cadence is fast. v0.67.15 landed on 2026-09-05, v0.67.14 the same day, and v0.67.13 on 2026-09-01, with the last push to main on 2026-09-05. Three releases in five days, all on patch numbers, suggests steady iteration rather than a stable API. For a desktop app that is normal, but it has a practical consequence: the version number in package.json is 0.67.15, still below 1.0, so nothing in the repository promises that configuration formats, skill layouts or the .mcp.json schema will stay put between releases.

Upgrade cost differs by platform, as noted above. macOS gets signed in-app updates, Windows gets unsigned in-app updates after a manual first install, and Linux is manual every time. On the licence side, BUSL-1.1 is a source-available licence, not an open source one, and the README does not restate its terms. If you are evaluating CodePilot for anything beyond personal use, the LICENSE file is the document that decides the question, not the README badge.

Editorial conclusion

Adopt CodePilot if you want a single desktop GUI in front of several providers, need MCP servers and skills in one place, and are comfortable with a BUSL-1.1 licence for a private, non-commercial build. Skip it if you need a scriptable CLI agent, a permissively licensed dependency, or a client whose remote bridge you can audit, since the README documents the channels but not their authentication. Before committing, verify three things: the exact licence terms in the LICENSE file, whether installing the Claude Code CLI is acceptable in your environment, and whether the in-app updater behaves on your platform, because Linux releases remain manual downloads.

Frequently asked questions

What is CodePilot?

CodePilot is a multi-model AI agent desktop client built with Electron and Next.js. The README describes it as connecting any AI provider, extending with MCP and skills, and allowing control from your phone through channels such as Telegram, Feishu, Discord, QQ and WeChat.

Which AI is best for coding?

The repository does not rank providers by coding ability. It lists 17+ providers including Anthropic, OpenRouter, AWS Bedrock, Google Vertex AI, Zhipu GLM, Kimi, Moonshot, MiniMax, Volcengine Ark, Xiaomi MiMo, Aliyun Bailian, Ollama and LiteLLM, and lets you switch model mid-conversation, so the choice is left to you.

Is GitHub Copilot really free?

This is not about CodePilot. CodePilot is a separate desktop client from op7418 that connects to providers you supply credentials for; the README does not describe any free tier or bundled subscription.

Is coding with AI illegal?

The repository says nothing about the legality of AI-assisted coding. Its only licensing statement is package.json declaring BUSL-1.1 and the README badge showing BSL-1.1, which govern the software itself rather than what you write with it.

Official sources

  1. Issues
  2. op7418/CodePilot on GitHub
  3. Project website
  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/op7418-codepilot.svg)](https://hysenlabs.com/projects/op7418-codepilot)