Multi-platform AI Service Unified Management Tool
Chat2API is a native desktop application that provides an OpenAI-compatible API for multiple AI service providers. It allows you to use any OpenAI-compatible client with DeepSeek, GLM, Kimi, MiniMax, Qwen, Z.ai and more across macOS, Windows, and Linux.
- OpenAI Compatible API: Provides standard OpenAI-compatible API endpoints for seamless integration
- π§ Function Calling Support: Full Function Calling capability via Prompt Engineering for all providers
- Multi-Provider Support: Connect DeepSeek, GLM, Kimi, MiniMax, Qwen, Z.ai and more
- Dashboard Monitoring: Real-time request traffic, token usage, and success rates
- API Key Management: Generate and manage keys for your local proxy
- Model Management: View and manage available models from all providers
- Request Logs: Detailed request logging for debugging and analysis
- Proxy Configuration: Flexible proxy settings and routing strategies
- System Tray Integration: Quick access to status from menu bar
- Multilingual: English and Simplified Chinese support
- Modern UI: Clean, responsive interface with dark/light theme support
Chat2API implements full Function Calling capability through Prompt Engineering and Stream Parsing, enabling tool use for all supported models without relying on native Function Calling APIs.
-
Protocol Definition: Design a text protocol that models can easily understand and parse
[function_calls] [call:tool_name]{"argument": "value"}[/call] [/function_calls] -
Prompt Injection: Convert OpenAI-format
toolsdefinitions into System Prompt -
Output Interception: Real-time interception of protocol text during streaming
-
Format Restoration: Extract protocol content and wrap as OpenAI-format
tool_calls
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="http://localhost:8080/v1"
)
# Define tools
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"}
},
"required": ["location"]
}
}
}]
# Call model
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "What's the weather in Beijing?"}],
tools=tools
)
# Handle tool calls
if response.choices[0].message.tool_calls:
for tool_call in response.choices[0].message.tool_calls:
print(f"Tool: {tool_call.function.name}")
print(f"Args: {tool_call.function.arguments}")| Provider | Auth Type | OAuth | Models |
|---|---|---|---|
| DeepSeek | User Token | Yes | DeepSeek-V3.2 |
| GLM | Refresh Token | Yes | GLM-5 |
| Kimi | JWT Token | Yes | kimi-k2.5 |
| MiniMax | JWT Token | Yes | MiniMax-M2.5 |
| Qwen (CN) | SSO Ticket | Yes | Qwen3.5-Plus, Qwen3-Max, Qwen3-Flash, Qwen3-Coder, qwen-max-latest |
| Qwen AI (Global) | JWT Token | Yes | Qwen3.5-Plus, Qwen3-Max, Qwen3-VL-Plus, Qwen3-Coder-Plus, Qwen-Plus, Qwen-Turbo |
| Z.ai | JWT Token | Yes | GLM-5, GLM-4.7, GLM-4.6V, GLM-4.6 |
Download the latest release from GitHub Releases:
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | Chat2API-x.x.x-arm64.dmg |
| macOS (Intel) | Chat2API-x.x.x-x64.dmg |
| Windows | Chat2API-x.x.x-x64-setup.exe |
| Linux | Chat2API-x.x.x-x64.AppImage or .deb |
Requirements:
- Node.js 18+
- npm
- Git
# Clone the repository
git clone https://github.com/xiaoY233/Chat2API.git
cd Chat2API
# Install dependencies
npm install
# Start development server
npx electron-vite dev 2>&1npm run build # Build the application
npm run build:mac # Build for macOS (dmg, zip)
npm run build:win # Build for Windows (nsis)
npm run build:linux # Build for Linux (AppImage, deb)
npm run build:all # Build for all platformsLaunch Chat2API and configure your preferred settings.
Go to Providers tab β Add a provider β Enter API key or authenticate via OAuth.
Go to Proxy Settings tab β Configure port and routing strategy β Start the proxy server.
Go to API Keys tab β Generate keys for accessing your local proxy.
- Dashboard: Overall health and traffic statistics
- Models: View available models from all providers
- Logs: Request logs for debugging
| Dashboard | Providers |
|---|---|
![]() |
![]() |
| Proxy Settings | API Keys |
|---|---|
![]() |
![]() |
| Models | Logs |
|---|---|
![]() |
![]() |
| Settings | About |
|---|---|
![]() |
![]() |
- Port: Change the proxy listening port (default: 8080)
- Routing Strategy: Round Robin or Fill First
- Auto-start: Launch proxy automatically on app startup
- Theme: Light, Dark, or System preference
- Language: English or Simplified Chinese
Chat2API/
βββ src/
β βββ main/ # Electron main process
β β βββ index.ts # App entry point
β β βββ tray.ts # System tray integration
β β βββ proxy/ # Proxy server management
β β βββ ipc/ # IPC handlers
β β βββ utils/ # Utilities
β βββ preload/ # Context bridge
β βββ renderer/ # React frontend
β βββ components/ # UI components
β βββ pages/ # Page components
β βββ stores/ # Zustand state
β βββ hooks/ # Custom hooks
βββ build/ # Build resources
βββ scripts/ # Build scripts
| Component | Technology |
|---|---|
| Framework | Electron 33+ |
| Frontend | React 18 + TypeScript |
| Styling | Tailwind CSS |
| State | Zustand |
| Build | Vite + electron-vite |
| Packaging | electron-builder |
| Server | Koa |
Application data is stored in ~/.chat2api/ directory:
config.json- Application configurationproviders.json- Provider settingsaccounts.json- Account credentials (encrypted)logs/- Request logs
Due to macOS security mechanisms, apps downloaded outside the App Store may trigger this warning. Run the following command to fix it:
sudo xattr -rd com.apple.quarantine "/Applications/Chat2API.app"Check for updates in the About page, or download the latest version from GitHub Releases.
- Fork the project
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
GNU General Public License v3.0. See LICENSE for details.
This means:
- β Free to use, modify, and distribute
- β Derivative works must be open-sourced under the same license
- β Must preserve original copyright notices
- Electron - Cross-platform framework
- React - UI framework
- TypeScript - Type-safe JavaScript
- Tailwind CSS - CSS framework
- Zustand - State management
- Koa - HTTP server







