需要自行准备模型 API Key(BYOK),README 未提供内置模型;IM 机器人集成需在 Settings → Bots 中单独配置各平台凭据;README 未说明默认端口等运行参数
Async
x-man-gitApache-2.0更新放缓一款原生体验的 AI 编程桌面工作台,把对话、任务规划、Agent 执行和项目导航整合到同一个界面里,可以当作 Cursor 的替代品。
IDE, A native-feeling AI coding workspace that blends chat, planning, agent execution, and project navigation into a unified desktop experience.
git clone https://github.com/ZYKJShadow/Async.git
cd Async
npm install
npm run desktopREADME 未说明硬件要求,仅列出 Node.js >= 18、npm >= 9、Git 作为前置条件
基于 Electron 的开源 AI 原生桌面 IDE,把 Agent、编辑器、Git 和终端整合到一个工作区
一款原生体验的 AI 编程桌面工作台,把对话、任务规划、Agent 执行和项目导航整合到同一个界面里,可以当作 Cursor 的替代品。
核心能力
- Agent 循环按 Think→Plan→Execute→Observe 执行,工具参数以流式卡片展示
- 提供 Agent、Plan、Ask、Debug 四种 Composer 模式,敏感操作需审批
- Team 模式支持 Lead 规划、专家执行、Reviewer 验证的多智能体协作
- 支持 Anthropic、OpenAI、Gemini 及 Ollama、vLLM 等 OpenAI 兼容端点
- 内置 Git 状态、diff、暂存、提交、推送与 xterm.js 终端
容易踩的坑
- v0.0.45最新正式版2026-05-19 · 2026-05-19 02:55 UTC
What's Changed
- fix: OpenAI-compatible legacy tool_call XML and inflight stream snapshots by @ZYKJShadow in https://github.com/ZYKJShadow/Async/pull/72
Full Changelog: https://github.com/ZYKJShadow/Async/compare/v0.0.44...v0.0.45
- v0.0.442026-05-01 · 2026-05-01 10:29 UTC
查看更新说明
What's Changed
- Fix sub-agent sidebar and clarification flow by @ZYKJShadow in https://github.com/ZYKJShadow/Async/pull/70
Full Changelog: https://github.com/ZYKJShadow/Async/compare/v0.0.43...v0.0.44
- v0.0.432026-05-01 · 2026-05-01 02:53 UTC
查看更新说明
What's Changed
- feat(browser): Playwright bridge, humanized cursor/HUD, context-meter fix, sidebar reply state by @ZYKJShadow in https://github.com/ZYKJShadow/Async/pull/69
Full Changelog: https://github.com/ZYKJShadow/Async/compare/v0.0.42...v0.0.43
- v0.0.422026-04-28 · 2026-04-28 15:53 UTC
查看更新说明
What's Changed
- fix(browser-capture): stop silently elevating CA install/uninstall by @ZYKJShadow in https://github.com/ZYKJShadow/Async/pull/67
- Fix agent skill resources and chat UI states by @ZYKJShadow in https://github.com/ZYKJShadow/Async/pull/68
Full Changelog: https://github.com/ZYKJShadow/Async/compare/v0.0.41...v0.0.42
- v0.0.412026-04-28 · 2026-04-28 09:00 UTC
查看更新说明
What's Changed
- Fix chat scroll and WebSearch proxy support by @ZYKJShadow in https://github.com/ZYKJShadow/Async/pull/66
Full Changelog: https://github.com/ZYKJShadow/Async/compare/v0.0.40...v0.0.41
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Async IDE
What is Async IDE?
Async IDE is an AI-native desktop shell built from scratch on Electron + React + Monaco. It is not a VS Code fork — the entire codebase is intentionally lean, fully transparent, and hackable.
The central idea is simple: the agent is the center of gravity, not a chat panel bolted onto the side of an editor. Everything — workspace access, tool execution, diff review, terminal operations — revolves around a transparent Think → Plan → Execute → Observe loop that you can see, steer, and interrupt at any time.
- Apache 2.0 • BYOK for models • Local-first by default
Highlights
- Agent-first loop — Autonomous multi-round tool execution with streaming parameter cards (
Read,Write,Edit,Glob,Grep, Shell, etc.) and approval gates for sensitive operations. - Four Composer modes — Agent (full auto), Plan (review first, then run), Ask (read-only Q&A), and Debug (systematic troubleshooting).
- Team mode — Multi-agent collaboration with Lead planning, specialist execution, reviewer verification, and plan-approval workflows.
- Multi-model, multi-provider — Anthropic, OpenAI, Gemini, plus any OpenAI-compatible endpoint (Ollama, vLLM, self-hosted). Auto model selection included.
- Git-native — Status, diff, staging, commit, and push integrated into the UI; agent-driven changes stay in sync with your real repo.
- IM bot bridge — Wire Telegram, Slack, Discord, and Feishu (Lark) into the same Agent / Team toolchain as the desktop app, with per-integration model, workspace, and allowlist config.
- Built-in tools — Browser automation (with custom headers / fingerprint), LSP-powered editor intelligence, MCP server support, file index & symbol search, and an all-in-one terminal shared between user and agent.
- Local & private — Threads, settings, and plans live on your machine. No cloud lock-in.
Screenshots
Agent Layout
Model Settings
Appearance Color Palette
Mac Codex Theme
Browser Tool Invocation (customizable request headers)
Multi-Agent Collaborative Expert Group
Control the App via External Chat Bots
All-in-One Terminal (commands invokable by Agents and bots)
Core Features
Autonomous Agent Loop
- Streaming tool parameters with trajectory cards for clear execution visibility.
- Plan and Agent dual modes: review the plan first, or let the agent run directly.
- Approval gates for shell commands and file writes.
- Editor context sync so agent edits can focus on the relevant file and line range.
- Support for nested sub-agents, background execution, and timeline-style activity rendering.
Multi-Model Support
- Built-in adapters for Anthropic, OpenAI, and Gemini.
- Support for OpenAI-compatible endpoints like Ollama, vLLM, aggregators, or self-hosted services.
- Streaming thinking blocks on supported models.
- Auto mode to automatically pick the best available model.
Developer Experience
- Monaco editor with multi-tab support, syntax highlighting, and diff review flows.
- Git integration: status, diff, staging, commit, and push all available from the UI.
- xterm.js terminal: for both user commands and observing agent shell operations.
- Composer with
@file mentions, rich segments, and persistent threads. - Quick Open palette (
Ctrl/Cmd+P) and keyboard-first navigation. - Built-in i18n support for English and Simplified Chinese.
- Support for local disk skills, workspace config merge, and tool approval controls.
IM / Bot Integrations
Async can act as the host for coding agents on external chat surfaces, not only inside the Electron UI.
- Platforms — Telegram, Slack, Discord, and Feishu (Lark) via dedicated adapters under
main-src/bots/platforms/. - Same runtime — Inbound messages run through
botRuntime: normal threads useagentLoop, while Team mode uses the sameteamOrchestratorpath as the desktop Composer, including worker streaming and tool status where applicable. - Per integration — Enable/disable, display name, default model, default Composer mode (
agent/ask/plan/team), workspace root(s), optional allowlists for chats and users, and an extra system prompt on top of project rules. - Connectivity — Optional HTTP proxy URL per platform when vendor APIs must go through a corporate proxy.
- Feishu — App credentials, optional encryption, streaming interactive cards for long-running replies, and session hygiene when integration settings change.
- Configuration UI — Managed from Settings → Bots (
SettingsBotsPanel.tsx).
For a deeper module-level walkthrough, see the maintainer-oriented notes under docs/llm-wiki/.
Technical Architecture
┌─────────────────────────────────────────────────────────┐
│ Renderer Process │
│ React + Vite │ Monaco Editor │ xterm.js Terminal │
│ Composer / Chat / Plan / Agent UI │
└──────────────────────────┬──────────────────────────────┘
│ contextBridge (IPC)
┌──────────────────────────▼──────────────────────────────┐
│ Main Process │
│ agentLoop.ts │ toolExecutor.ts │ LLM Adapters │
│ gitService │ threadStore │ settingsStore │
│ workspace │ LSP session │ PTY terminal │
└─────────────────────────────────────────────────────────┘
Tech Stack
| Technology | Version | Purpose |
|---|---|---|
| React | ^19.2.4 | UI framework |
| Electron | 41.1.0 | Desktop app shell |
| Vite | ^6.0.3 | Build tool & dev server |
| TypeScript | ^5.9.3 | Type-safe development |
| Monaco Editor | ^0.52.0 | Code editor component |
| xterm.js | ^5.5.0 | Terminal emulator |
| OpenAI SDK | ^4.96.0 | OpenAI API client |
| Anthropic SDK | ^0.39.0 | Claude API client |
| Google Generative AI | ^0.21.0 | Gemini API client |
| MCP SDK | ^1.29.0 | Model Context Protocol |
| node-pty | ^1.1.0 | PTY terminal support |
- Built from scratch on Electron + React + Monaco — not a VS Code fork. The architecture is intentionally lean: two processes (main + renderer), clear IPC boundaries, and no inherited extension ecosystem to maintain.
agentLoop.tshandles multi-round tool calls, partial JSON streaming, tool repair, and aborts.- Structured assistant messages are persisted locally and expanded to provider-native tool formats when needed.
- Local persistence stores threads, settings, and plans as JSON / Markdown under user data.
gitServiceprovides the Git layer used by the UI for status, diff, staging, commit, and push.- LSP integration uses TypeScript Language Server for in-editor intelligence.
Project Structure
Async/
├── main-src/ # Bundled -> electron/main.bundle.cjs (Node / Electron main)
│ ├── index.ts # App entry: windows, userData, IPC registration
│ ├── agent/ # agentLoop.ts, toolExecutor.ts, agentTools.ts, toolApprovalGate.ts
│ ├── llm/ # OpenAI / Anthropic / Gemini adapters & streaming
│ ├── lsp/ # TypeScript LSP session
│ ├── mcp/ # Model Context Protocol integration
│ ├── memdir/ # Memory directory management
│ ├── bots/ # IM bot controller, runtime, connectivity, platform adapters
│ ├── ipc/register.ts # Core IPC handlers (chat, threads, agent, plan)
│ ├── ipc/handlers/ # Domain-specific IPC handlers (git, fs, mcp, settings, ...)
│ ├── shell/ # Shell command execution
│ ├── threadStore.ts # Persistent threads + messages (JSON)
│ ├── settingsStore.ts # settings.json
│ ├── gitService.ts # Porcelain status, diff previews, commit/push
│ ├── workspace.ts # Open-folder root & safe path resolution
│ ├── workspaceFileIndex.ts # File indexing for workspace
│ ├── workspaceSymbolIndex.ts # Symbol indexing
│ └── workspaceUsageStats.ts # Workspace usage statistics
├── src/ # Vite + React renderer
│ ├── App.tsx # Shell layout, chat, composer modes, Git / explorer
│ ├── AgentChatPanel.tsx # Agent chat interface
│ ├── AgentLeftSidebar.tsx # Agent activity sidebar
│ ├── AgentRightSidebar.tsx # Agent tools and results
│ ├── ChatComposer.tsx # Message composer component
│ ├── EditorMainPanel.tsx # Monaco editor panel
│ ├── SettingsPage.tsx # Settings UI
│ ├── SettingsBotsPanel.tsx # IM bot integrations (Telegram / Slack / Discord / Feishu)
│ ├── WorkspaceExplorer.tsx # File explorer
│ ├── hooks/ # Custom React hooks
│ ├── i18n/ # Locale messages (en / zh-CN)
│ └── ... # Agent UI, Plan review, Monaco, terminal, ...
├── electron/
│ ├── main.bundle.cjs # esbuild output (do not edit by hand)
│ └── preload.cjs # contextBridge -> window.asyncShell
├── docs/assets/ # Logo, screenshots
├── scripts/
│ └── export-app-icon.mjs # Rasterize SVG -> resources/icons/icon.png
├── esbuild.main.mjs # Builds main process
├── vite.config.ts # Renderer build
└── package.json
Data Storage
Default location under Electron's userData directory:
async/threads.json: threads and chat messages.async/settings.json: model configuration, API keys, layout, agent options, and bot integrations..async/plans/: Markdown plan documents generated in Plan mode.
The renderer may use localStorage for lightweight UI state, but the authoritative data source for conversations is threads.json.
Getting Started
Prerequisites
- Node.js >= 18
- npm >= 9
- Git (recommended)
Install and Run
git clone https://github.com/ZYKJShadow/Async.git
cd Async
npm install
npm run desktop
If you prefer Gitee:
git clone https://gitee.com/shadowsocks_z/Async.git
cd Async
npm install
npm run desktop
Development
npm run dev # Dev server with hot reload
npm run dev:debug # Same, with DevTools open
npm run icons # Generate app icons from SVG
Acknowledgements
We are grateful to the open-source community and projects like Claude Code that helped demonstrate the power of agent-driven development — Async IDE builds on that momentum with its own take on transparent, local-first AI workflows.
Community
Have questions, ideas, or just want to chat with a community of developers?
- Forum: linux.do — Join the discussion, share your setup, report issues, and stick around.
License
This project is open-sourced under the Apache License 2.0.