> 💡 **项目地址**: [https://github.com/Ricardo-M-L/cordex](https://github.com/Ricardo-M-L/cordex)
> ⭐ **如果觉得不错,请给个 Star 支持一下!**
---
## 📖 前言
作为一名开发者,我深深被 Cursor 这款 AI 编程工具所吸引——它将 AI 能力完美融入代码编辑器,极大提升了编程效率。但 Cursor
的订阅价格对于很多开发者来说是个不小的负担。
于是,我决定动手实现一个**开源、免费**的类 Cursor AI 编程助手——**Cordex**。
**这不仅是对 Cursor 的致敬,更是想让每一位开发者都能享受到 AI 赋能编程的乐趣!**
---
## ✨ 项目亮点
### 🎯 核心特性
1. **完全开源免费** 🆓
- Apache 2.0 开源协议
- 无需订阅,无需付费
- 代码完全透明,可自由定制
2. **多 AI 模型支持** 🤖
- **Claude 3.5 Sonnet** (Anthropic 官方 SDK)
- **OpenAI GPT 系列** (ChatGPT, GPT-4)
- **本地模型 Ollama** (完全离线,数据隐私)
- 可扩展更多 AI 模型
3. **专业代码编辑器** 📝
- 基于 Monaco Editor (VS Code 同款编辑器内核)
- 完整的语法高亮
- 智能代码补全
- 多文件标签页管理
4. **智能 AI 对话** 💬
- 自然语言交互
- 上下文理解
- 代码生成与解释
- 实时 Markdown 渲染
5. **集成终端** 💻
- 内置 Xterm.js 终端模拟器
- 直接执行命令
- 无需切换窗口
6. **现代化架构** 🏗️
- Electron 跨平台桌面应用
- React + TypeScript 前端
- Tailwind CSS 样式方案
- 完整的构建工具链
---
## 🛠️ 技术架构
### 技术栈一览
```
📦 Cordex 技术栈
├── 🖥️ 桌面端框架: Electron 28
├── ⚛️ 前端框架: React 18 + TypeScript
├── 🎨 UI 样式: Tailwind CSS
├── 📝 代码编辑器: Monaco Editor
├── 🤖 AI SDK:
│ ├── @anthropic-ai/sdk (Claude)
│ ├── openai (ChatGPT)
│ └── ollama (本地模型)
├── 💻 终端: Xterm.js
└── 📦 构建工具: Vite + electron-vite
```
### 项目结构
```
cordex/
├── src/
│ ├── main/ # Electron 主进程
│ │ ├── config/ # 配置管理
│ │ └── services/ # AI 服务层
│ ├── preload/ # 预加载脚本
│ └── renderer/ # 渲染进程 (React 应用)
│ └── src/
│ ├── components/
│ │ ├── AI/ # AI 聊天界面
│ │ ├── Editor/ # 代码编辑器
│ │ ├── Terminal/ # 终端组件
│ │ ├── Settings/ # 设置面板
│ │ ├── Sidebar/ # 文件树
│ │ └── Layout/ # 布局组件
│ ├── App.tsx # 主应用
│ └── main.tsx # 入口文件
├── resources/ # 资源文件 (图标等)
├── package.json
└── electron.vite.config.ts
```
---
## 💻 功能展示
### 1️⃣ AI 驱动的代码对话
Cordex 支持自然语言交互,你可以:
- **询问技术问题**
"如何在 React 中实现防抖?"
- **生成代码片段**
"帮我写一个 Promise 封装的 Ajax 请求"
- **代码审查与优化**
"这段代码有什么问题?怎么优化?"
- **调试帮助**
"为什么我的组件一直重新渲染?"
### 2️⃣ 专业的代码编辑体验
- 📄 多文件标签页切换
- 🎨 完整的语法高亮 (支持几十种语言)
- 🔍 代码搜索与替换
- ⌨️ 熟悉的快捷键 (类 VS Code)
- 📐 自动缩进与格式化
### 3️⃣ 三种 AI 模型随意切换
#### Claude (推荐)
```typescript
// 使用 Anthropic 官方 SDK
import Anthropic from '@anthropic-ai/sdk'
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY
})
const response = await client.messages.create({
model: 'claude-3-5-sonnet-20241022',
max_tokens: 4096,
messages: [{ role: 'user', content: prompt }]
})
```
#### OpenAI
```typescript
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
})
const response = await client.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: prompt }]
})
```
#### Ollama (本地模型)
```typescript
import { Ollama } from 'ollama'
const ollama = new Ollama({ host: 'http://localhost:11434' })
const response = await ollama.chat({
model: 'codellama',
messages: [{ role: 'user', content: prompt }]
})
```
---
## 🚀 快速开始
### 安装依赖
```bash
# 克隆项目
git clone https://github.com/Ricardo-M-L/cordex.git
cd cordex
# 安装依赖
npm install
```
### 配置 API Key
在项目根目录创建 `.env` 文件:
```env
# 选择一种或多种配置
# 使用 Claude
ANTHROPIC_API_KEY=your_anthropic_api_key
# 使用 OpenAI
OPENAI_API_KEY=your_openai_api_key
# 使用 Ollama (本地模型,无需 API Key)
# 确保 Ollama 服务已启动: ollama serve
```
### 开发模式
```bash
npm run dev
```
### 打包应用
```bash
# macOS
npm run build:mac
# Windows
npm run build:win
# 同时打包 macOS 和 Windows
npm run build:all
```
---
## 🎨 界面预览
Cordex 采用现代化设计,界面清爽简洁:
- **左侧**: 文件树导航
- **中间**: 代码编辑区域
- **右侧**: AI 对话面板
- **底部**: 集成终端
- **顶部**: 设置与配置
---
## 🔧 为什么选择 Cordex?
### vs Cursor
| 特性 | Cordex | Cursor |
|------|--------|--------|
| **价格** | 完全免费 | $20/月 |
| **开源** | ✅ Apache 2.0 | ❌ 闭源 |
| **本地模型** | ✅ 支持 Ollama | ❌ 仅云端 |
| **定制性** | ✅ 完全可定制 | ⚠️ 有限 |
| **数据隐私** | ✅ 本地模型可离线 | ⚠️ 云端处理 |
### vs GitHub Copilot
| 特性 | Cordex | Copilot |
|------|--------|---------|
| **完整编辑器** | ✅ 独立应用 | ❌ 需依赖 IDE |
| **对话交互** | ✅ 自然语言对话 | ⚠️ 仅代码补全 |
| **多模型支持** | ✅ Claude/GPT/Ollama | ❌ 仅 Codex |
| **本地部署** | ✅ 支持 | ❌ 仅云端 |
---
## 🌟 核心优势
### 1. 开源透明
所有代码完全开源,你可以:
- 🔍 审查所有源码
- 🛠️ 自由修改定制
- 🤝 贡献代码与功能
- 📚 学习 AI 集成实践
### 2. 多模型灵活切换
根据不同场景选择最合适的模型:
- **Claude**: 代码理解能力强,推理深度好
- **GPT-4**: 通用性强,知识面广
- **Ollama**: 完全离线,保护隐私,无 API 费用
### 3. 专业编辑器体验
基于 Monaco Editor,拥有:
- VS Code 级别的编辑体验
- 丰富的语言支持
- 完善的快捷键系统
- 高性能渲染引擎
### 4. 跨平台支持
基于 Electron,支持:
- 🍎 macOS
- 🪟 Windows
- 🐧 Linux (即将支持)
---
## 🛣️ 未来规划
Cordex 仍在快速迭代中,计划加入:
- [ ] 📁 项目文件管理器 (打开本地项目)
- [ ] 🔍 全局代码搜索
- [ ] 🎨 主题切换 (暗色/亮色)
- [ ] 🔧 插件系统
- [ ] 🌐 远程代码同步
- [ ] 📊 代码统计分析
- [ ] 🤖 更多 AI 模型支持 (Gemini, LLaMA 等)
- [ ] 🎯 代码重构建议
- [ ] 📝 智能注释生成
- [ ] 🧪 单元测试生成
---
## 🤝 贡献指南
Cordex 欢迎任何形式的贡献!
### 如何参与
1. **Fork 项目**
2. **创建特性分支** (`git checkout -b feature/AmazingFeature`)
3. **提交改动** (`git commit -m 'Add some AmazingFeature'`)
4. **推送分支** (`git push origin feature/AmazingFeature`)
5. **提交 Pull Request**
### 贡献方向
- 🐛 修复 Bug
- ✨ 新增功能
- 📚 完善文档
- 🎨 优化 UI/UX
- 🧪 添加测试
- 🌍 多语言支持
---
## 💬 社区交流
- **GitHub Issues**: [提交问题与建议](https://github.com/Ricardo-M-L/cordex/issues)
- **GitHub Discussions**: [讨论与交流](https://github.com/Ricardo-M-L/cordex/discussions)
- **Star 项目**: 关注项目动态
---
## 📄 开源协议
Cordex 采用 **Apache License 2.0** 开源协议。
这意味着:
- ✅ 可以自由使用
- ✅ 可以商业使用
- ✅ 可以修改源码
- ✅ 可以分发副本
- ⚠️ 需要保留版权声明
- ⚠️ 需要声明修改内容
---
## 🙏 致谢
Cordex 的诞生离不开以下优秀项目:
- [Electron](https://www.electronjs.org/) - 跨平台桌面应用框架
- [React](https://react.dev/) - 用户界面库
- [Monaco Editor](https://microsoft.github.io/monaco-editor/) - VS Code 编辑器内核
- [Anthropic Claude](https://www.anthropic.com/) - 强大的 AI 模型
- [OpenAI](https://openai.com/) - GPT 系列模型
- [Ollama](https://ollama.ai/) - 本地 AI 模型运行时
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的 CSS 框架
---
## 🎯 结语
**Cordex 不仅是一个项目,更是一种理念:**
> 💡 **让 AI 编程工具不再是少数人的特权,而是每个开发者都能轻松获得的生产力工具。**
如果你认同这个理念,请:
- ⭐ **Star 项目**支持我们
- 🔧 **提交 PR** 参与开发
- 💬 **分享项目**让更多人知道
- 🐛 **反馈问题**帮助改进
---
## 🔗 相关链接
- **GitHub 仓库**: [https://github.com/Ricardo-M-L/cordex](https://github.com/Ricardo-M-L/cordex)
- **问题反馈**: [GitHub Issues](https://github.com/Ricardo-M-L/cordex/issues)
- **项目讨论**: [GitHub Discussions](https://github.com/Ricardo-M-L/cordex/discussions)
---
**让我们一起打造更好的 AI 编程工具!** 🚀
如果觉得 Cordex 对你有帮助,请不要吝惜你的 ⭐ Star!
---
> 📝 作者: Ricardo-M-L
> 📅 日期: 2024年12月
> 📧 联系: [GitHub Profile](https://github.com/Ricardo-M-L)
---