An open API service indexing awesome lists of open source software.

https://github.com/darknoah/aime-chat

A cross-platform AI desktop chat cowork app supporting 10+ LLM providers, RAG knowledge base, and MCP tools. Built with Electron + React + Mastra.
https://github.com/darknoah/aime-chat

ai-agent cowork cross-platform desktop-app electron mastra ptc shadcn-ui skills typescript vercel-ai-sdk

Last synced: 21 days ago
JSON representation

A cross-platform AI desktop chat cowork app supporting 10+ LLM providers, RAG knowledge base, and MCP tools. Built with Electron + React + Mastra.

Awesome Lists containing this project

README

          


AIME Chat


Version
Platform
License


Official Website β€’ δΈ­ζ–‡


---


AIME Chat Screenshot

## ✨ Features

- πŸ€– **Multiple AI Provider Support** - Integrated with mainstream AI providers including OpenAI, DeepSeek, Google, Zhipu AI, MiniMax, Ollama, LMStudio, ModelScope, and more
- πŸ’¬ **Intelligent Conversations** - Powerful AI Agent system based on Mastra framework, supporting streaming responses and tool calling
- 🀝 **Open CoWork Capability** - AI is not just for chatting, it can perform actual operations like file editing, code execution, web searching, and more
- πŸ“š **Knowledge Base Management** - Built-in vector database with support for document retrieval, knowledge Q&A, and long-term cultivation memory
- 🧠 **Cultivation Memory** - A scheduled Cultivation Agent extracts preferences, habits, project context, and important facts from chat history into a structured memory wiki
- ⏰ **Cron Automation** - Run scheduled AI tasks with project context, selectable agents/tools, and either reusable or per-run chat threads
- πŸ› οΈ **Tool Integration** - Support for MCP (Model Context Protocol) client with extensible tool capabilities
- πŸŽ™οΈ **Audio Processing** - Built-in Speech-to-Text (STT) and Text-to-Speech (TTS) powered by Qwen3-TTS models
- πŸ” **Skill System** - Search, import, and manage AI skills from Git repositories or the online skill marketplace
- πŸ§‘β€πŸ’» **Assistant Personalities** - Built-in assistant personalities can be selected instantly and customized through the current personality format
- πŸ–₯️ **Background Bash Sessions** - Track long-running shell processes from the current chat or the whole project, with direct stop controls in the UI
- πŸ“‘ **Channel Integration** - Connect AI capabilities to messaging platforms like WeChat and Telegram
- πŸ” **Secrets Management** - Centralized secret key management for tools and services, securely stored locally
- 🎨 **Modern UI** - Built with shadcn/ui component library, supports light/dark theme switching
- 🌍 **Internationalization** - Built-in Chinese and English interfaces
- πŸ”’ **Local First** - Data stored locally for privacy protection
- ⚑ **High Performance** - Built on Electron for cross-platform native experience

## πŸš€ Quick Start

### Prerequisites

- Node.js >= 22.x
- npm >= 10.x
- pnpm >= 10.x

### Install Dependencies

```bash
pnpm install
```

### Development Mode

Start the development server:

- Click on "Electron Main" in VSCode's debug panel to start debugging

The application will start in development mode with hot reload support.

### Build Application

Package desktop application:

```bash
pnpm package
```

Packaged applications will be generated in the `release/build` directory.

### macOS Installation Notes

Due to the app not being signed with an Apple Developer certificate, macOS Gatekeeper may prevent the app from running. If you see "App is damaged" or "Cannot be opened" error, please run the following command in Terminal:

```bash
# After mounting the DMG and copying to Applications
xattr -cr /Applications/aime-chat.app
```

Or right-click the app β†’ hold Option key β†’ click "Open".

## πŸ“¦ Project Structure

```
aime-chat/
β”œβ”€β”€ assets/ # Static assets
β”‚ β”œβ”€β”€ icon.png # Application icon
β”‚ β”œβ”€β”€ models.json # AI model configurations
β”‚ └── model-logos/ # Provider logos
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ main/ # Electron main process
β”‚ β”‚ β”œβ”€β”€ providers/ # AI provider implementations
β”‚ β”‚ β”œβ”€β”€ mastra/ # Mastra Agent and tools
β”‚ β”‚ β”œβ”€β”€ knowledge-base/ # Knowledge base management
β”‚ β”‚ β”œβ”€β”€ tools/ # Tool system
β”‚ β”‚ └── db/ # Database
β”‚ β”œβ”€β”€ renderer/ # React renderer process
β”‚ β”‚ β”œβ”€β”€ components/ # UI components
β”‚ β”‚ β”œβ”€β”€ pages/ # Page components
β”‚ β”‚ β”œβ”€β”€ hooks/ # React Hooks
β”‚ β”‚ └── styles/ # Style files
β”‚ β”œβ”€β”€ types/ # TypeScript type definitions
β”‚ β”œβ”€β”€ entities/ # Data entities
β”‚ └── i18n/ # Internationalization config
└── release/ # Build artifacts
```

## 🎯 Core Features

### AI Provider Configuration

Support for configuring multiple AI providers, each with independent settings:

- API Key
- API Endpoint
- Available model list
- Enable/Disable status

Supported providers include:

| Provider | Type | Description |
|----------|------|-------------|
| OpenAI | Cloud | GPT series models |
| DeepSeek | Cloud | DeepSeek series models |
| Google | Cloud | Gemini series models |
| Zhipu AI | Cloud | GLM series models |
| MiniMax | Cloud | MiniMax series models |
| Ollama | Local | Run open-source models locally |
| LMStudio | Local | Local model management tool |
| ModelScope | Cloud | ModelScope community models |
| SerpAPI | Cloud | Google Search API service |

### Knowledge Base Features

- πŸ“„ Document upload and parsing
- πŸ” Vector storage and retrieval
- πŸ’‘ Intelligent Q&A based on knowledge base
- 🧠 Cultivation memory that maintains a global memory wiki from chat history
- πŸ“Š Knowledge base management interface

### Cultivation Memory

AIME Chat includes a global memory knowledge base maintained by the built-in `Cultivation` Agent. When the `Cultivation Daily` cron task is enabled, it reads newly updated user conversations, filters out automation-generated threads, deduplicates against existing memories, and writes useful long-term information into Markdown pages such as `preferences.md`, `habits.md`, and project notes.

This helps future conversations automatically inherit stable preferences, working habits, important people/entities, and ongoing project context without pasting old chat logs into every prompt.

### Tool System

Rich built-in tools that AI Agents can call autonomously:

| Category | Tools | Description |
|----------|-------|-------------|
| File System | Bash, Read, Write, Edit, Grep, Glob | File read/write, search, edit operations |
| Code Execution | CodeExecution | Execute Python and Node.js code |
| Web Tools | Web Fetch, Web Search | Web scraping and search (with AI content summarization) |
| Image Processing | GenerateImage, EditImage, RMBG | Image generation, editing, and background removal |
| Vision Analysis | Vision | LLM-powered image recognition and analysis (with OCR integration) |
| OCR Recognition | PaddleOCR | Document and image text recognition (supports PDF/images) |
| Audio Processing | SpeechToText, TextToSpeech | Speech-to-text and text-to-speech (powered by Qwen3-TTS) |
| Database | LibSQL | Database query and management |
| Translation | Translation | Multi-language text translation |
| Task Management | TaskCreate, TaskGet, TaskList, TaskUpdate | Structured task creation, query, and status management |
| Information Extraction | Extract | Extract structured information from documents |
| Knowledge Base | KnowledgeBase | Knowledge base retrieval and intelligent Q&A |

- 🧡 **Background Bash Tracking** - Long-running Bash sessions are visible from task/context surfaces, including project-wide sessions when a chat is bound to a project
- πŸ”Œ **MCP Protocol Support** - Extensible third-party tools
- βš™οΈ **Tool Configuration UI** - Visual tool management and configuration
- πŸ” **Skill Marketplace** - Search and import skills from Git repositories or online marketplace (skills.sh)

### Channel Integration

Connect AI capabilities to external messaging platforms:

| Channel | Description |
|---------|-------------|
| WeChat | Connect to WeChat for AI-powered conversations |
| Telegram | Integrate with Telegram bots for AI interaction |

### Secrets Management

Centralized management of secret keys and credentials used by tools and services:

- πŸ”‘ Unified interface for managing API keys and tokens
- πŸ”’ Secure local storage with encryption
- πŸ”— Automatic injection into tools that require authentication

## πŸ› οΈ Tech Stack

### Frontend
- **Framework**: React 19 + TypeScript
- **UI Library**: shadcn/ui (based on Radix UI)
- **Styling**: Tailwind CSS
- **Routing**: React Router
- **State Management**: React Context + Hooks
- **Internationalization**: i18next
- **Markdown**: react-markdown + remark-gfm
- **Code Highlighting**: shiki

### Backend (Main Process)
- **Runtime**: Electron
- **AI Framework**: Mastra
- **Database**: TypeORM + better-sqlite3
- **Vector Storage**: @mastra/fastembed
- **AI SDK**: Vercel AI SDK

### Build Tools
- **Bundler**: Webpack 5
- **Compiler**: TypeScript + ts-loader
- **Hot Reload**: webpack-dev-server
- **App Packaging**: electron-builder

## Project Initialization

```bash
git clone https://github.com/DarkNoah/aime-chat.git
cd ./aime-chat
pnpm install

# Since pnpm disables postinstall scripts by default, if you encounter missing binary packages or similar issues, run:
pnpm approve-builds
```

## βš™οΈ Configuration

### Optional Runtime Libraries

AIME Chat supports optional runtime libraries that can be installed from the Settings page:

| Runtime | Description |
|---------|-------------|
| UV / Python | Python runtime used by code execution, OCR, and other local processing tools |
| Node.js / Bun | JavaScript runtimes used by Node.js code execution and MCP-related workflows |
| PaddleOCR | OCR recognition engine based on PaddlePaddle, supports document structure analysis and text extraction from PDF/images |
| Qwen Audio | Audio processing engine based on Qwen3-TTS, supports speech recognition (ASR) and text-to-speech (TTS) |

These runtimes are installed under the application data directory. Runtime install attempts write detailed success and failure information to the application log, and the About page provides a direct entry for opening the log file.

### Data Storage

Application data is stored by default in the system user directory:

- **macOS**: `~/Library/Application Support/aime-chat`
- **Windows**: `%APPDATA%/aime-chat`
- **Linux**: `~/.config/aime-chat`

## 🀝 Contributing

Issues and Pull Requests are welcome!

1. Fork this repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

### Code Standards

- Use ESLint and Prettier to maintain consistent code style
- Follow TypeScript type specifications

## πŸ“„ License

This project is licensed under the [MIT](LICENSE) License.

## πŸ‘¨β€πŸ’» Author

**Noah**
- Email: 781172480@qq.com

## πŸ™ Acknowledgments

- [Electron](https://www.electronjs.org/)
- [React](https://react.dev/)
- [Mastra](https://mastra.ai/)
- [Vercel AI SDK](https://sdk.vercel.ai/)
- [shadcn/ui](https://ui.shadcn.com/)
- [Radix UI](https://www.radix-ui.com/)

## πŸ”— Related Links

- [Official Website](https://darknoah.github.io/aime-chat/)
- [Issue Tracker](https://github.com/DarkNoah/aime-chat/issues)
- [Changelog](CHANGELOG.md)

---


Built with ❀️ by Noah