[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-FranciscoMoretti--chat-js":3,"tool-FranciscoMoretti--chat-js":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":104,"forks":105,"last_commit_at":106,"license":107,"difficulty_score":108,"env_os":109,"env_gpu":110,"env_ram":110,"env_deps":111,"category_tags":123,"github_topics":124,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":138,"updated_at":139,"faqs":140,"releases":181},9091,"FranciscoMoretti\u002Fchat-js","chat-js","Production-ready AI chat. Start here and make it your own. Formerly Sparka AI","ChatJS 是一个专为生产环境打造的 AI 聊天应用开源框架，旨在帮助开发者快速构建功能完备的定制化聊天产品。它解决了团队在开发 AI 应用时反复重构基础架构（如身份认证、模型接入、流式传输等）的痛点，让开发者能将精力集中在打造独特的业务逻辑上。\n\n该项目非常适合希望快速落地 AI 聊天功能的 Web 开发者及初创团队。通过简单的命令行工具，用户即可生成包含完整技术栈的项目模板。ChatJS 的核心亮点在于其强大的集成能力：内置统一网关可一键接入 Claude、GPT 等 120 多种主流大模型；支持断点续传、对话分支、文件上传、联网搜索、代码执行及图像生成等高级特性；甚至能直接打包为 macOS、Windows 或 Linux 的原生桌面应用。\n\n在技术架构上，ChatJS 基于 Next.js、TypeScript 和 AI SDK 构建，融合了 Drizzle ORM、Redis 缓存及 Shadcn\u002FUI 组件库等现代开发工具，确保了类型安全、高性能与优秀的用户体验。无论是作为学习参考还是商业项目的起点，ChatJS 都提供了一套成熟、可扩展且开箱即用的解决方案。","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"apps\u002Fchat\u002Fapp\u002Ficon.svg\" alt=\"ChatJS\" width=\"64\" height=\"64\">\n\n# ChatJS\n\nStop rebuilding the same AI chat infrastructure. ChatJS gives you a production-ready foundation with authentication, 120+ models, streaming, and tools so you can focus on what makes your app unique.\n\n[**Website**](https:\u002F\u002Fchatjs.dev) · [**Live Demo**](https:\u002F\u002Fdemo.chatjs.dev) · [**Documentation**](https:\u002F\u002Fchatjs.dev\u002Fdocs)\n\n![DemosOnly](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFranciscoMoretti_chat-js_readme_dd0623e3162e.png)\n\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\n## CLI\n\nCreate a new ChatJS app:\n\n```bash\nnpx @chat-js\u002Fcli@latest create my-app\n```\n\nThe CLI walks you through gateway, features, and auth choices, generates `chat.config.ts`, and lists the env vars required by your selections.\n\n## Features\n\n- **120+ Models**: Claude, GPT, Gemini, Grok via one API\n- **Auth**: GitHub, Google, anonymous. Ready to go.\n- **Attachments**: Images, PDFs, docs. Drag and drop.\n- **Resumable Streams**: Continue generation after page refresh\n- **Branching**: Fork conversations, explore alternatives\n- **Sharing**: Share conversations with public links\n- **Web Search**: Real-time web search integration\n- **Image Generation**: AI-powered image creation\n- **Code Execution**: Run code snippets in sandbox\n- **MCP**: Model Context Protocol support\n- **Desktop App**: Package as a native macOS, Windows, or Linux app with Electron\n\n## Stack\n\n- [Next.js](https:\u002F\u002Fnextjs.org) - App Router, React Server Components\n- [TypeScript](https:\u002F\u002Fwww.typescriptlang.org) - Full type safety\n- [AI SDK](https:\u002F\u002Fai-sdk.dev\u002F) - The AI Toolkit for TypeScript\n- [AI Gateway](https:\u002F\u002Fvercel.com\u002Fai-gateway) - Unified access to 120+ AI models\n- [Better Auth](https:\u002F\u002Fwww.better-auth.com) - Authentication & authorization\n- [Drizzle ORM](https:\u002F\u002Form.drizzle.team) - Type-safe database queries\n- [PostgreSQL](https:\u002F\u002Fwww.postgresql.org) - Primary database\n- [Redis](https:\u002F\u002Fredis.io) - Caching & resumable streams\n- [Vercel Blob](https:\u002F\u002Fvercel.com\u002Fstorage\u002Fblob) - Blob storage\n- [Shadcn\u002FUI](https:\u002F\u002Fui.shadcn.com) - Beautiful, accessible components\n- [Tailwind CSS](https:\u002F\u002Ftailwindcss.com) - Styling\n- [tRPC](https:\u002F\u002Ftrpc.io) - End-to-end type-safe APIs\n- [Zod](https:\u002F\u002Fzod.dev) - Schema validation\n- [Zustand](https:\u002F\u002Fzustand.docs.pmnd.rs\u002F) - State management\n- [Motion](https:\u002F\u002Fmotion.dev) - Animations\n- [t3-env](https:\u002F\u002Fenv.t3.gg) - Environment variables\n- [Pino](https:\u002F\u002Fgetpino.io) - Structured Logging\n- [Langfuse](https:\u002F\u002Flangfuse.com) - LLM observability & analytics\n- [Vercel Analytics](https:\u002F\u002Fvercel.com\u002Fanalytics) - Web analytics\n- [Biome](https:\u002F\u002Fbiomejs.dev) - Code linting and formatting\n- [Ultracite](https:\u002F\u002Fultracite.ai) - Biome preset for humans and AI\n- [Streamdown](https:\u002F\u002Fstreamdown.ai\u002F) - Markdown for AI streaming\n- [AI Elements](https:\u002F\u002Felements.ai-sdk.dev\u002Foverview) - AI-native Components\n- [AI SDK Tools](https:\u002F\u002Fai-sdk-tools.dev\u002F) - Developer tools for AI SDK\n\n## Monorepo Layout\n\n- `apps\u002Fsite`: Landing page ([chatjs.dev](https:\u002F\u002Fchatjs.dev))\n- `apps\u002Fchat`: Next.js chat app ([demo.chatjs.dev](https:\u002F\u002Fdemo.chatjs.dev))\n- `apps\u002Fdocs`: Mintlify docs ([chatjs.dev\u002Fdocs](https:\u002F\u002Fchatjs.dev\u002Fdocs))\n- `packages\u002Fcli`: interactive scaffold CLI\n\n## Development\n\n- `bun dev:chat`: run chat app\n- `bun dev:docs`: run docs\n- `bun lint`: run workspace lint\n- `bun test:types`: run chat app typecheck\n\n## Releases\n\nReleases are driven by Changesets for the whole repository.\n\n- Add a changeset for each releasable package you change.\n- Merge the generated version PR from the Changesets workflow.\n- Public packages such as `@chat-js\u002Fcli` publish to npm.\n- Desktop installers for `@chat-js\u002Felectron` publish to GitHub Releases.\n\n## License\n\nApache-2.0\n\n\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Foss\">\n  \u003Cimg alt=\"Vercel OSS Program\" src=\"https:\u002F\u002Fvercel.com\u002Foss\u002Fprogram-badge.svg\" \u002F>\n\u003C\u002Fa>\n\u003Cbr \u002F>\n","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"apps\u002Fchat\u002Fapp\u002Ficon.svg\" alt=\"ChatJS\" width=\"64\" height=\"64\">\n\n# ChatJS\n\n不要再重复构建相同的 AI 聊天基础设施了。ChatJS 为你提供一个生产就绪的基础框架，内置身份验证、120 多种模型、流式传输和工具功能，让你可以专注于打造应用的独特之处。\n\n[**官网**](https:\u002F\u002Fchatjs.dev) · [**在线演示**](https:\u002F\u002Fdemo.chatjs.dev) · [**文档**](https:\u002F\u002Fchatjs.dev\u002Fdocs)\n\n![DemosOnly](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFranciscoMoretti_chat-js_readme_dd0623e3162e.png)\n\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\n## CLI\n\n创建一个新的 ChatJS 应用：\n\n```bash\nnpx @chat-js\u002Fcli@latest create my-app\n```\n\nCLI 会引导你完成网关、功能和认证选项的选择，生成 `chat.config.ts` 文件，并列出你所选配置所需的环境变量。\n\n## 功能特性\n\n- **120+ 模型**：通过一个 API 即可调用 Claude、GPT、Gemini、Grok 等多种模型。\n- **认证**：支持 GitHub、Google 和匿名登录，开箱即用。\n- **附件支持**：图片、PDF、文档等，支持拖放上传。\n- **断点续传流**：页面刷新后仍可继续生成内容。\n- **分支对话**：复制并扩展对话，探索不同可能性。\n- **分享功能**：通过公开链接分享对话记录。\n- **网络搜索**：实时集成网页搜索功能。\n- **图像生成**：基于 AI 的图像创作能力。\n- **代码执行**：在沙盒环境中运行代码片段。\n- **MCP**：支持模型上下文协议。\n- **桌面应用**：使用 Electron 将应用打包为原生 macOS、Windows 或 Linux 应用。\n\n## 技术栈\n\n- [Next.js](https:\u002F\u002Fnextjs.org) - App Router、React Server Components\n- [TypeScript](https:\u002F\u002Fwww.typescriptlang.org) - 完整的类型安全支持\n- [AI SDK](https:\u002F\u002Fai-sdk.dev\u002F) - 面向 TypeScript 的 AI 工具包\n- [AI Gateway](https:\u002F\u002Fvercel.com\u002Fai-gateway) - 统一接入 120+ 种 AI 模型\n- [Better Auth](https:\u002F\u002Fwww.better-auth.com) - 身份验证与授权服务\n- [Drizzle ORM](https:\u002F\u002Form.drizzle.team) - 类型安全的数据库查询\n- [PostgreSQL](https:\u002F\u002Fwww.postgresql.org) - 主数据库\n- [Redis](https:\u002F\u002Fredis.io) - 缓存与断点续传流支持\n- [Vercel Blob](https:\u002F\u002Fvercel.com\u002Fstorage\u002Fblob) - 对象存储\n- [Shadcn\u002FUI](https:\u002F\u002Fui.shadcn.com) - 美观且易访问的组件库\n- [Tailwind CSS](https:\u002F\u002Ftailwindcss.com) - 样式化工具\n- [tRPC](https:\u002F\u002Ftrpc.io) - 端到端类型安全的 API\n- [Zod](https:\u002F\u002Fzod.dev) - 数据模式验证\n- [Zustand](https:\u002F\u002Fzustand.docs.pmnd.rs\u002F) - 状态管理\n- [Motion](https:\u002F\u002Fmotion.dev) - 动画效果\n- [t3-env](https:\u002F\u002Fenv.t3.gg) - 环境变量管理\n- [Pino](https:\u002F\u002Fgetpino.io) - 结构化日志记录\n- [Langfuse](https:\u002F\u002Flangfuse.com) - LLM 可观测性与分析\n- [Vercel Analytics](https:\u002F\u002Fvercel.com\u002Fanalytics) - 网站分析\n- [Biome](https:\u002F\u002Fbiomejs.dev) - 代码检查与格式化工具\n- [Ultracite](https:\u002F\u002Fultracite.ai) - Biome 预设，适合人类与 AI 共同使用\n- [Streamdown](https:\u002F\u002Fstreamdown.ai\u002F) - 专为 AI 流式传输设计的 Markdown 格式\n- [AI Elements](https:\u002F\u002Felements.ai-sdk.dev\u002Foverview) - 原生 AI 组件\n- [AI SDK Tools](https:\u002F\u002Fai-sdk-tools.dev\u002F) - 面向 AI SDK 的开发者工具\n\n## 单仓库布局\n\n- `apps\u002Fsite`: 登录页 ([chatjs.dev](https:\u002F\u002Fchatjs.dev))\n- `apps\u002Fchat`: Next.js 聊天应用 ([demo.chatjs.dev](https:\u002F\u002Fdemo.chatjs.dev))\n- `apps\u002Fdocs`: Mintlify 文档 ([chatjs.dev\u002Fdocs](https:\u002F\u002Fchatjs.dev\u002Fdocs))\n- `packages\u002Fcli`: 交互式脚手架 CLI\n\n## 开发\n\n- `bun dev:chat`: 运行聊天应用\n- `bun dev:docs`: 运行文档\n- `bun lint`: 运行工作区代码检查\n- `bun test:types`: 运行聊天应用的类型检查\n\n## 发布流程\n\n发布由 Changesets 驱动，适用于整个代码库。\n\n- 每当你修改可发布的包时，添加一个 changeset。\n- 合并 Changesets 工作流自动生成的版本 PR。\n- 公开的包（如 `@chat-js\u002Fcli`）会发布到 npm。\n- `@chat-js\u002Felectron` 的桌面安装包则发布到 GitHub Releases。\n\n## 许可证\n\nApache-2.0\n\n\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Foss\">\n  \u003Cimg alt=\"Vercel 开源项目计划\" src=\"https:\u002F\u002Fvercel.com\u002Foss\u002Fprogram-badge.svg\" \u002F>\n\u003C\u002Fa>\n\u003Cbr \u002F>","# ChatJS 快速上手指南\n\nChatJS 是一个生产就绪的 AI 聊天应用基础架构，内置身份验证、支持 120+ 模型、流式传输及多种工具，帮助开发者快速构建独特的 AI 应用。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**：macOS, Windows, 或 Linux\n*   **Node.js**：建议安装最新 LTS 版本 (推荐配合 `bun` 使用以获得最佳体验)\n*   **包管理器**：推荐使用 `bun` (项目原生支持)，也可使用 `npm` 或 `pnpm`\n*   **数据库**：PostgreSQL (用于主数据存储)\n*   **缓存**：Redis (用于缓存和可恢复的流式传输)\n*   **账号准备**：\n    *   Vercel 账号 (用于部署和 AI Gateway)\n    *   数据库托管服务 (如 Neon, Supabase 或本地 PG)\n    *   Redis 托管服务 (如 Upstash 或本地 Redis)\n\n> **国内开发者提示**：如果访问 npm 源较慢，建议配置淘宝镜像源：\n> ```bash\n> npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n> ```\n> 若使用 bun，可配置：\n> ```bash\n> bun config set registry https:\u002F\u002Fregistry.npmmirror.com\n> ```\n\n## 安装步骤\n\n使用官方 CLI 工具一键创建新项目。CLI 会引导你配置网关、功能模块和认证方式，并自动生成配置文件。\n\n1.  **创建应用**\n    在终端运行以下命令（将 `my-app` 替换为你的项目名称）：\n\n    ```bash\n    npx @chat-js\u002Fcli@latest create my-app\n    ```\n\n2.  **跟随向导配置**\n    运行命令后，CLI 会交互式地询问以下信息：\n    *   **AI Gateway 配置**：选择模型提供商接入方式。\n    *   **功能选择**：勾选需要的特性（如网页搜索、图片生成等）。\n    *   **认证方式**：选择 GitHub、Google 或匿名登录。\n\n3.  **配置环境变量**\n    项目生成后，CLI 会列出所需的环境变量。请在项目根目录创建 `.env` 文件，并根据提示填入以下关键信息：\n    *   数据库连接字符串 (`DATABASE_URL`)\n    *   Redis 连接地址 (`REDIS_URL`)\n    *   Vercel AI Gateway Key 或直接的大模型 API Key\n    *   认证相关的 Secret 和 Callback URL\n\n## 基本使用\n\n项目初始化完成后，你可以立即启动开发服务器进行预览和调试。\n\n1.  **启动开发服务器**\n    进入项目目录，运行：\n\n    ```bash\n    bun dev:chat\n    ```\n    *(如果你未安装 bun，可使用 `npm run dev:chat` 或 `pnpm dev:chat`)*\n\n2.  **访问应用**\n    打开浏览器访问 `http:\u002F\u002Flocalhost:3000` (具体端口请以终端输出为准)。\n\n3.  **核心功能体验**\n    *   **对话**：直接在界面输入消息，体验支持 120+ 模型（Claude, GPT, Gemini 等）的流式对话。\n    *   **多模态**：尝试拖拽上传图片或 PDF 文档进行分析。\n    *   **高级特性**：测试“分支对话”(Fork) 功能探索不同回答，或使用“代码执行”沙箱运行代码片段。\n\n4.  **打包桌面应用 (可选)**\n    如需构建原生桌面应用 (macOS\u002FWindows\u002FLinux)，可针对 Electron 版本进行构建：\n\n    ```bash\n    bun build:electron\n    ```\n\n现在，你已经拥有了一个功能完备的 AI 聊天应用底座，可以基于 `apps\u002Fchat` 目录开始定制你的独特功能了。","一家初创团队急需在两周内上线一款面向开发者的 AI 编程助手，要求支持多模型切换、代码沙箱运行及用户会话管理。\n\n### 没有 chat-js 时\n- **重复造轮子**：团队需从零搭建鉴权系统、数据库 schema 及流式响应接口，耗费大量时间处理基础设施而非核心业务。\n- **模型接入繁琐**：对接 Claude、GPT 等不同厂商 API 需编写多套适配代码，维护成本高且难以统一计费与限流。\n- **高级功能缺失**：实现“断点续传”、对话分支探索或代码沙箱执行等功能技术门槛极高，短期内无法交付。\n- **类型安全薄弱**：前后端数据结构缺乏端到端的类型校验，导致运行时错误频发，调试效率低下。\n\n### 使用 chat-js 后\n- **极速启动**：通过 CLI 一键生成包含 Next.js、Better Auth 和 Drizzle ORM 的完整项目，开箱即用，直接聚焦差异化功能开发。\n- **统一模型网关**：内置 AI Gateway 无缝集成 120+ 主流模型，仅需配置即可实现动态切换，无需关心底层协议差异。\n- **原生高级特性**：直接启用可恢复流、对话分支、代码执行沙箱及文件上传功能，用户体验瞬间达到生产级标准。\n- **全栈类型安全**：基于 TypeScript、tRPC 和 Zod 构建，从数据库查询到前端组件均享有严格的类型保护，大幅减少 Bug。\n\nchat-js 将原本需要数月的基础设施建设工作压缩至几天，让团队能全心投入打造独特的 AI 应用价值。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFranciscoMoretti_chat-js_480ced9f.png","FranciscoMoretti","Francisco Moretti","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FFranciscoMoretti_16ae8f2c.png","Building Full-Stack AI products. React, Next.js, TypeScript, TailwindCSS, Python, AI SDK","Alaro AI","UK",null,"franmoretti_","www.franciscomoretti.com","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti",[84,88,92,96,100],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",85.5,{"name":89,"color":90,"percentage":91},"MDX","#fcb32c",13.3,{"name":93,"color":94,"percentage":95},"CSS","#663399",0.8,{"name":97,"color":98,"percentage":99},"Shell","#89e051",0.2,{"name":101,"color":102,"percentage":103},"JavaScript","#f1e05a",0.1,1169,109,"2026-04-17T10:19:58","NOASSERTION",4,"Linux, macOS, Windows","未说明",{"notes":112,"python":110,"dependencies":113},"该项目为基于 Next.js 的全栈 Web 应用，推荐使用 Bun 作为运行时和包管理器。后端依赖 PostgreSQL 数据库、Redis 缓存以及 Vercel Blob 存储。支持通过 Electron 打包为 macOS、Windows 或 Linux 的桌面应用。AI 模型调用通过 AI Gateway 统一接入，无需本地部署大模型或配置 GPU 环境。",[114,85,115,116,117,118,119,120,121,122],"Next.js","AI SDK","Better Auth","Drizzle ORM","PostgreSQL","Redis","tRPC","Zod","Bun",[35,13,15,14],[125,126,127,128,129,130,131,132,133,134,135,136,137],"ai","anthropic","chat","chatbot","chatgpt","gemini","grok","llm","multiprovider","openai","xai","claude","gemini-ai","2026-03-27T02:49:30.150509","2026-04-18T22:33:49.206971",[141,146,151,156,161,166,171,176],{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},40795,"如何在移动端（特别是 iOS）修复多模态输入框被键盘遮挡或位置偏移的问题？","该问题通常由布局观察器（layout observer）和视口高度设置引起。解决方案包括：\n1. 将 `interactiveWidget` 配置设置为 `'resizes-content'`。\n2. 使用 `h-dvh` (dynamic viewport height) 替代固定高度。\n3. 移除之前引入的干扰 iOS 体验的布局观察器代码。\n维护者已通过推送修复解决了此问题。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F14",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},40796,"在使用 pushState 进行客户端导航时，如何正确处理从首页 (\u002F) 到聊天详情页 (\u002Fchat\u002F\u003Cid>) 的路由及状态重置？","这是 Next.js 客户端导航的特性。使用 `pushState` 时仍在同一“页面”内，不会触发新的页面获取；而使用 Next.js 的 `Link` 组件会获取新页面。\n解决方案：\n1. 使用 `usePathname` Hook 来判断当前路径，从而更新聊天状态。\n2. 确保 `\u002F` 和 `\u002Fchat\u002F\u003Cid>` 对应的 `page.tsx` 都能处理“新建聊天”和“基于 ID 加载聊天”两种情况，以支持内部客户端导航。\n3. 参考 Vercel AI SDK 的实现方式，通过最小化代码变更实现完美的导航体验。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F12",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},40797,"在 Next.js 15 + AI Gateway 部署到 Vercel 时，构建阶段出现 \"No API key provided\" 或 \"Collecting page data\" 错误如何解决？","该错误是因为 Next.js 的静态分析阶段在环境变量可用之前就触发了 Gateway 提供者的初始化。\n解决方法：\n1. 合并最新的构建配置更改，在 `next.config.ts` 中添加 `transpilePackages: ['@ai-models\u002Fvercel-gateway']`（具体包名视版本而定）。\n2. 将 OAuth 凭证在 `lib\u002Fenv.ts` 中设为可选。\n3. 将部分导入转换为动态导入（dynamic imports）以延迟初始化。\n4. 确保使用包含这些修复的最新版本发布版。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F23",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},40798,"运行 `bun run db:migrate` 或设置认证提供者时遇到错误怎么办？","设置认证提供者（Auth Providers）往往容易出错。建议：\n1. 仔细查阅 NextAuth 的官方文档以确认配置步骤。\n2. 如果在迁移后遇到 Google 或 GitHub 登录返回 \"Access declined\"，请检查回调 URL 和环境变量配置是否正确。\n维护者表示正在简化此流程并提供更好的说明文档。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F7",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},40799,"浅色模式（Light Mode）下用户提问内容因颜色问题不可见如何解决？","这是一个已知的样式 Bug。维护者已根据报告修复了浅色模式下的文本颜色对比度问题，确保用户查询内容在浅色背景下清晰可见。请更新至最新代码版本即可解决。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F11",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},40800,"如何在新建对话或编辑消息时自动聚焦输入框？","该功能已在 v0.3.0 版本中实现。\n行为逻辑如下：\n- **新建对话**：自动聚焦输入框。如果初始加载时有缓存内容，光标会定位在现有内容的末尾。\n- **编辑消息**：自动聚焦输入框，并将光标定位在现有内容的末尾。\n无需额外配置，升级版本即可享受此 UX 改进。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F82",{"id":172,"question_zh":173,"answer_zh":174,"source_url":175},40801,"项目是否支持用户在界面中管理自己的 MCP (Model Context Protocol)？","是的，该功能已在路线图中。维护者已经实现了初步版本（参见相关 PR），允许用户在 UI 中添加和管理自己的 MCP。用户可以查看相关 Pull Request 获取最新进展并提供反馈。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F25",{"id":177,"question_zh":178,"answer_zh":179,"source_url":180},40802,"如何防止在选中文本时意外触发消息编辑功能？","可以通过检测当前是否有选中文本来阻止编辑事件的触发。\n具体代码逻辑为：\n```javascript\nif (window.getSelection()?.toString()) return;\n```\n在触发编辑逻辑前加入此判断，即可避免选中文字时误入编辑模式。维护者已在代码库中修复了此问题。","https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fissues\u002F17",[182,187,192,197,202,207,212,217,222,227,232,237,242,246,251,256,261,266,271,276],{"id":183,"version":184,"summary_zh":185,"released_at":186},324349,"@chat-js\u002Fregistry@0.1.2","### 补丁变更\n\n-   [#180](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F180) [`eee3cdc`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002Feee3cdcf32c89129d895774cfed420914c058214) 感谢 [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - 通过移除专用的注册表部署工作流，并将 CLI 的默认注册表源切换为 npm 上发布的 `@chat-js\u002Fregistry` 包，统一使用 Changesets 进行包发布。","2026-04-12T13:49:14",{"id":188,"version":189,"summary_zh":190,"released_at":191},324350,"@chat-js\u002Fcli@0.6.3","### 补丁变更\n\n-   [#180](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F180) [`eee3cdc`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002Feee3cdcf32c89129d895774cfed420914c058214) 感谢 [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - 通过移除专用的注册表部署工作流，并将 CLI 的默认注册表源切换为 npm 上发布的 `@chat-js\u002Fregistry` 包，统一使用 Changesets 进行包发布。\n","2026-04-12T13:49:11",{"id":193,"version":194,"summary_zh":195,"released_at":196},324351,"@chat-js\u002Felectron@0.3.2","为 @chat-js\u002Felectron 0.3.2 发布桌面版构件。","2026-04-12T13:54:15",{"id":198,"version":199,"summary_zh":200,"released_at":201},324352,"@chat-js\u002Fcli@0.6.2","### 补丁变更\n\n-   在所有可发布的包中测试补丁版本的生成。","2026-04-12T10:03:31",{"id":203,"version":204,"summary_zh":205,"released_at":206},324353,"@chat-js\u002Fregistry@0.1.1","### 补丁变更\n\n-   [#159](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F159) [`a507edd`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002Fa507edd5e6678cadc5b73937d3c5baac49af246e) 感谢 [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - 将 `@chat-js\u002Fregistry` 发布为公共包，并公开其生成的注册表工件以及共享的工具环境依赖类型。\n\n-   在所有可发布的包中测试补丁版本的生成。\n","2026-04-12T10:03:29",{"id":208,"version":209,"summary_zh":210,"released_at":211},324354,"@chatjs\u002Felectron@0.3.1","为 @chatjs\u002Felectron 0.3.1 发布桌面版构件。","2026-04-12T10:07:37",{"id":213,"version":214,"summary_zh":215,"released_at":216},324355,"@chat-js\u002Fcli@0.6.1","### 补丁变更\n\n-   [#165](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F165) [`357def8`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002F357def8f78b27310182fcfd2f884d0c864179c85) 感谢 [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - 支持所有包管理器\n","2026-04-10T12:00:06",{"id":218,"version":219,"summary_zh":220,"released_at":221},324356,"@chat-js\u002Fcli@0.6.0","### 小改动\n\n-   [#136](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F136) [`a825e73`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002Fa825e73e79888634d1b8c890118fe8554f92a9fb) 感谢 [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - 现可通过 `create` 命令中的 `Include an Electron desktop app?` 选项生成 Electron 桌面应用脚手架。接受该选项的项目会自动生成一个预配置的 `electron\u002F` 子目录，其中包含主进程、预加载脚本（启用上下文隔离）、系统托盘、深度链接 OAuth 流程、自动更新程序（基于 GitHub Releases）以及适用于 macOS、Windows 和 Linux 平台的 Electron Forge 配置。\n","2026-04-09T20:24:55",{"id":223,"version":224,"summary_zh":225,"released_at":226},324357,"v0.3.0","ChatJS 0.3.0 桌面版发布。","2026-04-09T20:29:09",{"id":228,"version":229,"summary_zh":230,"released_at":231},324358,"v0.2.0","ChatJS 0.2.0 桌面版发布。","2026-04-09T20:05:43",{"id":233,"version":234,"summary_zh":235,"released_at":236},324359,"v0.1.9","Desktop release for ChatJS 0.1.9.","2026-04-08T11:36:09",{"id":238,"version":239,"summary_zh":240,"released_at":241},324360,"v0.1.8","Desktop release for ChatJS 0.1.8.","2026-04-07T19:42:00",{"id":243,"version":244,"summary_zh":240,"released_at":245},324361,"electron-v0.1.8","2026-04-06T17:50:54",{"id":247,"version":248,"summary_zh":249,"released_at":250},324362,"v0.1.3","Desktop release for ChatJS 0.1.3.","2026-04-06T17:19:40",{"id":252,"version":253,"summary_zh":254,"released_at":255},324363,"electron-v0.1.7","Desktop release for ChatJS 0.1.7.","2026-04-06T16:42:27",{"id":257,"version":258,"summary_zh":259,"released_at":260},324364,"electron-v0.1.5","Desktop release for ChatJS 0.1.5.","2026-04-06T15:21:35",{"id":262,"version":263,"summary_zh":264,"released_at":265},324365,"@chat-js\u002Fcli@0.4.0","### Minor Changes\n\n-   [#107](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F107) [`bd8bd35`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002Fbd8bd351ea4775bd505cb1d45090a8c12df76d7f) Thanks [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - Parallel responses (Use multiple models)\n","2026-03-19T13:37:12",{"id":267,"version":268,"summary_zh":269,"released_at":270},324366,"@chat-js\u002Fcli@0.3.0","### Minor Changes\n\n-   [#94](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F94) [`2a8a7cc`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002F2a8a7cc2b0649bd73e41999dbf0528a21e8065be) Thanks [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - ## Config defaults & `defineConfig` helper\n\n    ### New features\n\n    -   **`defineConfig()` helper** — new type-safe wrapper for `chat.config.ts`. The gateway type is inferred from `ai.gateway`, so autocomplete and type errors are scoped to the model IDs available in the chosen gateway. Replace `satisfies ConfigInput` with `defineConfig({...})`.\n    -   **Gateway-specific defaults** — all AI config fields (models, tools, workflows) are now optional. Omitted fields are automatically filled from per-gateway defaults at runtime via `applyDefaults()`. Only `ai.gateway` is required.\n    -   **`chatjs config` CLI command** — new command that prints the fully-resolved configuration for the current project, applying all defaults. Useful for debugging and verifying your setup.\n    -   **Separate defaults per gateway** — `vercel`, `openrouter`, `openai`, and `openai-compatible` each have their own typed defaults (`ModelDefaultsFor\u003CG>`), ensuring model IDs are validated against the correct gateway's model registry.\n    -   **Stricter image\u002Fvideo tool schemas** — `tools.image` and `tools.video` now use a discriminated union: `enabled: true` requires a `default` model, while `enabled: false` makes it optional.\n\n    ### Breaking changes\n\n    None — existing configs using `satisfies ConfigInput` continue to work. Migrating to `defineConfig()` is recommended for better DX but not required.\n","2026-03-01T21:47:28",{"id":272,"version":273,"summary_zh":274,"released_at":275},324367,"@chat-js\u002Fcli@0.2.1","### Patch Changes\n\n-   [#100](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fpull\u002F100) [`a665893`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat-js\u002Fcommit\u002Fa665893048abdcded8be5040a243cfcd1b9bd0eb) Thanks [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - - Improve AI title generation prompt for cleaner, more concise titles\n    -   Switch title and followup suggestion workflows to `google\u002Fgemini-2.5-flash-lite`\n    -   Refactor followup suggestions to use recent messages for better context\n    -   Fix streamdown source path in globals.css for wildcard imports\n    -   Rename internal references from `chat.js` to `chat-js` for consistency\n    -   Simplify template sync process\n","2026-02-27T17:23:42",{"id":277,"version":278,"summary_zh":279,"released_at":280},324368,"@chat-js\u002Fcli@0.2.0","### Minor Changes\n\n-   [#94](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat.js\u002Fpull\u002F94) [`2a8a7cc`](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti\u002Fchat.js\u002Fcommit\u002F2a8a7cc2b0649bd73e41999dbf0528a21e8065be) Thanks [@FranciscoMoretti](https:\u002F\u002Fgithub.com\u002FFranciscoMoretti)! - Video generation and new config\n","2026-02-23T20:37:25"]