EchoUI 是一个基于 Tauri 的桌面应用程序,用于执行命令并实时显示输出。支持 Markdown 渲染、语法高亮和智能滚动。
- 🚀 实时命令输出 - 执行命令并实时显示输出
- 📝 Markdown 渲染 - 支持 Markdown 格式输出,包括代码高亮
- 🎨 语法高亮 - 使用 remark-highlight 进行代码语法高亮
- 🔄 智能滚动 - 自动滚动到最新输出,支持手动滚动查看历史
- 🎯 状态指示 - 顶部状态栏显示命令执行状态(运行中/成功/失败/空闲)
- ⌨️ 快捷键支持 - 按 Esc 键停止命令并退出应用,Ctrl+D 切换窗口最大化
- 🖱️ 右键禁用 - 防止意外操作
- 📱 响应式设计 - 适配不同屏幕尺寸
- 前端: React 19.1 + TypeScript + Vite
- 后端: Rust + Tauri 2.0
- UI 库: ReactMarkdown + remark-gfm + remark-highlight
- 构建工具: npm + Cargo
- Node.js 18+
- Rust 1.70+
- npm 或 yarn
# 克隆项目
git clone https://github.com/FortuneW/echo_ui.git
cd echo_ui
# 安装前端依赖
npm install# 开发模式运行
npm run tauri dev# 使用 npm 脚本构建
npm run tauri build
# 或使用构建脚本
./build.sh构建完成后,可执行文件位于 src-tauri/target/release/echo_ui
echo_ui/
├── src/ # React 前端代码
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 应用入口
│ └── vite-env.d.ts # Vite 类型定义
├── src-tauri/ # Rust 后端代码
│ ├── src/
│ │ ├── main.rs # 主入口
│ │ └── lib.rs # 库代码
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 应用配置
├── public/ # 静态资源
├── index.html # HTML 入口文件
├── vite.config.ts # Vite 配置
└── package.json # Node.js 依赖配置
# 运行应用并执行命令
./echo_ui "ls -la"
# 或在开发环境中
npm run tauri dev -- "ls -la"- 自动执行 - 应用启动后自动执行传入的命令
- 实时输出 - 命令输出以 Markdown 格式实时显示
- 状态指示 - 顶部状态栏显示当前执行状态
- 智能滚动 - 输出区域支持自动滚动,也可手动滚动查看历史
- 快捷操作 - 按 Esc 键停止命令并退出应用
| 快捷键 | 功能 |
|---|---|
| Esc | 停止命令并退出应用 |
| Ctrl+D | 切换窗口最大化/还原 |
- 使用 React Hooks 管理状态
- 响应式设计适配不同屏幕尺寸
- Markdown 渲染优化了标题、代码块、链接等样式
- 智能滚动:用户滚动离开底部时停止自动滚动
- 使用 Tauri 的 CLI 插件执行命令
- 通过事件系统与前端通信
- 支持命令终止和错误处理
- 异步处理命令输出流
- 前端功能:修改
src/App.tsx - 后端功能:修改
src-tauri/src/lib.rs - 配置:修改
src-tauri/tauri.conf.json
我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细信息。
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- Tauri - 跨平台桌面应用框架
- React - 用户界面库
- ReactMarkdown - Markdown 渲染器
如果这个项目对你有帮助,请给我们一个 Star!
