本项目由 FQMONKEY 牵引,完全由 Claude Code 开发。
AI驱动的互动小说引擎 - 打造沉浸式的文字冒险体验
✨ AI驱动叙事 - 利用先进的大语言模型生成动态、个性化的故事体验
🎭 深度角色塑造 - 详细的角色卡片系统,包含性格特征、背景故事、技能和物品
🌿 自由分支选择 - 自定义动作系统,支持"做"、"说"、"故事"三种模式
🎨 专业UI设计 - 现代化的暗色主题,使用Lucide图标系统,全面的无障碍支持
📱 响应式设计 - 完美支持桌面和移动设备,触摸友好的交互
💾 完善的存档系统 - 支持多存档、导入导出、故事进度摘要
🌍 世界构建工具 - 场景参考图、AI生成描述、World Info/Lorebook系统
🎯 状态追踪 - 实时显示时间、地点、物品、关系、目标、健康等状态
- 前端框架: React 19 + TypeScript
- 构建工具: Vite 7.3
- 样式: Tailwind CSS v4
- 状态管理: Zustand 5.0
- 路由: React Router 7.13
- 图标: Lucide React
- 国际化: react-i18next
- Markdown: react-markdown
- DeepSeek
- OpenAI (GPT-4, GPT-4o, etc.)
- Anthropic (Claude)
- Google Gemini
- xAI (Grok)
- OpenRouter
- 自定义端点
npm installnpm run devnpm run buildnpm run preview进入"设置"页面,选择LLM提供商并输入API Key。
- 点击"新故事"开始创建
- 故事风格 - 选择类型(奇幻、科幻、悬疑等)和叙事风格
- 世界场景 - 描述世界观,可上传参考图让AI生成
- 角色设定 - 创建角色,可上传头像让AI生成完整人设
- 总览确认 - 检查所有设定后开始冒险
- 选择预设选项或输入自定义动作
- 查看状态面板了解角色状态
- 使用撤销功能回退决策
- 随时保存进度
infinity-chat/
├── src/
│ ├── components/ # React组件
│ │ ├── game/ # 游戏页面组件
│ │ ├── story-setup/ # 故事创建向导
│ │ ├── settings/ # 设置页面
│ │ ├── saves/ # 存档管理
│ │ └── shared/ # 共享组件
│ ├── services/ # 业务逻辑
│ │ ├── llm/ # LLM提供商抽象
│ │ ├── prompts/ # 提示词生成
│ │ └── storage/ # 本地存储管理
│ ├── stores/ # Zustand状态存储
│ ├── types/ # TypeScript类型定义
│ ├── i18n/ # 国际化配置
│ ├── lib/ # 工具函数和图标系统
│ └── App.tsx # 主应用入口
├── docs/ # 文档
└── public/ # 静态资源
- ✅ 替换所有emoji图标为Lucide React SVG图标系统
- ✅ 添加键盘焦点环支持 (focus-visible)
- ✅ 全局cursor-pointer和交互反馈优化
- ✅ 统一颜色变量系统,消除硬编码颜色
- ✅ 移动端触摸目标优化(最小44x44px)
- ✅ 支持prefers-reduced-motion无障碍特性
- ✅ z-index统一管理
- ✅ 改进过渡动画性能
- ✅ 增强无障碍性(aria-labels, alt text)
- 🔧 增加场景描述maxTokens: 2048 → 4096
- 🔧 增加角色生成maxTokens: 1024 → 2048
- 🔧 增强JSON提取容错能力
- 🔧 改进错误提示信息
- 🎉 完整的故事创建向导
- 🎉 多存档系统
- 🎉 上下文窗口管理和自动裁剪
- 🎉 AI生成世界观和角色人设
- 🎉 多语言支持(中文/英文)
- 🎉 特殊规则/自定义机制系统
- 在
src/services/llm/创建provider实现 - 实现
LLMProvider接口 - 在
src/services/llm/providerRegistry.ts注册 - 在
src/lib/constants.ts添加预设配置
编辑 src/index.css 中的 @theme 块:
@theme {
--color-accent: #7c5bf0; /* 主色调 */
--color-accent-hover: #9070ff; /* hover状态 */
--color-success: #4ade80; /* 成功色 */
--color-warning: #fbbf24; /* 警告色 */
--color-danger: #ef4444; /* 危险色 */
/* ... */
}进入"设置"页面,点击底部的语言切换按钮(中文/English)。
如果AI生成的场景描述或角色人设不完整:
- 确保使用支持较大输出的模型(如GPT-4o, Claude Sonnet)
- 检查API配额是否充足
- 尝试重新生成
在"世界场景"步骤点击"世界信息/Lorebook"展开:
- 添加条目
- 设置触发关键词(如"魔法"、"国王")
- 填写相关背景知识
- 当对话中出现关键词时,相关信息会自动注入上下文
所有数据存储在浏览器的IndexedDB中,不会上传到服务器。可以通过"导出JSON"功能备份存档。
本项目完全由Claude Code开发,欢迎:
- 报告Bug
- 提出功能建议
- 贡献代码(请遵循现有代码风格)
MIT License
- Claude Code - AI开发工具
- FQMONKEY GitHub - 项目牵引者
Built entirely by Claude Code 🤖