Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SidecarFishNew to Visual Studio Code? Get it now.
SidecarFish

SidecarFish

lenyou233

|
3 installs
| (0) | Free
SidecarFish - Your coding companion
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Sidecar - AI 助手小说阅读器

一个伪装成 AI 助手的 VSCode 插件,实际上是一个小说阅读/编码摸鱼工具。

功能特性

  • 🤖 伪装界面:看起来像在写 TypeScript 代码和与 AI 对话
  • 📖 小说阅读:支持多章节阅读,内容以代码形式展示
  • 🔍 搜索功能:支持搜索书籍和章节内容(支持 Ctrl+F)
  • 📑 章节导航:快速切换章节(上一章/下一章/跳转)
  • ⏹️ 可中断渲染:支持停止当前渲染过程
  • 🌊 伪 AI 日志流:模拟 AI 助手的流式输出效果
  • 🎨 代码风格:使用 VSCode 深色主题,完美融入开发环境
  • 📍 左侧 Sidebar:在资源管理器中显示,方便随时访问
  • 💾 本地缓存:自动缓存已下载的书籍,支持离线阅读
  • 📚 书籍管理:支持搜索、下载、更新、阅读书籍
  • 📝 阅读记录:自动保存阅读进度,下次打开自动续读

安装

  1. 克隆或下载此项目
  2. 在项目目录运行:
    npm install
    npm run compile
    
  3. 按 F5 启动调试,或使用 vsce package 打包安装

使用方法

打开面板

  1. 安装插件后,在左侧活动栏找到 Sidecar 图标(💬 图标)
  2. 点击图标打开 "AI Assistant" 侧边栏面板
  3. 面板默认显示日志模式,展示操作历史记录

搜索书籍

在输入框中输入以下命令之一来搜索书籍:

  • 搜索 <书名> - 搜索指定书籍
    • 示例:搜索 斗破苍穹
    • 示例:搜索 三体

搜索完成后,会显示搜索结果列表,包含书籍的:

  • 书名、作者、状态、更新时间、最新章节
  • 封面图片
  • 操作按钮(下载/阅读)

注意:搜索超时时间为 15 秒,如果超时会显示错误提示。

查看已缓存的书籍

在输入框中输入以下命令之一:

  • 查看所有书籍
  • 列表
  • 书籍列表

会显示所有已下载并缓存的书籍列表,每个书籍显示:

  • 书名、作者、状态、更新时间、最新章节
  • 当前阅读进度(第 X 章 / 共 Y 章)
  • 操作按钮(更新/阅读)

下载书籍

  1. 从搜索结果或书籍列表中,点击书籍卡片上的 "下载" 按钮
  2. 下载过程会在日志中显示进度:[1/100] 正在下载: 章节标题
  3. 下载完成后,书籍会被保存到本地缓存目录
  4. 下载过程中可以继续使用其他功能(如阅读其他书籍)

注意:

  • 同时只能下载一本书籍
  • 如果书籍已存在,下载会跳过已有章节
  • 下载过程中不会打断正在进行的阅读

更新书籍

  1. 从书籍列表中,点击书籍卡片上的 "更新" 按钮
  2. 系统会检查并只下载缺失的章节(增量更新)
  3. 更新过程会在日志中显示进度

注意:

  • 同时只能更新一本书籍
  • 更新过程中不会打断正在进行的阅读

阅读书籍

开始阅读

  1. 从搜索结果或书籍列表中,点击书籍卡片上的 "阅读" 按钮
  2. 如果书籍已缓存,会直接打开并显示章节内容
  3. 如果书籍未缓存,会提示先下载

阅读模式功能

进入阅读模式后,面板会切换到阅读界面,提供以下功能:

章节导航:

  • ← 上一章:跳转到上一章节
  • 下一章 →:跳转到下一章节
  • 章节列表:点击章节信息可打开章节列表,快速跳转到指定章节

搜索章节内容:

  • 在搜索框中输入关键词,按 Enter 或点击搜索按钮
  • 支持在当前书籍的所有章节中搜索关键词
  • 搜索结果会高亮显示匹配的内容
  • 支持使用 Ctrl+F 进行浏览器原生搜索

停止渲染:

  • 点击 "停止" 按钮可中断当前章节的渲染过程

退出阅读模式:

  • 点击 "清空" 按钮(如果显示)可退出阅读模式,返回日志模式

阅读记录

  • 系统会自动保存你的阅读进度
  • 下次打开同一本书时,会自动跳转到上次阅读的章节
  • 阅读进度会显示在书籍列表中的书籍信息里

日志模式

日志模式会显示所有操作的历史记录,包括:

  • 用户输入的命令
  • 搜索操作和结果
  • 下载/更新进度
  • 系统消息和错误提示

日志按时间倒序显示,最新的操作在最上方。

快捷键

  • Ctrl+F:在阅读模式下搜索章节内容(浏览器原生搜索)
  • Enter:在搜索框中提交搜索

项目结构

Sidecar/
├── package.json
├── tsconfig.json
├── src/
│   ├── extension.ts              # 插件入口
│   ├── panel/
│   │   ├── aiPanel.ts            # 左侧 Sidebar(Webview)
│   │   └── logger.ts             # 日志管理器
│   ├── engine/
│   │   ├── engine.ts             # 状态机 & 调度核心
│   │   ├── novelSource.ts        # 小说数据源(可换爬虫)
│   │   ├── aiRenderer.ts         # 伪 AI 输出模板
│   │   ├── bookSearch.ts         # 书籍搜索模块
│   │   ├── bookCache.ts          # 书籍缓存管理
│   │   ├── bookDownloader.ts     # 书籍下载模块
│   │   ├── bookReader.ts         # 书籍阅读模块
│   │   ├── commandParser.ts      # 命令解析器
│   │   ├── config.ts             # 配置文件
│   │   └── utils.ts              # 工具函数
│   └── types.ts                  # 类型定义
├── media/
│   ├── panel.html                # Webview UI
│   ├── components/
│   │   ├── bookList.js           # 书籍列表组件
│   │   └── chapterReader.js      # 章节阅读组件
│   └── lib/                      # 第三方库(highlight.js 等)
├── out/                          # tsc 编译产物
└── README.md

核心功能说明

1. 状态机引擎 (engine/engine.ts)

  • 管理渲染状态(IDLE, LOADING, RENDERING, PAUSED, STOPPED)
  • 支持中断、暂停、继续操作
  • 章节跳转和导航
  • 从缓存加载书籍数据

2. 书籍搜索 (engine/bookSearch.ts)

  • 在线搜索书籍功能
  • 解析搜索结果并返回书籍列表
  • 支持超时控制(15秒)
  • 可取消搜索操作

3. 书籍缓存 (engine/bookCache.ts)

  • 管理本地书籍缓存
  • 保存书籍信息和阅读进度
  • 提供缓存目录管理
  • 支持增量更新

4. 书籍下载 (engine/bookDownloader.ts)

  • 下载书籍所有章节
  • 将章节内容转换为 TypeScript 代码格式
  • 显示下载进度
  • 支持断点续传(跳过已下载章节)

5. 书籍阅读 (engine/bookReader.ts)

  • 打开已缓存的书籍
  • 自动跳转到上次阅读位置
  • 后台静默下载缺失章节
  • 管理阅读记录

6. 命令解析 (engine/commandParser.ts)

  • 解析用户输入的命令
  • 支持的命令:
    • 搜索 <书名> - 搜索书籍
    • 查看所有书籍 / 列表 / 书籍列表 - 查看已缓存书籍

7. 伪 AI 渲染器 (engine/aiRenderer.ts)

  • 生成类似 AI 助手的日志消息
  • 模拟流式输出效果
  • 代码和小说内容混合渲染

8. 左侧 Sidebar (panel/aiPanel.ts)

  • WebviewView 实现
  • 支持两种模式:日志模式和阅读模式
  • 输入控制(命令解析、搜索、章节导航)
  • 实时消息流显示
  • 日志管理

9. 日志管理 (panel/logger.ts)

  • 记录所有操作历史
  • 支持不同类型的日志(info、error、books 等)
  • 持久化存储日志数据

开发

# 编译 TypeScript
npm run compile

# 监听模式编译
npm run watch

常见问题

Q: 搜索书籍时提示超时怎么办?

A: 搜索超时时间为 15 秒。如果网络较慢,可以:

  • 检查网络连接
  • 稍后重试
  • 尝试搜索其他书籍名称

Q: 下载的书籍保存在哪里?

A: 书籍缓存保存在 VSCode 的全局存储目录中,具体路径可以通过日志查看。

Q: 如何清除缓存?

A: 可以手动删除 VSCode 的全局存储目录中对应的缓存文件夹。

Q: 阅读时如何快速跳转到指定章节?

A: 在阅读模式下,点击章节信息(如"第 5 / 100 章")会打开章节列表,可以快速跳转。

Q: 下载过程中可以阅读其他书籍吗?

A: 可以。下载是后台进行的,不会影响阅读其他已缓存的书籍。

Q: 更新书籍会重新下载所有章节吗?

A: 不会。更新功能只会下载缺失的章节,已存在的章节不会重新下载。

自定义配置

修改搜索源

编辑 src/engine/config.ts 中的配置:

export const config = {
    baseUrl: 'https://your-novel-site.com',
    searchBase: 'https://your-novel-site.com/search'
};

自定义数据源

编辑 src/engine/novelSource.ts 中的 loadNovel() 方法,修改返回的小说数据。

或者实现自定义的数据源:

// 实现 NovelSourceProvider 接口
class CustomNovelSource extends NovelSourceProvider {
    public async loadNovel(): Promise<NovelSource> {
        // 从文件、API 或爬虫加载数据
    }
}

技术特点

  • ✅ 无真实 AI 依赖,完全本地运行
  • ✅ 状态机管理,支持中断和恢复
  • ✅ 流式渲染,模拟 AI 输出效果
  • ✅ 代码高亮,完美伪装
  • ✅ 左侧 Sidebar,方便访问
  • ✅ 本地缓存,支持离线阅读
  • ✅ 自动保存阅读进度
  • ✅ 后台下载,不打断阅读
  • ✅ 增量更新,节省流量
  • ✅ 命令式交互,简单直观

许可证

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft