A desktop workspace for coding agents.
NextCoWork brings agent-driven development to the desktop: multiple workspaces side by side, a full workbench (editor, terminal, Git, browser), and an agent kernel with a permission model you can actually trust — all in one native app for macOS, Windows and Linux.
- Workspaces & sessions — open multiple workspaces in tabs, run parallel agent sessions per workspace, and keep streaming state isolated per session.
- Agent kernel — streaming replies, tool calls with a per-call approval chain, plan mode, subagents, background tasks, todo reconciliation, and scheduled runs.
- Inline visualization — the agent can render live HTML/SVG widgets (charts, diagrams, interactive UI) directly inside the conversation, sandboxed in their own iframe and following the app theme.
- Built-in workbench — file explorer and editors (including plugin-provided custom editors), a real PTY terminal, and background command execution.
- Git integration — status, diff, log and branches; stage, commit, create and switch branches.
- Built-in browser — per-workspace browser partitions that share login state with your tabs.
- Skills & MCP — SKILL.md-based skill packages plus Model Context Protocol support.
- Plugins — a manifest-driven plugin system with per-call capability gates. Plugins can contribute commands, menus, keybindings, custom editors, views, web apps, agent tools and bundled skills.
- Native experience — light/dark themes, accent colors, motion-level control, auto-update, and full Simplified Chinese / English localization.
Installers are published for:
- macOS (Apple Silicon & Intel,
.dmg) - Windows (
.exeNSIS installer) - Linux (
.AppImage)
Visit https://nextco.work for the latest stable release.
Requirements: Node.js ^20.19.0 || >=22.12.0 and npm.
npm install # also runs patch-package and electron-builder install-app-deps
npm run dev # start the app with hot reloadVerification (the same suite CI runs):
npm run typecheck # typecheck main + renderer + shared
npm test # vitest
npm run lint # eslintPackaging:
npm run dist # build installers for the current platform
npm run dist:dir # unpacked build, for quick checkssrc/main Electron main process — agent kernel, plugin host, IPC, storage, updater
src/preload Context bridge between renderer and main
src/renderer React UI — chat, workbench, terminal, Git, browser, settings
src/shared Types and pure functions shared across processes
packages/ Plugin ecosystem — plugin-api (types), plugin-cli, create-nextcowork-plugin
examples/ Sample plugins (custom editors, web apps, …)
resources/ App icons, bundled skills, plugin runtime
Scaffold a plugin that is ready to build and publish:
npm create nextcowork-plugin@latest- Type definitions:
@aidotnet/plugin-api - Build / package / publish:
@aidotnet/plugin-cli(binarynextcowork-plugin) - Working examples live in
examples/
A plugin is a package.json manifest plus optional code: declare what you contribute (commands, custom editors, views, agent tools, web apps, skills, …) and the capabilities you need; the host enforces per-call permission gates at runtime.
This project is licensed under the Apache License 2.0.
The plugin ecosystem packages under packages/ (@aidotnet/plugin-api, @aidotnet/plugin-cli, create-nextcowork-plugin) are distributed under the MIT license — see each package's package.json.