Skip to content

Latest commit

 

History

194 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

i-code

i-code logo

本地 AI 网关与 CLI 配置管理中心

Release Tauri 2.x React 19 Rust 2021 pnpm 11 脚本模板仓库 English README

功能特性应用截图技术栈快速开始开发指南架构设计安全说明


使用指南English GuideEnglish README

功能特性

  • AI 网关管理:集中管理多 LLM 供应商(OpenAI、Anthropic、Gemini、OpenRouter 等),支持多协议与多种认证方式。
  • 本地 API 网关:在 127.0.0.1:54321 暴露统一本地接口,通过 {provider_slug}/{model_id} 路由到真实供应商。
  • 虚拟供应商:以一个固定对外模型 ID({alias}/{model_id})隐藏底层真实供应商,支持候选路由优先级与自动故障转移——供应商增减或不可用时客户端无需感知、无缝切换。
  • CLI 配置档案:为 Claude Code、Codex、Gemini CLI 等维护配置档案,可直连供应商或路由到本地网关。
  • 聊天界面:内置聊天 UI,支持发送消息、流式响应、错误气泡展示,消息以 JSONL 格式存储。
  • 图像生成:内置视觉生成工作台与画廊,直连图像生成供应商,支持文生图与产物本地化存储,并保留生成历史与调用统计。
  • 敏感数据加密:API Key 等敏感数据通过 AES-GCM 加密存储,配置文件中仅存 $SECRET:{uuid}$ 引用。
  • 额度与调用监控:支持供应商额度查询与模型调用记录统计。
  • 备份与恢复:支持本地备份与 WebDAV 备份,使用 SQLite Online Backup API。
  • 应用内诊断日志:双日志机制,分别服务开发调试与业务运行时诊断。
  • 脚本模板与模板市场:支持 Rhai 额度监控脚本模板的增删改查与生命周期管理(草稿/启用/禁用)、CodeMirror 编辑器(内置 snippet 与系统变量/函数文档)与沙箱试运行,并可在应用内浏览公共模板仓库、一键应用为本地模板。
  • Cline 免费模型代理:内置 Cline Free 供应商预设(自动附带 x-client-type: cline-cli 请求头,默认关联 DeepSeek V4 Flash 免费模型),可经本地网关统一代理访问免费模型。
  • 轻量社区:内置轻量社区模块(帖子 / 回复 / 积分 / 外链分享),支持 Markdown 渲染,无需离开应用即可交流与沉淀内容。

应用截图

仪表盘

仪表盘截图占位

AI 网关供应商

AI 网关供应商截图占位

CLI 档案

CLI 档案截图占位

聊天界面

聊天界面截图占位

技术栈

层级 技术
桌面框架 Tauri 2.x(Rust + WebView)
前端 React 19 + TypeScript 5
路由 TanStack Router
UI shadcn/ui + Tailwind CSS + Font Awesome
状态 Zustand(前端)+ Tauri State(后端)
表单 react-hook-form + zod
国际化 i18next(zh-CN / en)
后端 HTTP 网关 axum
数据库 SQLite(rusqlite + r2d2)
加密 AES-GCM
类型同步 ts-rs(Rust → TypeScript)

快速开始

环境要求

安装

# 克隆仓库
git clone https://github.com/xucux/i-code.git
cd i-code

# 安装依赖
pnpm install

运行

# 桌面端开发模式(推荐)
pnpm tauri:dev

# 仅前端开发
pnpm dev

开发指南

常用命令

pnpm dev              # 仅前端 Vite 开发服务器
pnpm tauri:dev        # 桌面端开发
pnpm tauri:build      # 桌面端打包
pnpm type-check       # TypeScript 类型检查
pnpm lint             # ESLint
pnpm test             # Vitest 前端测试
pnpm test:rust        # Rust 单元测试
pnpm check            # TypeScript + Rust 检查
pnpm check:all        # 完整检查 + 测试

项目结构

i-code/
├── docs/                 # 设计文档与提案
├── scripts/              # 工具脚本
├── src/                  # 前端 React 应用
│   ├── components/       # UI 组件
│   ├── core/             # 类型、错误、事件、工具函数
│   ├── hooks/            # 共享 hooks
│   ├── modules/          # 业务模块
│   └── routes/           # TanStack 文件路由
├── src-tauri/            # Rust 后端
│   ├── data/             # 内置供应商/模型 JSON
│   ├── src/              # Rust 源码
│   └── tauri.conf.json
└── README.md

架构设计

CLI / 外部客户端
    ↓
本地网关 (axum) @ 127.0.0.1:54321
    ↓
解析 model = {provider_slug}/{model_id}
    ↓
虚拟供应商故障转移路由(如启用)
    ↓
解析 $SECRET:{uuid}$ 引用
    ↓
转发至真实上游供应商
    ↓
拦截器异步写入 logger + call-records

安全说明

  • API Key / Token 禁止以明文形式存储或写入日志
  • 配置文件与数据库中仅保存加密引用:$SECRET:{uuid}$
  • 加解密操作仅在 Rust 后端完成。
  • 前端仅在输入时接触明文,一次性传往后端,不缓存。
  • 内部 CLI 请求必须携带 inner-cli-api 请求头;否则需提供有效的 Authorization: Bearer {gateway_key}

免责声明

本工具仅限于代理已有供应商 API,请求体几乎完全透传,不涉及逆向、不涉及破解等操作;如果您的供应商账户在使用过程中,出现封禁、限速、订阅取消等问题,作者不承担任何责任。

路线图

  • 供应商 / 模型 CRUD 与设置
  • 敏感数据本地加密
  • 网关运行时(health / models / chat / messages)
  • 虚拟供应商路由
  • 备份与恢复
  • 完整的 CLI 管理业务流程
  • 应用内聊天模块
  • 系统密钥链 Secret 存储

致谢

开源协议

MIT © i-code


使用 TauriReactRust 构建。

About

Local AI Gateway and CLI Configuration Management Center | 本地AI网关、供应商API代理、CLI配置管理、支持故障路由切换

Topics

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages