evcod ๆฏไธไธชๆฌๅฐไผๅ ๏ผlocal-first๏ผ็่ฟ็จ็ป็ซฏ่พ ๅฉๅทฅๅ ท๏ผๅ ๅซไธไธชๆ ธๅฟๆจกๅ๏ผ
| ๆจกๅ | ็ฎๅฝ | ๆๆฏๆ | ่่ดฃ |
|---|---|---|---|
| Core | evcod/core/ |
Go 1.26 | HTTP/WebSocket ๅๅฐๆๅก๏ผๆไพ้ดๆใ้กน็ฎ็ฎก็ใๆไปถๆไฝใGit ๆไฝใ็ป็ซฏใไผ่ฏใAgent ็ผๆ็ญ่ฝๅ |
| Web UI | evcod/webui/ |
React 19 + Vite 6 + TypeScript | ๆต่งๅจ็ซฏๅทฅไฝๅฐ๏ผ่ฟๆฅไธไธชๆๅคไธช Core ๅฎไพ๏ผๆไพ็ป็ซฏใๅฏน่ฏใๆไปถ็ผ่พใGit ้ขๆฟ็ญ UI |
| Warp | evcod_warp/ |
Node.js 22 (ESM) | Agent ๆกฅๆฅๅฑ๏ผๅฐ Claude CodeใOpenCodeใCodexใGeminiใQwen ็ญ AI Agent ็ไบไปถ่ง่ๅๅนถๅๅ Core |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆต่งๅจ (Web UI) โ
โ โโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโ โโโโโโโโ โ
โ โ ไพงๆ โ โ ็ป็ซฏ้ขๆฟ โ โ ๅฏน่ฏ้ขๆฟ โ โๆไปถ้ขๆฟโ โGit้ขๆฟโ โ
โ โโโโฌโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโ โโโโฌโโโโ โโโโฌโโโโ โ
โโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโ
โ REST + โ WebSocket โ โ โ
โผ โผ โผ โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ evcod Core (Go) โ
โ โโโโโโโโ โโโโโโโโโโ โโโโโโโโ โโโโโโโโ โโโโโโโโโโโโ โ
โ โ API โ โServicesโ โ Store โ โEventsโ โPlatform โ โ
โ โRouter โ โ โ โ(JSON) โ โ Bus โ โ(mac/win) โ โ
โ โโโโโโโโ โโโโโโโโโโ โโโโโโโโ โโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ WebSocket Relay
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ evcod Warp (Node.js) โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โCoreBridgeโ โAgentCatalogโ โNormalizerโ โBackends โ โ
โ โ โ โ โ โ โ โcli/opencodeโ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cd evcod/core
go run ./cmd/evcod-core serveCore ้ป่ฎค็ๅฌ 127.0.0.1:4865๏ผ้ฆๆฌกๅฏๅจไผ่ชๅจ็ๆ API keyใ
ๆฅ็ API key๏ผ
go run ./cmd/evcod-core key printcd evcod/webui
npm install
npm run dev -- --port 10066ๆต่งๅจๆๅผ http://127.0.0.1:10066๏ผๅจ่ฎพ็ฝฎไธญๆทปๅ Core ่ฟๆฅ๏ผ
- Alias๏ผไปปๆๅ็งฐ๏ผๅฆ
Local core๏ผ - Endpoint๏ผ
http://127.0.0.1:4865๏ผๆๆๅฎ็ซฏๅฃ๏ผ - API Key๏ผCore ็ๅฝๅๆๆ API key
cd evcod_warp
npm start -- opencode --core http://127.0.0.1:4865 --api-key <key>ๆฏๆ็ Agent ็ฑปๅ๏ผclaudeใopencodeใcodexใgeminiใqwenใfake
| ๅ่ฝๅ็ฑป | API ็ซฏ็น | ่ฏดๆ |
|---|---|---|
| ็ณป็ป | /api/systemใ/api/settings/runtime |
็ณป็ปไฟกๆฏไธ่ฟ่กๆถ้ ็ฝฎ |
| ไธปๆบ | /api/host/* |
ไธปๆบๆฆ่งใๆง่ฝใ่ฟ็จใ็ซฏๅฃใ็ฝ็ปๆฅๅฃ |
| ้ดๆ | /api/tokens |
API key ็ฎก็ไธ่ฎค่ฏ |
| ้กน็ฎ | /api/projects |
้กน็ฎ CRUD๏ผ็ปๅฎๆฌๅฐ็ฎๅฝ |
| Worktree | /api/worktrees |
Git worktree ็ฎก็ |
| ๅทฅไฝๅบ Tab | /api/workspace/tabs |
ๅทฅไฝๅบๆ ็ญพ้กต็ฎก็๏ผterminal/vcs/editor/diffViewer๏ผ |
| ๆไปถ | /api/files/* |
ๆไปถๅ่กจใ่ฏปๅใๅๅ ฅใๆ็ดขใๅๅปบใๅ ้คใ้ๅฝๅใ็ฎๅฝๆต่ง |
| Git | /api/git/* |
status/diff/log/branches/checkout/branch/stage/unstage/discard/commit/pull/push/stash |
| ็ป็ซฏ | /api/terminal/panes |
็ป็ซฏ pane ๅๅปบใ่พๅ ฅใresizeใๅฟซ็ ง |
| Agent | /api/agent/* |
Agent ็ฎๅฝใๅๅฒใไผ่ฏ็ฎก็ |
| ๅฏน่ฏ | /api/conversations |
ๅฏน่ฏไธๆถๆฏๆไน ๅ |
| ๅฎก่ฎก | /api/audit/logs |
ๆไปถๅๆไฝๅฎก่ฎกๆฅๅฟ |
| WebSocket | /ws/rpcใ/ws/relay |
ๅฎๆถไบไปถๆจ้ไธ Agent relay |
- ๆก้ขๅทฅไฝๅฐๅธๅฑ๏ผๅทฆไพงไพงๆ ๏ผ้กน็ฎ/ๅฏน่ฏๅ่กจ๏ผใไธญ้ดไธปๅทฅไฝๅบใๅณไพง้ขๆฟ๏ผๆไปถ/Git/ไบไปถ๏ผ
- ็ป็ซฏๆจกๅผ๏ผๅบไบ xterm.js ็่ฟ็จ็ป็ซฏ๏ผๆฏๆๅค paneใ่ชๅจ resize
- ๅฏน่ฏๆจกๅผ๏ผๆถๆฏๆตๅฑ็คบใAI Agent ๅฏน่ฏใๆตๅผ่พๅบๆธฒๆ
- ๆไปถ็ฎก็๏ผๆไปถๆ ๆต่งใๆๆฌ็ผ่พ๏ผMonaco Editor๏ผใๆไปถๅๅปบ/ไฟๅญ
- Git ้ขๆฟ๏ผๅๆดๆไปถๅ่กจใdiff ๆฅ็ใstage/unstage/commit
- Core ่ฟๆฅ็ฎก็๏ผๅค Core ้ ็ฝฎใๆฌๅฐๆไน ๅ
- ไธปๆบ็ฎก็๏ผไธปๆบๆฆ่งใๆง่ฝ็ๆงใ่ฟ็จไธ็ซฏๅฃๆฅ็
- ๆฏๆๅค็ง AI Agent ๅ็ซฏ็ prompt/response ่ง่ๅ
- ๆฏๆ JSONL ๅ JSON-RPC ไธค็งไผ ่พๅ่ฎฎ
- ็ป็ซฏๅ ๅ็ Agent ็้ข + Web Chat ๅๅ้ๅ
- Agent ไบไปถๆ ๅๅ๏ผtext/reasoning/tool_call/tool_result/usage ็ญ๏ผ
evcod_all/
โโโ evcod/ # ไธป้กน็ฎ
โ โโโ core/ # Go ๅ็ซฏๆๅก
โ โ โโโ cmd/evcod-core/main.go # ๅ
ฅๅฃ
โ โ โโโ internal/
โ โ โ โโโ api/ # HTTP/WS ่ทฏ็ฑไธๅค็ๅจ
โ โ โ โโโ app/ # ๅบ็จๅๅงๅไธ็ๅฝๅจๆ
โ โ โ โโโ config/ # ้
็ฝฎ็ฎก็
โ โ โ โโโ domain/ # ้ขๅๆจกๅ
โ โ โ โโโ events/ # ไบไปถๆป็บฟ
โ โ โ โโโ platform/ # ๅนณๅฐๆฝ่ฑก (common/mac/win)
โ โ โ โโโ services/ # ไธๅก้ป่พๅฑ
โ โ โ โโโ store/ # JSON ๆไปถๆไน
ๅ
โ โ โโโ go.mod
โ โโโ webui/ # React ๅ็ซฏ
โ โ โโโ src/
โ โ โ โโโ App.tsx # ไธปๅบ็จ็ปไปถ
โ โ โ โโโ api.ts # Core API ๅฎขๆท็ซฏ
โ โ โ โโโ store.ts # Zustand ็ถๆ็ฎก็
โ โ โ โโโ components/ # UI ็ปไปถ
โ โ โ โ โโโ TerminalView.tsx
โ โ โ โ โโโ ConversationView.tsx
โ โ โ โ โโโ FilesPanel.tsx
โ โ โ โ โโโ GitPanel.tsx
โ โ โ โ โโโ Sidebar.tsx
โ โ โ โ โโโ chat/ # ๅฏน่ฏๅญ็ปไปถ
โ โ โ โ โโโ ...
โ โ โ โโโ styles.css
โ โ โโโ tests/ # Playwright ็ซฏๅฐ็ซฏๆต่ฏ
โ โ โโโ package.json
โ โโโ docs/ # ้กน็ฎๆๆกฃ
โ โ โโโ api/ # API ๆๆกฃ
โ โ โโโ project-overview.zh-CN.md
โ โโโ scripts/ # ๅผๅ่พ
ๅฉ่ๆฌ
โ โโโ test_scripts/ # ๆต่ฏ่ๆฌ
โ
โโโ evcod_warp/ # Node.js Agent ๆกฅๆฅๅฑ
โ โโโ bin/evcod-warp.js # CLI ๅ
ฅๅฃ
โ โโโ src/
โ โ โโโ cli.js # CLI ๅๆฐ่งฃๆไธ่ฐๅบฆ
โ โ โโโ core-bridge.js # Core WebSocket ๆกฅๆฅ
โ โ โโโ session-controller.js # ไผ่ฏ็ๅฝๅจๆๆงๅถ
โ โ โโโ native-agent.js # ๅ็ Agent ๆงๅถๅจ
โ โ โโโ opencode-tui.js # OpenCode TUI ๆงๅถๅจ
โ โ โโโ normalizer.js # Agent ไบไปถๆ ๅๅ
โ โ โโโ registry.js # Agent ๆณจๅ่กจ
โ โ โโโ backends/ # Agent ๅ็ซฏๅฎ็ฐ
โ โ โ โโโ claude.js # Claude Code
โ โ โ โโโ codex.js # Codex CLI
โ โ โ โโโ opencode.js # OpenCode (ACP)
โ โ โ โโโ fake.js # ๆต่ฏ็จๅๅ็ซฏ
โ โ โโโ transports/ # ไผ ่พๅ่ฎฎ
โ โ โโโ factory.js
โ โ โโโ jsonl.js # JSONL ไผ ่พ
โ โ โโโ jsonrpc.js # JSON-RPC ไผ ่พ
โ โโโ test/ # ๅๅ
ๆต่ฏ
โ โโโ package.json
โ
โโโ chat_diff/ # ๆถๆๅฏน้ฝๆๆกฃ
โโโ ๅฎกๆฅๆฅๅ/ # ไปฃ็ ๅฎกๆฅๆฅๅ
โโโ start-evcod.bat # Windows ไธ้ฎๅฏๅจ
โโโ AGENTS.md # Agent ๅทฅไฝๆๅ
- ่ฏญ่จ๏ผGo 1.26
- HTTP/WebSocket๏ผๆ ๅๅบ
net/http+gorilla/websocket - PTY๏ผ
go-pty+creack/pty - ๆไน ๅ๏ผๆฌๅฐ JSON ็ถๆๆไปถ
- ๆถๆ๏ผAPI โ App โ Services โ Store + Platform ๅๅฑ
- ๆกๆถ๏ผReact 19 + TypeScript
- ๆๅปบ๏ผVite 6
- ็ถๆ็ฎก็๏ผZustand 5
- ็ป็ซฏๆธฒๆ๏ผxterm.js 5 + addon-fit
- ็ผ่พๅจ๏ผMonaco Editor
- ๅพๆ ๏ผlucide-react
- ๆต่ฏ๏ผPlaywright
- ่ฟ่กๆถ๏ผNode.js โฅ 22 (ESM)
- ๆต่ฏ๏ผNode.js ๅ
็ฝฎ
node:test
gofmt -w core # ๆ ผๅผๅไปฃ็
go -C core test ./... # ่ฟ่กๅๅ
ๆต่ฏ
go -C core build ./cmd/evcod-core # ็ผ่ฏๆๅปบ
go -C core run ./cmd/evcod-core serve # ๅฏๅจๆๅกcd evcod/webui
npm run dev # ๅฏๅจๅผๅๆๅกๅจ
npm run build # ็ฑปๅๆฃๆฅ + ๆๅปบ
npm run test:smoke # ๆต่งๅจๅ็ๆต่ฏ
npm run test:full-flow # ๅ
จๆต็จๆต่ฏ
npm run test:feature-flow # ๅ่ฝๅๅฝๆต่ฏcd evcod_warp
npm test # ่ฟ่กๆต่ฏ
npm start # ๅฏๅจ CLIevcod/test_scripts/run_full_tests.sh # Core + WebUI ๅฎๆด้ช่ฏ่ๆฌ้กน็ฎๅคไบ MVP ๅ่ฝ้ญ็ฏ้ถๆฎต๏ผ
- Core ๆๅก็ซฏๆ ธๅฟ API ๅฎๆดๅฏ็จ๏ผ้ดๆใ้กน็ฎใๆไปถใGitใ็ป็ซฏใๅฏน่ฏใAgent๏ผ
- Web UI ๆก้ขๅทฅไฝๅฐๅธๅฑใ็ป็ซฏไบคไบใๆไปถ็ผ่พใGit ้ขๆฟ
- Warp Agent ๆกฅๆฅ๏ผClaude Code / OpenCode / Codex๏ผ
- ่ทจๅนณๅฐๅนณๅฐๆฝ่ฑก๏ผmacOS / Windows๏ผ
- ็ซฏๅฐ็ซฏๆต่งๅจๆต่ฏ
- ็ๅฎ LLM Provider ้ๆไธ Agent ๅพช็ฏ
- TLS/WSS ๅฎๅ จไผ ่พ
- ๆ้็ฒๅบฆๆงๅถไธ้ซๅฑๆไฝ็กฎ่ฎค็ญ็ฅ
- ๆฐๆฎๅบๆไน ๅ๏ผๅฝๅไธบ JSON ๆไปถ๏ผ
ๆฌ้กน็ฎๅฐๆชๆทปๅ ๅผๆบ่ฎธๅฏ่ฏใ