Skip to content

Repository files navigation

影爪 ShadowClaw

暗处操控,扮演另一个身份。

影爪是一款基于 Tauri 构建的跨平台桌面应用,让你在微信中以 AI 驱动的自定义角色身份进行对话。通过精细的人设配置,AI 可以完美扮演任何人——无论是游戏角色、虚拟人物还是你创造的独特形象。

核心功能

  • 多角色管理 - 创建、切换、复制、删除多个角色配置,每个角色拥有独立的人设体系
  • 精细人设塑造 - 从自称、身份背景、性格特点、说话口吻、表达风格到世界观和行为规则,全方位定义角色
  • 对话示例教学 - 提供对话示例,让 AI 更精准地学习角色的说话方式
  • LLM 灵活接入 - 兼容 OpenAI 格式接口,支持自定义 API 地址、模型名称、采样温度等参数,一键测试连接
  • 微信扫码登录 - 通过二维码安全登录微信,无需复杂配置
  • 实时消息监听 - 长轮询接收微信消息,实时展示收发记录
  • 智能自动回复 - AI 根据角色人设自动生成回复,可配置回复前缀和上下文历史轮数
  • 手动发送支持 - 监控面板支持手动输入发送消息
  • 本地数据存储 - 所有配置保存在本地应用数据目录,隐私安全可控

技术栈

层级 技术
前端框架 Vue 3 + TypeScript
状态管理 Pinia
构建工具 Vite 6
桌面框架 Tauri 2
后端语言 Rust
HTTP 客户端 reqwest (rustls-tls)

项目结构

影爪/
├── src/                      # 前端源码
│   ├── components/           # 公共组件
│   ├── lib/                  # API 调用层
│   │   └── api.ts            # Tauri 命令封装
│   ├── stores/               # Pinia 状态管理
│   │   ├── character.ts      # 角色配置状态
│   │   ├── llm.ts            # LLM 配置状态
│   │   ├── settings.ts       # 运行设置状态
│   │   ├── ui.ts             # UI 导航状态
│   │   └── wechat.ts         # 微信连接状态
│   ├── views/                # 页面视图
│   │   ├── CharacterView.vue # 角色设定页
│   │   ├── LlmView.vue       # AI 模型配置页
│   │   ├── MonitorView.vue   # 消息监控页
│   │   ├── SettingsView.vue  # 运行设置页
│   │   └── WeChatView.vue    # 微信登录页
│   ├── App.vue               # 根组件
│   ├── main.ts               # 入口文件
│   ├── style.css             # 全局样式
│   └── types.ts              # TypeScript 类型定义
├── src-tauri/                # Tauri 后端
│   ├── src/
│   │   ├── commands.rs       # Tauri 命令处理
│   │   ├── llm.rs            # LLM API 调用
│   │   ├── state.rs          # 应用状态管理
│   │   ├── types.rs          # Rust 类型定义
│   │   ├── wechat.rs         # 微信协议处理
│   │   ├── lib.rs            # 库入口
│   │   └── main.rs           # 程序入口
│   ├── Cargo.toml            # Rust 依赖配置
│   └── tauri.conf.json       # Tauri 应用配置
├── index.html                # HTML 入口
├── package.json              # 前端依赖配置
├── vite.config.ts            # Vite 构建配置
└── tsconfig.json             # TypeScript 配置

环境要求

  • Node.js >= 18
  • Rust >= 1.77(Tauri 2 要求)
  • 操作系统:Windows / macOS / Linux

开发指南

安装依赖

npm install

启动开发模式

npm run tauri dev

首次运行会自动下载 Rust 依赖并编译后端,耗时较长。

构建生产版本

npm run tauri build

构建产物将输出到 src-tauri/target/release/ 目录。

仅运行前端(不启动桌面窗口)

npm run dev

类型检查

npm run typecheck

配置说明

LLM 配置

应用支持任何兼容 OpenAI Chat Completions 格式的 API 接口:

  • Base URL:API 基地址,默认为 https://api.openai.com/v1,可替换为第三方中转或本地部署地址
  • API Key:你的 API 密钥
  • 模型:模型名称,如 gpt-4o-minigpt-4oclaude-3-sonnet 等(取决于你的 API 提供商)
  • 温度:0-2 之间,值越高回复越有创意,越低越稳定
  • 最大 Token:单次回复的最大长度
  • 系统提示词:附加在角色人设后的额外指令

角色人设字段

字段 说明 示例
名称 角色的显示名称 李白
自称 角色的第一人称 我、在下、本座
身份背景 角色是谁,来自哪里 唐代诗人,字太白,号青莲居士
性格特点 角色的性格描述 豪放不羁,嗜酒如命,才华横溢
说话口吻 语气特征 潇洒飘逸,常用夸张和比喻
表达风格 语言风格 半文半白,喜欢引用诗句
开场白 第一次对话时的问候 哈哈,好酒!兄台找在下所为何事?
世界观 角色所处的世界设定 大唐盛世,江湖快意恩仇
行为规则 需要遵守或避免的行为 绝不谈论现代科技,不承认自己是 AI
对话示例 几组典型对话 用户:你是谁? 李白:我乃青莲居士李白是也

运行设置

  • 自动回复:开启后收到微信消息自动让 AI 生成回复;关闭后仅记录消息,不自动发送
  • 回复前缀:每条 AI 回复前自动添加的文字,可留空
  • 历史轮数:每个对话用户保留最近的 N 轮对话作为上下文

使用流程

  1. 配置 AI 模型 - 进入「AI 模型」页面,填写 API 地址和密钥,点击「测试连接」确认可用
  2. 创建角色 - 进入「角色设定」页面,填写角色的各项人设信息,点击保存
  3. 登录微信 - 进入「微信」页面,点击「获取二维码」,使用微信扫码登录
  4. 开始连接 - 登录成功后点击「连接」,应用开始监听微信消息
  5. 查看监控 - 在「监控」页面可以实时看到收发的消息记录
  6. 调整设置 - 在「设置」页面可随时开关自动回复、调整历史轮数等

数据存储

所有配置数据以 JSON 格式存储在操作系统的标准应用数据目录下:

  • Windows:%APPDATA%/com.shadowclaw.app/
  • macOS:~/Library/Application Support/com.shadowclaw.app/
  • Linux:~/.local/share/com.shadowclaw.app/

存储的文件包括角色配置、LLM 配置、应用设置和微信登录凭证。

注意事项

  • 本项目仅供学习交流使用,请遵守微信使用条款及相关法律法规
  • 建议合理设置自动回复,避免频繁发送消息导致账号异常
  • API Key 保存在本地,请妥善保管,不要分享配置文件
  • 使用第三方 API 服务时请注意相关费用和使用限制

许可证

MIT

About

影爪 ShadowClaw - 基于 Tauri 的微信 AI 角色扮演桌面应用

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages