Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Sleep Skills - Developer Health ManagerNew to Visual Studio Code? Get it now.
Sleep Skills - Developer Health Manager

Sleep Skills - Developer Health Manager

AcSleep

|
3 installs
| (0) | Free
智能健康管理助手,帮助程序员避免久坐,保持健康编码习惯
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

😴 Sleep Skills - 开发者健康管理助手

一个智能的 VSCode 插件,帮助程序员在 AI Coding 场景中避免久坐,保持健康的编码习惯。

🎯 如何使用?

方式 1:快速体验(推荐)

  1. 启动扩展:按 F5 键
  2. 开始编码:在新窗口中编写代码
  3. 查看状态:观察左下角状态栏显示的编码时长
  4. 测试 API:按 Ctrl+Shift+I 打开开发者工具,在控制台输入:
    (global as any).sleepSkillsAPI.getSummary()
    

方式 2:安装到正式环境

# 1. 安装依赖
npm install

# 2. 编译代码
npm run compile

# 3. 打包扩展(需要先安装 vsce)
npm install -g @vscode/vsce
vsce package

# 4. 在 VSCode 中安装生成的 .vsix 文件

✨ 核心功能

1. 智能时间追踪

  • 自动监听编辑器活动(文档编辑、编辑器切换)
  • 精确统计每日编码时长和连续工作时间
  • 区分活跃时间和空闲时间(5分钟无活动视为空闲)

2. 疲劳检测引擎

基于多维度数据评估疲劳程度(0-100分):

  • 连续工作时间(权重 40%)
  • 今日总工作时间(权重 30%)
  • 休息频率(权重 20%)
  • 工作时间段(权重 10%,深夜工作增加疲劳)

疲劳等级:

  • 🟢 低疲劳(0-39分):状态良好
  • 🟡 中等疲劳(40-59分):建议休息
  • 🟠 高疲劳(60-79分):需要休息
  • 🔴 严重疲劳(80-100分):强烈建议立即休息

3. 智能提醒系统

  • 多级提醒(信息/警告/严重)
  • 防重复提醒(10分钟冷却时间)
  • 个性化建议(站立、走动、拉伸、喝水等)
  • 番茄工作法模式(25分钟工作 / 5分钟休息)

4. 可视化仪表盘

实时展示:

  • 今日编码时长
  • 连续工作时间
  • 工作会话次数
  • 健康提醒次数
  • 疲劳指数(带动态进度条)
  • 当前状态(工作中/休息中)

5. AI Skills API

提供标准化接口供 AI Agent 调用:

  • getTodayUsage() - 获取今日使用情况
  • shouldTakeBreak() - 判断是否应该休息
  • getFatigueScore() - 获取疲劳评分
  • getHealthSuggestions() - 获取健康建议
  • getSummary() - 获取统计摘要

🚀 快速开始

安装依赖

npm install

编译项目

npm run compile

运行插件

  1. 在 VSCode 中按 F5 启动调试
  2. 在新窗口中开始编码
  3. 插件会自动追踪你的编码时间

使用命令

按 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac) 打开命令面板:

  • Sleep Skills: Show Health Dashboard - 显示健康仪表盘
  • Sleep Skills: Take a Break - 手动开始休息
  • Sleep Skills: Reset Today's Stats - 重置今日统计

⚙️ 配置选项

在 VSCode 设置中搜索 "Sleep Skills":

{
  "sleepSkills.reminderInterval": 60,        // 连续工作多少分钟后提醒(默认60)
  "sleepSkills.strongReminderInterval": 120, // 强提醒间隔(默认120)
  "sleepSkills.dailyLimit": 240,             // 每日建议编码时长上限(默认240分钟)
  "sleepSkills.pomodoroMode": false          // 启用番茄工作法模式(默认关闭)
}

🏗 系统架构

┌─────────────────────────────────────────────────────────┐
│                    VSCode Extension                      │
│  (监听编辑器事件、用户交互、AI 工具使用)                    │
└────────────────────┬────────────────────────────────────┘
                     │
        ┌────────────┴────────────┐
        │                         │
┌───────▼────────┐      ┌────────▼─────────┐
│  TimeTracker   │      │  StateManager    │
│  (时间统计)     │◄────►│  (状态管理)       │
└───────┬────────┘      └────────┬─────────┘
        │                        │
        └────────┬───────────────┘
                 │
        ┌────────▼────────┐
        │ FatigueEngine   │
        │ (疲劳检测引擎)   │
        └────────┬────────┘
                 │
        ┌────────▼────────────┐
        │ NotificationScheduler│
        │ (提醒调度器)          │
        └────────┬────────────┘
                 │
        ┌────────▼────────┐
        │ HealthSkillsAPI │
        │ (AI Skills 接口) │
        └────────┬────────┘
                 │
        ┌────────▼────────┐
        │   DataStore     │
        │  (数据持久化)    │
        └─────────────────┘

📦 核心模块说明

1. TimeTracker(时间统计模块)

  • 监听 onDidChangeTextDocument 和 onDidChangeActiveTextEditor 事件
  • 每分钟检查用户活跃状态
  • 5分钟无活动视为空闲

2. StateManager(状态管理模块)

  • 维护用户当前状态(连续工作时间、今日统计等)
  • 管理工作会话(Session)
  • 处理休息状态切换

3. FatigueEngine(疲劳检测引擎)

  • 多维度疲劳评分算法
  • 智能提醒策略
  • 番茄工作法支持

4. NotificationScheduler(提醒调度器)

  • 定时检查疲劳状态
  • 显示分级提醒
  • 处理用户响应

5. HealthSkillsAPI(Skills API)

  • 标准化接口设计
  • 支持 AI Agent 调用
  • 返回结构化数据

6. DataStore(数据持久化)

  • 使用 VSCode globalState 存储
  • 自动检测新的一天并重置
  • 支持历史数据查询(可扩展)

7. DashboardPanel(可视化面板)

  • Webview 实现
  • 实时数据更新(每5秒)
  • 响应式设计

🧠 AI Skills 集成示例

在 AI 对话中使用

// 获取 Skills API 实例
const skillsAPI = (global as any).sleepSkillsAPI;

// 示例1:AI 主动关心用户健康
const usage = skillsAPI.getTodayUsage();
if (usage.data.continuousMinutes > 90) {
  console.log("你已经连续工作90分钟了,建议休息一下!");
}

// 示例2:判断是否应该提醒
const shouldBreak = skillsAPI.shouldTakeBreak();
if (shouldBreak.data.shouldBreak) {
  console.log(shouldBreak.data.reason);
}

// 示例3:获取疲劳评分
const fatigue = skillsAPI.getFatigueScore();
console.log(`当前疲劳指数:${fatigue.data.score}/100`);

// 示例4:生成健康报告
const summary = skillsAPI.getSummary();
console.log(summary.data);

MCP 集成(未来扩展)

可以将 Skills API 封装为 MCP 工具:

{
  "tools": [
    {
      "name": "get_developer_health_status",
      "description": "获取开发者当前健康状态",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "suggest_break",
      "description": "建议开发者休息",
      "inputSchema": {
        "type": "object",
        "properties": {
          "urgency": {
            "type": "string",
            "enum": ["low", "medium", "high"]
          }
        }
      }
    }
  ]
}

🔧 可扩展点

1. AI 使用行为感知

// 在 TimeTracker 中添加
vscode.extensions.onDidChange(() => {
  // 检测 Copilot、ChatGPT 等扩展的使用
  // 调用 skillsAPI.recordAIUsage()
});

2. 个性化提醒策略

// 在 FatigueEngine 中扩展
class PersonalizedFatigueEngine extends FatigueEngine {
  // 基于用户历史数据学习最佳提醒时机
  // 考虑用户的工作习惯、效率曲线等
}

3. 多设备同步

// 在 DataStore 中扩展
class CloudDataStore extends DataStore {
  // 使用云存储同步多设备数据
  // 支持跨设备统计
}

4. 健康数据导出

// 添加导出功能
export async function exportHealthData(format: 'json' | 'csv') {
  // 导出历史数据用于分析
}

📊 数据结构

UserState

{
  currentSession?: Session;
  lastActivityTime: number;
  continuousMinutes: number;
  todayStats: DailyStats;
  lastReminderTime?: number;
  isOnBreak: boolean;
}

DailyStats

{
  date: string;
  totalActiveMinutes: number;
  codingMinutes: number;
  aiUsageMinutes: number;
  breakMinutes: number;
  sessions: Session[];
  fatigueScore: number;
  remindersShown: number;
}

🎯 使用场景

场景1:长时间编码

用户连续编码60分钟 → 插件显示提醒 → 用户选择"休息一下" → 插件显示休息建议 → 用户完成休息 → 重置连续工作时间

场景2:AI 对话中关心健康

用户与 AI 对话 → AI 调用 getTodayUsage() → 发现用户已工作3小时 → AI 主动提醒:"你今天已经工作3小时了,记得休息哦!"

场景3:番茄工作法

用户启用番茄模式 → 工作25分钟 → 插件提醒休息5分钟 → 自动循环

场景4:查看健康仪表盘

用户打开仪表盘 → 查看今日统计 → 了解疲劳指数 → 调整工作节奏

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🙏 致谢

感谢所有关注开发者健康的朋友们!


记住:健康的身体是高效编码的基础! 💪

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