Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Gaze

AI 驱动的智能工作监控与时间追踪系统

Go Version License

自动截图 · AI 分析 · 工作日报 · 隐私保护

简介

Gaze 通过定时截图、视频合成和 AI 分析,自动追踪和记录你的工作活动。支持多显示器、隐私保护、日历同步等功能,帮助你更好地了解时间使用情况。

核心特性

  • 自动监控: 每秒截图,定时合成视频(可配置间隔)
  • AI 分析: 支持 Google Gemini 和 Ollama 本地模型
  • 工作日报: 一键生成结构化日报(Markdown 格式)
  • 隐私保护: OCR 关键词检测 + 自动马赛克模糊
  • 日历集成: 支持 Google Calendar 和 CalDAV 订阅
  • Web 界面: 实时查看统计和时间线
  • 云端备份: 可选的 S3 视频存储(生成预签名 URL)

快速开始

1. 前置依赖

# macOS
brew install go ffmpeg

# Ubuntu/Debian
sudo apt-get install golang ffmpeg

# 可选:隐私保护功能(需要 Tesseract OCR)
brew install tesseract leptonica  # macOS

必需:

  • Go 1.24+
  • FFmpeg(视频合成)

可选:

  • Tesseract OCR(隐私保护)
  • Google Gemini API Key(获取地址

2. 安装 Gaze

# 方式一:直接安装(推荐)
go install github.com/gaze-org/gaze@latest

# 方式二:从源码编译
git clone https://github.com/gaze-org/gaze.git
cd gaze
go install .

3. 首次配置

# 启动程序,自动生成配置文件
gaze

编辑配置文件 ~/.gaze/config.yaml:

# 基础配置
ai_provider: "gemini"              # "gemini" 或 "ollama"
gemini_api_key: "your-api-key"     # 必填
video_interval: 60                 # 视频合成间隔(秒)

# 可选:代理配置
http_proxy: "http://127.0.0.1:7890"

再次运行 gaze,点击托盘图标开始监控。


核心功能

系统托盘控制

点击托盘图标 👁️ 可快速访问:

  • 开始/停止监控: 控制截图和分析
  • 生成日报: 生成今日工作总结
  • 打开 Web UI: 查看统计和日志
  • 手动汇总: 指定时间段生成汇总

Web 管理界面

访问 http://localhost:8888(默认):

  • 实时工作统计和时间线
  • 历史日志浏览
  • CalDAV 日历订阅管理

工作日志

日志自动保存为 Markdown 格式(~/.gaze/logs/):

## 15:04:05 至 15:05:05 - 显示器 0

**分析:**
在 VS Code 中编写 Go 代码,实现视频管理功能。

[视频链接](https://s3.example.com/...)

配置指南

配置文件位置:~/.gaze/config.yaml

基础配置

# AI 配置
ai_provider: "gemini"              # "gemini" 或 "ollama"
gemini_api_key: ""                 # Gemini API Key
ollama_url: "http://localhost:11434"
model_name: "llava"                # Ollama 模型名称

# 监控配置
video_interval: 60                 # 视频合成间隔(秒)
auto_screenshot: false             # 自动开始截图

# Web UI
web_enabled: true
web_port: 8888

隐私保护

privacy_enabled: true              # 启用隐私保护
privacy_keywords:                  # 敏感关键词列表
  - "password"
  - "密码"
  - "token"
  - "secret"
privacy_blur_intensity: 20         # 模糊强度(1-100)

工作原理: 截图合成视频前,使用 Tesseract OCR 检测敏感关键词,对匹配区域应用马赛克模糊。

Google Calendar 集成

google_calendar_enabled: true
google_credentials_file: "/path/to/credentials.json"
google_calendar_id: "your-calendar-id@group.calendar.google.com"

# 自动汇总时间点
summary_time_points:
  - "09:00"
  - "10:00"
  - "12:00"
  - "15:00"
  - "18:00"

获取凭证:

  1. 访问 Google Cloud Console
  2. 创建项目并启用 Calendar API
  3. 创建服务账号,下载 JSON 凭证
  4. 将日历共享给服务账号邮箱(编辑权限)

CalDAV 日历订阅

caldav_enabled: true
caldav_username: "gaze"
caldav_password: "gaze123"

订阅地址: http://gaze:gaze123@localhost:8888/calendar.ics

支持 Apple Calendar、Outlook、Google Calendar 等标准日历客户端。

S3 云存储

s3_enabled: true
s3_region: "us-east-1"
s3_bucket: "your-bucket"
s3_access_key_id: "your-key"
s3_secret_access_key: "your-secret"

视频分析后自动上传,生成 30 天有效期的预签名 URL。支持 AWS S3、阿里云 OSS、MinIO 等兼容服务。


系统架构

截图管理器 → 视频合成 → 隐私保护 → AI 分析 → 日志记录
    ↓            ↓                         ↓          ↓
多显示器支持  定时合成                   S3 上传   日历同步
                                                    ↓
                                                CalDAV 服务
                                                    ↓
                                                Web UI

工作流程

  1. 每秒捕获所有显示器截图
  2. 按间隔为每个显示器独立合成视频
  3. OCR 检测并模糊敏感信息(可选)
  4. AI 分析视频内容
  5. 写入 Markdown 日志
  6. 上传到 S3(可选)
  7. 定时汇总并同步到日历
  8. 提供 CalDAV 订阅服务

目录结构

~/.gaze/
├── config.yaml           # 配置文件
├── screenshots/          # 截图(按日期组织)
├── videos/              # 临时视频(分析后删除)
├── logs/                # 工作日志(Markdown)
├── reports/             # 生成的日报
└── caldav/              # CalDAV 日历数据

故障排查

FFmpeg 未安装

# 检查安装
which ffmpeg ffprobe

# 安装
brew install ffmpeg  # macOS
sudo apt-get install ffmpeg  # Linux

AI 分析失败

  1. 确认 API Key 配置正确
  2. 检查网络连接(可能需要代理)
  3. 确认视频文件大小 < 50MB(Gemini 限制)
  4. 查看日志详细错误信息

屏幕录制权限(macOS)

  1. 系统偏好设置 → 安全性与隐私 → 隐私
  2. 选择"屏幕录制"
  3. 添加终端应用并授权
  4. 重启终端和 Gaze

高级用法

使用 Ollama 本地模型

# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 拉取视觉模型
ollama pull llava

# 启动服务
ollama serve

配置文件:

ai_provider: "ollama"
ollama_url: "http://localhost:11434"
model_name: "llava"

自定义 AI 提示词

# 视频分析提示词
video_analysis_prompt: |
  请分析这段视频,总结工作内容。
  要求:中文回答,200字以内,不使用markdown格式。

# 汇总提示词
summary_prompt: |
  请将以下工作片段汇总成连贯的总结。
  {content}
  要求:简洁明了,150字以内。

# 日报生成提示词
daily_report_prompt: |
  根据以下工作记录生成日报。
  {content}
  要求:Markdown格式,按项目分类,500-800字。

交叉编译

# Windows
GOOS=windows GOARCH=amd64 go build -o gaze.exe .

# Linux
GOOS=linux GOARCH=amd64 go build -o gaze .

# 精简版(减小文件大小)
go build -ldflags="-s -w" -o gaze .

隐私与安全

  • 本地优先: 所有数据默认本地存储
  • 可选云端: S3 上传完全可选
  • 隐私保护: OCR 检测 + 自动模糊
  • 数据清理: 视频分析后自动删除
  • ⚠️ 网络通信: AI 分析调用 Gemini API(或使用 Ollama 本地模型)

项目结构

gaze/
├── main.go                   # 主程序
├── internal/
│   ├── ai/                  # AI 分析(Gemini/Ollama)
│   ├── caldav/              # CalDAV 服务
│   ├── config/              # 配置管理
│   ├── logger/              # 日志记录
│   ├── monitor/             # 监控管理
│   ├── ocrmasker/           # OCR 隐私保护
│   ├── report/              # 日报生成
│   ├── scheduler/           # 定时任务
│   ├── screenshot/          # 截图管理
│   ├── storage/             # S3 存储
│   ├── tray/                # 系统托盘
│   ├── video/               # 视频合成
│   └── web/                 # Web UI
└── README.md

许可证

本项目采用 MIT License 开源。

致谢