[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-667":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},667,"OpenChronicle","Einsia\u002FOpenChronicle","Einsia",null,"Python",2778,213,73,6,0,3,325,28.99,"MIT License",false,"main",true,[],"2026-06-12 02:00:16","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Flogo.png\" alt=\"OpenChronicle\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">OpenChronicle\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  Open-source, local-first memory for any tool-capable LLM agent.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  Think OpenAI Chronicle - but open, model-agnostic, inspectable, and hackable.\n\u003C\u002Fp>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#Einsia\u002FOpenChronicle&Date\">\n    \u003Cpicture>\n      \u003Csource\n        media=\"(prefers-color-scheme: dark)\"\n        srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Einsia\u002FOpenChronicle&type=Date&theme=dark\"\n      \u002F>\n      \u003Csource\n        media=\"(prefers-color-scheme: light)\"\n        srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Einsia\u002FOpenChronicle&type=Date\"\n      \u002F>\n      \u003Cimg\n        alt=\"Star History Chart\"\n        src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Einsia\u002FOpenChronicle&type=Date\"\n      \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n> **Status:** v0.1.0 · macOS only · early alpha\n\nOpenChronicle gives AI agents a local, inspectable memory built from real screen and app context.\n\nIt runs on your Mac, captures structured context from what you're doing, and turns it into persistent Markdown memory: what you're working on, what you've decided, which tools you use, and which people or projects matter.\n\nAny agent that can call tools can use it. MCP clients work especially well today, but OpenChronicle is meant to be a general memory layer for tool-using agents - not something tied to one protocol, one model provider, or one app.\n\n---\n\n## Why OpenChronicle\n\nOpenAI Chronicle points to an important future: agents that remember your real working context.\n\nOpenChronicle is our open alternative:\n\n- **Local-first** - memory stays on your machine\n- **Model-agnostic** - use Ollama, LM Studio, OpenAI, Anthropic, or any LiteLLM-compatible provider\n- **Tool-friendly** - usable by any tool-capable agent\n- **Inspectable** - Markdown on disk, SQLite locally\n- **Open** - MIT-licensed and built to be extended\n\n---\n\n## Why AX-first\n\nOpenChronicle currently prioritizes **AX Tree \u002F accessibility-tree context** as its primary signal, with screenshots as a secondary signal over time.\n\nWe think this is the right tradeoff for an early memory system:\n\n- **Lower cost** - structured text is far cheaper to process than screenshot-heavy OCR \u002F vision pipelines\n- **Better intent capture** - AX is often better for active app, focused element, edited text, URL, and interaction state\n- **Smaller, cleaner memory** - easier to deduplicate, normalize, index, and retain long-term\n- **Better foundation** - screenshots can later enrich visual context where AX falls short\n\n> **AX-first for accurate, compact, low-cost memory; screenshot-assisted for richer multimodal context.**\n\n---\n\n## OpenChronicle vs OpenAI Chronicle\n\n|                     | OpenAI Chronicle                | **OpenChronicle**                              |\n| ------------------- | ------------------------------- | ---------------------------------------------- |\n| Source              | Closed                          | **MIT, open-source**                           |\n| Model choice        | OpenAI-centric                  | **Your choice**                                |\n| Who can use it      | Product-specific workflow       | **Any tool-capable agent**                     |\n| Primary capture     | Screenshot \u002F OCR-heavy          | **AX Tree first**, screenshot-assisted         |\n| Storage             | Local generated memories        | **Markdown + SQLite on your machine**          |\n| Extensibility       | Limited                         | **Hackable parsers, memory logic, integrations** |\n\n---\n\n## How it works\n\n```mermaid\nflowchart LR\n    W[mac-ax-watcher\u003Cbr\u002F>events]\n    S0[\"\u003Cb>S0\u003C\u002Fb> dispatcher\u003Cbr\u002F>dedup · debounce\u003Cbr\u002F>min-gap\"]\n    S1[\"\u003Cb>S1\u003C\u002Fb> parser\u003Cbr\u002F>focused_element\u003Cbr\u002F>visible_text · url\"]\n    BUF[(capture-buffer\u003Cbr\u002F>\u002F*.json)]\n    TL[\"Timeline\u003Cbr\u002F>normalizer\u003Cbr\u002F>1-min · verbatim\"]\n    TB[(timeline_blocks)]\n    SM[\"Session mgr\u003Cbr\u002F>idle 5m · app-switch 3m\u003Cbr\u002F>max 2h\"]\n    S2[\"\u003Cb>S2\u003C\u002Fb> reducer\"]\n    ED[(event-\u003Cbr\u002F>YYYY-MM-DD.md)]\n    CLF[\"Classifier\u003Cbr\u002F>→ user- \u002F project- \u002F tool- \u002F\u003Cbr\u002F>topic- \u002F person- \u002F org-*.md\"]\n    STORE[(\"SQLite FTS5\u003Cbr\u002F>+ Markdown\")]\n\n    W --> S0 --> S1 --> BUF --> TL --> TB --> S2 --> ED --> CLF --> STORE\n    ED --> STORE\n    BUF -. pre_capture_hook\u003Cbr\u002F>(post-write · skipped on content-dedup) .-> SM\n    SM -. flush 5m \u002F on_end .-> S2\n    TB -. grounding .-> CLF\n```\n\nThe core idea is simple:\n\n1. capture context\n2. compress it into sessions\n3. extract durable facts\n4. store memory locally\n5. let agents query it through tools\n\n---\n\n## What you get\n\n* **Event-driven capture** from macOS AX events\n* **Session-aware memory writing** instead of noisy per-snapshot logs\n* **Human-readable Markdown memory**\n* **Local SQLite indexing**\n* **Structured memory files** like user-, project-, tool-, topic-, person-, org-, and daily event-\n* **Supersede-not-delete history**\n* **Local or cloud model support**\n* **Always-on agent-readable interface**, with MCP as the best-supported path today\n\n---\n\n## Install\n\nRequires **macOS 13+** and **Xcode Command Line Tools** (`xcode-select --install`).\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle.git\ncd openchronicle\nbash install.sh\n```\n\n---\n\n## Run\n\n```bash\nopenchronicle start\nopenchronicle start --foreground\nopenchronicle status\nopenchronicle pause\nopenchronicle resume\nopenchronicle stop\n```\n\nUseful inspection commands:\n\n```bash\nopenchronicle capture-once\nopenchronicle timeline tick\nopenchronicle timeline list\nopenchronicle writer run\nopenchronicle rebuild-index\n```\n\n---\n\n## Connect an agent\n\nOpenChronicle is designed for **tool-calling agents**.\n\n### Best-supported path today: MCP\n\nThe daemon hosts an MCP endpoint at:\n\n```bash\nhttp:\u002F\u002F127.0.0.1:8742\u002Fmcp\n```\n\nSupported integration paths include:\n\n* Claude Code\n* Claude Desktop\n* Codex\n* opencode\n* custom local agents\n* and more...\n\nSee [docs\u002Fmcp.md](docs\u002Fmcp.md) for setup details.\n\n---\n\n## Contributing\n\nWe especially want help in three areas:\n\n### 1. Better context parsers\n\nApp-specific parsing and normalization for browsers, terminals, editors, Slack, Notion, Cursor, Linear, Figma, and more.\n\n### 2. Better memory management\n\nSession reduction, durable-fact extraction, compaction, supersede \u002F merge logic, and retrieval quality.\n\n### 3. More agent integrations\n\nSupport for more MCP clients, IDE agents, coding assistants, desktop agents, and local orchestration frameworks.\n\nIf you care about local-first agents, personal AI memory, or open context infrastructure, this project is for you.\n\n---\n\nDocumentation\n\n* [docs\u002Farchitecture.md](docs\u002Farchitecture.md) - end-to-end pipeline and code layout\n* [docs\u002Fconfig.md](docs\u002Fconfig.md) - configuration and model setup\n* [docs\u002Fcapture.md](docs\u002Fcapture.md) - event-driven capture and AX details\n* [docs\u002Ftimeline.md](docs\u002Ftimeline.md) - normalization and anti-hallucination design\n* [docs\u002Fsession.md](docs\u002Fsession.md) - session cutting rules\n* [docs\u002Fwriter.md](docs\u002Fwriter.md) - reducer, classifier, and retry model\n* [docs\u002Fmcp.md](docs\u002Fmcp.md) - current tool surface and integrations\n* [docs\u002Fmemory-format.md](docs\u002Fmemory-format.md) - file layout and supersede semantics\n* [docs\u002Ftroubleshooting.md](docs\u002Ftroubleshooting.md) - common issues\n\n---\n\n## Development\n\n```bash\nuv sync --all-extras\nuv run pytest\nuv run ruff check\n```\n\n---\n\n## License\n\nMIT.\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https:\u002F\u002Fallcontributors.org\u002Fdocs\u002Fen\u002Femoji-key)):\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKMing-L\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F78015987?v=4?s=100\" width=\"100px;\" alt=\"Qianli Ren\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Qianli Ren\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle\u002Fcommits?author=KMing-L\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-KMing-L\" title=\"Maintenance\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fabmfy\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20623941?v=4?s=100\" width=\"100px;\" alt=\"Bowen Wang\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Bowen Wang\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle\u002Fcommits?author=abmfy\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-abmfy\" title=\"Maintenance\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcalvin1376\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F190755633?v=4?s=100\" width=\"100px;\" alt=\"CrazyCalvin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>CrazyCalvin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle\u002Fcommits?author=calvin1376\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAzure-stars\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F101097177?v=4?s=100\" width=\"100px;\" alt=\"Firefly\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Firefly\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle\u002Fcommits?author=Azure-stars\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FXiao-ao-jiang-hu\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F57095350?v=4?s=100\" width=\"100px;\" alt=\"校奥浆糊\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>校奥浆糊\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle\u002Fcommits?author=Xiao-ao-jiang-hu\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-Xiao-ao-jiang-hu\" title=\"Maintenance\">🚧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fashitemaru.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F58683876?v=4?s=100\" width=\"100px;\" alt=\"Houde Qian\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Houde Qian\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEinsia\u002FOpenChronicle\u002Fcommits?author=Ashitemaru\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGiddensF97\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F253278919?v=4?s=100\" width=\"100px;\" alt=\"GiddensF97\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>GiddensF97\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#design-GiddensF97\" title=\"Design\">🎨\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSiyiZhu1\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132850441?v=4?s=100\" width=\"100px;\" alt=\"SiyiZhu1\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>SiyiZhu1\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#design-SiyiZhu1\" title=\"Design\">🎨\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) specification. Contributions of any kind welcome!\n","OpenChronicle 是一个开源的、本地优先的记忆系统，专为能够调用工具的大语言模型代理设计。它通过捕获用户在Mac上的屏幕和应用程序上下文，将这些信息转化为持久化的Markdown格式记忆，包括工作内容、决策、使用的工具以及重要的人或项目。该系统具有本地存储、模型无关性、易于检查（基于Markdown和SQLite）及开放扩展等特点。适合需要增强AI助手功能以更好地理解并记住用户实际工作环境的场景，特别是对于那些希望脱离单一协议或模型提供商限制的开发者来说，OpenChronicle 提供了一个通用且灵活的记忆层解决方案。",2,"2026-06-11 02:38:30","CREATED_QUERY"]