- AI coding agent của bạn quên sạch mỗi session.
- OpenChronicle — một menubar app open-source cho macOS — vá lỗ hổng đó bằng cách capture màn hình, OCR on-device, tóm tắt bằng LLM, rồi serve qua MCP cho Claude Code và Codex CLI.
- Chạy 100% offline với Ollama hoặc LM Studio.
TL;DR
OpenChronicle (repo: Screenata/open-chronicle) là một menubar app cho macOS biến Claude Code và Codex CLI thành agent có "trí nhớ quang học": nó chụp màn hình editor/terminal/browser mỗi ~10 giây, OCR bằng Apple Vision trên máy, tóm tắt 2 câu mỗi 60 giây bằng LLM, rồi expose qua Model Context Protocol. Hỗ trợ Anthropic / OpenAI / Fireworks API hoặc chạy 100% offline với Ollama / LM Studio. MIT license. v0.1.3 ra ngày 22/04/2026.

Vấn đề mà OpenChronicle giải quyết
AI assistant của bạn luôn khởi động từ con số 0 mỗi session. Bạn mở Claude Code, nó không biết bạn vừa sửa file gì, vừa chạy test nào fail, vừa đọc docs page nào. Bạn phải re-paste context — mỗi. lần. một.
OpenChronicle đóng vai một rolling screen-derived memory: agent không cần bạn nhắc lại, nó query vào memory log và biết 1 giờ qua bạn làm gì. Đây chính là cái Codex Chronicle của OpenAI cung cấp, nhưng closed-source + gửi ảnh về server OpenAI + chỉ cho ChatGPT Pro + không có ở EU/UK/CH. OpenChronicle là bản open, local-first, tự host.
Pipeline 4 bước
- Capture: Swift menubar app chụp cửa sổ foreground (editor, terminal, browser) mỗi ~10 giây.
- Extract: OCR trên máy bằng Apple Vision framework — không cloud, không upload.
- Summarize: Gom các capture vào cửa sổ 60 giây, gọi LLM sinh 2 câu tóm tắt hoạt động.
- Serve: Node.js MCP server expose API để Claude Code / Codex CLI truy vấn lúc cần.
Chỉ có bước 3 có thể cần network — và chỉ gửi text summary, không gửi ảnh. Nếu dùng Ollama hoặc LM Studio thì bước 3 cũng chạy local, zero outbound calls.
Technical facts
| Thành phần | Chi tiết |
|---|---|
| Frontend | Swift menubar app (84.5% codebase) |
| Backend | Node.js / TypeScript MCP server (15.5%) |
| Storage | SQLite tại ~/.open-chronicle/open-chronicle.db |
| Screenshot retention | 30 phút mặc định (PNG tự xoá) |
| Capture interval | 10 giây (tuỳ chỉnh) |
| Memory window | 60 giây (tuỳ chỉnh) |
| Memory builder poll | 30 giây |
| OS yêu cầu | macOS 14+ (Sonoma), Node 20+, Xcode CLI tools |
| License | MIT |
LLM nào dùng được?
- Cloud: Anthropic (Claude), OpenAI, Fireworks
- Local (100% offline): Ollama, LM Studio
- OpenAI-compatible endpoints: Groq, Together, DeepInfra, Baseten, Perplexity, self-hosted vLLM / TGI
Nếu bạn đã chạy Ollama với Llama 3.1 / Qwen / Mistral local, OpenChronicle không phát một packet nào ra Internet.
So sánh với memory layer khác
| Tool | Input | Local? | License |
|---|---|---|---|
| OpenChronicle | Màn hình (screenshot + OCR) | ✅ Full local option | MIT |
| Codex Chronicle (OpenAI) | Màn hình | ❌ Upload OpenAI | Closed |
| Mem0 | Conversation history | ⚠️ Cloud default | Apache 2.0 |
| OpenMemory | Agent interactions | ✅ | Open |
Điểm khác biệt lớn nhất: các memory layer khác nhớ cái bạn nói với model. OpenChronicle nhớ cái bạn làm trên màn hình — một signal giàu hơn rất nhiều cho coding agent.
Use cases thực tế
Khi OpenChronicle chạy nền, agent có thể trả lời chính xác những câu trước đây cần bạn paste context:
- "Tôi vừa làm gì?" / "Continue where I left off"
- "Tại sao cái này fail?" — agent tra ra error output bạn thấy 20 giây trước
- "Docs page tôi vừa đọc là gì?"
- "Tóm tắt 1 tiếng vừa rồi"
- "File nào tôi vừa edit nhưng chưa save?"
Privacy model
Đây là chỗ OpenChronicle làm rất nghiêm:
- OCR chạy on-device bằng Apple Vision — ảnh không rời máy.
- Nếu dùng cloud LLM, chỉ text summary được gửi đi, không phải raw screenshot.
- API keys lưu local ở
mcp/.env. - Không sync, không telemetry, không phone-home.
- Exclusion list mặc định bỏ qua: 1Password, Bitwarden, LastPass, Messages, Slack, Discord, Signal, Telegram, WhatsApp, Apple Mail, Outlook, Spark, Finder, System Settings, Wallet.
- User có thể clear toàn bộ data từ Settings tab.
Limitations & pricing
Miễn phí (MIT). Chi phí = API token của provider bạn chọn, hoặc $0 nếu dùng Ollama/LM Studio.
Hiện tại out of scope:
- Chỉ chạy macOS 14+. Linux/Windows không có trong roadmap (Swift + ScreenCaptureKit).
- Chưa có binary code-signed — phải build từ source (
swift run -c release). - Không có long-term memory consolidation qua tuần/tháng.
- Không capture audio, không capture accessibility tree.
- Không cloud sync, không vector search / semantic recall (chưa).
What's next
Theo roadmap trong repo:
- Migrate sang ScreenCaptureKit (thay API
CGWindowListCreateImageđã deprecated). - Per-project memory scoping (không lẫn context project A sang project B).
- FTS5 keyword search trong SQLite.
- Cải tiến Ollama integration.
- Homebrew formula cho install 1 dòng.
Dự án còn rất mới — v0.1.3, 10 stars lúc bài này viết. Nhưng model nó đang pitch (local-first, privacy-first, MCP-native, bring-your-own-LLM) đúng chuẩn kit developer muốn: không phụ thuộc vendor, không trả tiền subscription cho feature memory, dùng được model local mình đã host sẵn.
Nguồn: GitHub — Screenata/open-chronicle, @dr_cintas announcement.



