akitaonrails/ai-memoryPublic

Solution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors

AI summary: A unified long-term memory layer that persists context across different AI coding agents and development environments.

Stars
8.8K
+109 today
Forks
613
Watchers
50
Open issues
13
Open PRs
2
Contributors
~129
Commits
2.5K
Branches
13

RustMITCreated May 21, 2026Last push todayLatest release v2.5.2+396 stars this week+3.1K this month

Quick answers

What is ai-memory?
A unified long-term memory layer that persists context across different AI coding agents and development environments.
What does ai-memory do?
AI-memory provides a centralized repository for storing the context, decisions, and architectural notes generated during AI coding sessions. Instead of losing history when switching between tools like Claude Code, Cursor, or Codex, this tool quietly observes and captures information across more than twenty supported agent harnesses. It consolidates session data into human-readable wiki pages upon completion. When a new agent is launched in the same directory, it retrieves this shared memory through search and brief context injection. This ensures continuity in complex projects without requiring developers to repeatedly re-explain architectures or past failures.
Who is ai-memory for?
This tool is intended for developers and teams who utilize multiple AI coding assistants and struggle with context fragmentation. It is ideal for those managing complex, long-running projects where architectural decisions need to be reliably communicated across different tools.
How do I get started with ai-memory?
capture ──▶ consolidate ──▶ recall ──▶ handoff hooks session-end search next agent, observe summaries as + brief any harness silently wiki pages injection
How popular is ai-memory on GitHub?
akitaonrails/ai-memory has 8,815 stars and 613 forks on GitHub, and gained 396 stars in the last 7 days.
What license does ai-memory use?
akitaonrails/ai-memory is released under the MIT license.

Star history

since Aug 18, 2026
02.5K5K7.5KAug 2026Sep 2026Sep 2026Oct 2026
8.8K stars as of Oct 4, 2026. Measured daily since Aug 18, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 10 commits2026-05-22: 43 commits2026-05-23: 43 commits2026-05-24: 34 commits2026-05-25: 47 commits2026-05-26: 31 commits2026-05-27: 23 commits2026-05-28: 19 commits2026-05-29: 17 commits2026-05-30: 19 commits2026-05-31: 5 commits2026-06-01: 13 commits2026-06-02: 28 commits2026-06-03: 4 commits2026-06-04: 12 commits2026-06-05: 6 commits2026-06-06: 18 commits2026-06-07: 0 commits2026-06-08: 4 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 11 commits2026-06-12: 8 commits2026-06-13: 3 commits2026-06-14: 13 commits2026-06-15: 19 commits2026-06-16: 6 commits2026-06-17: 17 commits2026-06-18: 6 commits2026-06-19: 4 commits2026-06-20: 9 commits2026-06-21: 8 commits2026-06-22: 7 commits2026-06-23: 6 commits2026-06-24: 16 commits2026-06-25: 0 commits2026-06-26: 17 commits2026-06-27: 0 commits2026-06-28: 2 commits2026-06-29: 2 commits2026-06-30: 3 commits2026-07-01: 11 commits2026-07-02: 14 commits2026-07-03: 2 commits2026-07-04: 3 commits2026-07-05: 1 commit2026-07-06: 1 commit2026-07-07: 3 commits2026-07-08: 2 commits2026-07-09: 10 commits2026-07-10: 20 commits2026-07-11: 9 commits2026-07-12: 7 commits2026-07-13: 15 commits2026-07-14: 4 commits2026-07-15: 7 commits2026-07-16: 0 commits2026-07-17: 4 commits2026-07-18: 5 commits2026-07-19: 12 commits2026-07-20: 10 commits2026-07-21: 16 commits2026-07-22: 16 commits2026-07-23: 19 commits2026-07-24: 6 commits2026-07-25: 17 commits2026-07-26: 3 commits2026-07-27: 29 commits2026-07-28: 5 commits2026-07-29: 13 commits2026-07-30: 31 commits2026-07-31: 9 commits2026-08-01: 16 commits2026-08-02: 2 commits2026-08-03: 8 commits2026-08-04: 15 commits2026-08-05: 5 commits2026-08-06: 7 commits2026-08-07: 8 commits2026-08-08: 0 commits2026-08-09: 1 commit2026-08-10: 0 commits2026-08-11: 2 commits2026-08-12: 4 commits2026-08-13: 1 commit2026-08-14: 5 commits2026-08-15: 7 commits2026-08-16: 14 commits2026-08-17: 7 commits2026-08-18: 14 commits2026-08-19: 18 commits2026-08-20: 2 commits2026-08-21: 11 commits2026-08-22: 6 commits2026-08-23: 7 commits2026-08-24: 9 commits2026-08-25: 9 commits2026-08-26: 6 commits2026-08-27: 3 commits2026-08-28: 20 commits2026-08-29: 5 commits2026-08-30: 6 commits2026-08-31: 19 commits2026-09-01: 54 commits2026-09-02: 19 commits2026-09-03: 36 commits2026-09-04: 18 commits2026-09-05: 10 commits2026-09-06: 11 commits2026-09-07: 12 commits2026-09-08: 13 commits2026-09-09: 15 commits2026-09-10: 10 commits2026-09-11: 25 commits2026-09-12: 6 commits2026-09-13: 2 commits2026-09-14: 8 commits2026-09-15: 19 commits2026-09-16: 11 commits2026-09-17: 3 commits2026-09-18: 35 commits2026-09-19: 19 commits2026-09-20: 40 commits2026-09-21: 41 commits2026-09-22: 16 commits2026-09-23: 26 commits2026-09-24: 41 commits2026-09-25: 43 commits2026-09-26: 7 commits2026-09-27: 8 commits2026-09-28: 34 commits2026-09-29: 34 commits2026-09-30: 25 commits2026-10-01: 32 commits2026-10-02: 2 commits2026-10-03: 0 commits
1,749 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    1,749 commits in 52 weeks

  • Community-driven

    ~129 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    36 trending appearances

What ai-memory does

AI-memory provides a centralized repository for storing the context, decisions, and architectural notes generated during AI coding sessions. Instead of losing history when switching between tools like Claude Code, Cursor, or Codex, this tool quietly observes and captures information across more than twenty supported agent harnesses. It consolidates session data into human-readable wiki pages upon completion. When a new agent is launched in the same directory, it retrieves this shared memory through search and brief context injection. This ensures continuity in complex projects without requiring developers to repeatedly re-explain architectures or past failures.

This tool is intended for developers and teams who utilize multiple AI coding assistants and struggle with context fragmentation. It is ideal for those managing complex, long-running projects where architectural decisions need to be reliably communicated across different tools.

  • Cross agent compatibility: Supports seamless integration with over twenty different AI tools including Claude Code, Cursor, and Devin.
  • Silent observation: Hooks into existing workflows to capture context quietly without disrupting the user experience.
  • Wiki compilation: Consolidates captured session data into easily readable wiki pages when a coding task ends.
  • Context injection: Automatically provides necessary background information to new agents starting in a shared directory.
  • Shared memory pool: Centralizes data so multiple tools and teammates can access the same historical context.

Where teams use it

Maintaining project continuity

Ensure that context is not lost when switching from a terminal-based agent to a full IDE integration mid-task.

Onboarding new AI tools

Start using a completely different AI model on an existing codebase without having to explain the entire architecture from scratch.

Documenting failed approaches

Prevent different agents from attempting the same incorrect solution by persisting a record of previous debugging efforts.

Collaborative agent workflows

Allow multiple AI assistants to build upon the work of one another within the same directory.

Getting started: capture ──▶ consolidate ──▶ recall ──▶ handoff hooks session-end search next agent, observe summaries as + brief any harness silently wiki pages injection

README

main branch

ai-memory

Long-term memory for AI coding agents. Quit Claude Code mid-task, start OpenAI Codex in the same directory, continue without re-explaining the architecture, the failed approaches, or the open questions.

Release Rust License

Why ai-memory

Your coding agent already has a memory feature. Claude Code takes its own notes, Cursor remembers some things, and every platform is adding more. All of them share the same walls: the notes live on one machine, belong to one agent, and vanish from view the moment you switch tools — or teammates.

ai-memory is what's on the other side of those walls.

  • It follows you across agents. Twenty-plus harnesses — Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Grok, Devin, Kimi, Kiro, and more — feed one shared memory. Quit Claude Code mid-task, open Codex in the same directory, and the next agent picks up a real handoff: where you left off, what failed, what's still open. Handoffs are a protocol here, not a convention — typed, owned, claimed exactly once.

  • It follows you across machines. Memory lives in a server you run — on the same laptop, a homelab box, or wherever — so the project you left on the desktop is the project you resume on the laptop. Same knowledge, same open questions.

  • It works for a team. Point everyone at one server and what one person's sessions learn, everyone's agents can retrieve. Knowledge is shared per project; personal handoffs stay personal. Multi-user auth, per-person attribution, and an audit log are built in — not a paid tier.

  • Your memory is plain markdown. The source of truth is a git-backed wiki of ordinary .md files: grep it, open it in Obsidian, edit it by hand, rsync it. The database is a derived index that can always be rebuilt from the files. No vector store to babysit, nothing held hostage in a binary blob.

  • It captures the work itself, silently. Lifecycle hooks record what actually happened — prompts, tool calls, session boundaries — sanitized at a typed privacy boundary before anything is stored, then consolidated into readable pages. No "remember this" ceremony. And the default path uses zero LLM calls: capture, search, and handoffs all work with no API key at all.

  • It ages gracefully, without an LLM. Memory decays on a schedule you can tune per tier, and the memory you actually use decays slower — open a page, search it, or reach it through a link and it earns its keep. When episodic notes go cold they can be compacted down to their durable facts (file paths, error codes, decisions) instead of dropped, near-duplicates collapse into one, and likely contradictions get flagged — all with zero API calls. Nothing is hard-deleted: the original stays in git and the version chain (restore-page brings it back). Access-weighted retention is always on because it can only ever keep memory longer; the parts that rewrite or drop content (compaction, dedup, per-tier curves) stay off by default until you turn them on.

  • And it can dream, if you let it. Point it at an LLM and an opt-in background pass will, while you're idle, rewrite whole clusters of cold notes into single coherent pages — cancelling the moment you come back to work. It never deletes a source (the pre-merge versions stay reachable), it's off by default, and it's gated on a recall eval before it could ever become default behavior. The zero-LLM path above is what runs unless you ask for more.

  • It tells you the truth about itself. One self-contained binary. Purge commands that say exactly what "deleted" means. A measured write ceiling (~700/s) instead of a guessed one. An audit log of every mutation. Boring, in the way infrastructure should be.

How it works

capture ──▶ consolidate ──▶ recall ──▶ handoff
 hooks        session-end      search     next agent,
 observe      summaries as     + brief    any harness
 silently     wiki pages       injection

Agents emit sanitized observations through lifecycle hooks as you work. At session end, observations become coherent markdown pages in the project's wiki (optionally LLM-written; useful even without). The next session — any agent, any machine — gets a bounded brief and can search everything: full-text, entities, links, and (optionally) vectors, fused into one ranking. Cross-agent handoffs carry the baton explicitly.

The full design, including the invariants that keep multi-user and multi-session use safe, is in docs/ARCHITECTURE.md.

Support matrix

Every row below is a first-party integration — MCP registration, lifecycle hooks, or both — kept honest by CI. The full matrix with per-agent notes and caveats is in docs/support-matrix.md.

Area Status
Linux Supported
macOS Supported
Windows via WSL2 Supported
Native Windows Experimental
Claude Code Supported
Codex Supported
Command Code Supported
Devin CLI Supported
OpenCode Supported
OpenCode 2 (opencode2 beta) Supported
Cursor Supported
Gemini CLI Supported
Oh My Pi / OMP Supported
Pi Supported
Crush Managed-only
Managed workstreams Opt-in
Claude Desktop MCP-only
OpenClaw Supported
Antigravity CLI Supported
Grok Build CLI Supported
Swival CLI MCP-only
Zero Supported
ZCode Supported
Kimi Code Supported
Kiro CLI Supported
Pool Hooks-only
VS Code Copilot MCP-only
Zed MCP-only
Muse Code MCP-only
Hermes Agent Supported
LLM/auth providers Supported
Embedding providers Supported

Coming from another tool?

Most agent-memory tools optimize one thing — extracting atomic facts per turn, a temporal knowledge graph, an agent-editable memory OS, or a hosted context API. ai-memory optimizes something different: a git-backed markdown wiki as the source of truth, with a derived index for retrieval, captured automatically from lifecycle hooks, shared across agents, machines, and people, and working with zero LLM calls by default. Here's what carries over from each, and what you gain:

Coming from… What's similar What you gain
Mem0 / fact extractors (LangMem) Automatic per-turn capture Memory compiles into readable pages you own and edit, not opaque fact rows; retrieval fuses FTS + entity + graph (+ optional vectors), not vector-only
Zep / Graphiti (temporal KG) Temporal reasoning, typed relations Bi-temporal-lite (as_of, version-filtered search) and typed edges without standing up a graph database — on one binary
mcp-memory-service (closest sibling) SQLite + local embeddings, hook capture, typed edges, honest numbers — and, on 2.4, per-tier decay curves, extractive compression, DBSCAN cold-cluster dedup, access reinforcement, and contradiction flagging Human-editable markdown pages instead of fact-rows, cross-agent claim-once handoffs, and the same aging machinery done zero-LLM by default, reversibly (supersede-not-delete + restore-page), and off by default
basic-memory (file-first sibling) Markdown-on-disk as the source of truth Automatic lifecycle capture and a derived FTS/entity/graph index on top, cross-agent handoffs, and multi-user sharing built in
Claude Code built-in memory "Remember my project" convenience, zero setup Synced across machines and agents, searchable, team-capable, and captures tool lifecycle — not a per-laptop MEMORY.md
Hindsight / OpenViking (hosted, LLM-required) Living pages / document memory with a background consolidation loop — and, on 2.4, belief-strength confidence plus an opt-in LLM "dream" rewrite of cold clusters A self-contained binary that runs zero-LLM by default and keeps memory in files you own; per-project team sharing instead of strict per-bank isolation; the dream/belief features are opt-in, off by default, and never delete a source (vs a mandatory LLM loop)
Supermemory / LiquidLM (hosted memory API) A managed second brain with automatic ingestion Git-versioned markdown you own, no required API spend, offline operation, and per-project team sharing — ai-memory remembers this repo, not a general vault

The consistent theme: files you own (git-backed markdown), a zero-LLM default, one self-contained binary, cross-agent + cross-machine + team sharing, automatic lifecycle capture, and typed, claim-once handoffs. Opt-in features (LLM consolidation, vector search, the "dream" consolidation pass, belief-strength in ranking) stay opt-in — and the zero-LLM aging path (per-tier decay, extractive compaction, dedup, contradiction flagging, access-weighted retention) works with no API key at all.

Built on the shoulders of: the Karpathy LLM Wiki (compile-not-retrieve), agentmemory (this project is its Rust successor), basic-memory (markdown-on-disk truth), cognee (pipeline composition and triplet embeddings), Hermes Agent (the self-improvement loop), and A-MEM (Zettelkasten-style atomic notes).

The full, fair rundown — where each approach wins, where ai-memory differs, the published benchmark — is in How ai-memory compares.

Quick start

Arch Linux (AUR)

For native Arch installs, use the AUR packages. They install /usr/bin/ai-memory, packaged hook sources, and both system-level and user-level systemd units.

yay -S ai-memory-bin    # prebuilt Linux x86_64/aarch64 binary
yay -S ai-memory        # builds from source

Fedora (RPM)

Download the x86_64 or aarch64 RPM from the latest release, then install it:

sudo dnf install ./ai-memory-*.rpm

Then follow the native Linux service instructions in docs/install.md.

Single-user workstation:

mkdir -p ~/.config/ai-memory ~/.local/share/ai-memory
ai-memory --data-dir ~/.local/share/ai-memory \
  --config ~/.config/ai-memory/config.toml init
systemctl --user enable --now ai-memory.service
ai-memory install-mcp --client claude-code --apply
ai-memory install-hooks --agent claude-code --apply

System service installs use /var/lib/ai-memory and /etc/ai-memory/ via the packaged unit. Full user-service, system-service, auth, and provider setup is in docs/install.md#arch-linux-native-packages-aur.

macOS (menu bar app)

A self-contained .app that bundles the native ai-memory binary and hooks/ tree, starts the existing LaunchAgent, and opens /web, ai-memory status, and config.toml from the menu bar. Wiki, SQLite, config, and models stay in ~/Library/Application Support/ai-memory, so replacing the app is an update — it does not rewrite that tree.

Needs a Rust toolchain and Xcode / Swift 6 (same as a source build):

git clone https://github.com/akitaonrails/ai-memory
cd ai-memory
./companions/ai-memory-macos/build.sh
open "companions/ai-memory-macos/dist/AI Memory.app"

Drag AI Memory.app to /Applications, then Install & Start Server from the menu extra (no Dock icon). When the status item is green, wire an agent with the bundled binary:

BIN="/Applications/AI Memory.app/Contents/Resources/runtime/ai-memory"
"$BIN" install-mcp --client claude-code --apply
"$BIN" install-hooks --agent claude-code --apply

Prebuilt tarball and launchd-without-the-app paths: docs/macos.md. Companion details: companions/ai-memory-macos.

Docker

You need: Docker or Podman + an agent CLI from the Support Matrix, or anything else that speaks MCP.

The published Docker image includes linux/amd64 and linux/arm64 variants, so Apple Silicon Macs and ARM64 Linux hosts can pull akitaonrails/ai-memory without --platform linux/amd64 emulation.

The default quick-start has no authentication - the server binds to loopback only, so on a single-user laptop nothing else can reach it. Adding a bearer token is a one-line change once you're ready to expose the server on the LAN; see Security below.

# 1. Install the ai-memory CLI wrapper (a small shell script that
#    runs the binary inside a container with your $HOME mounted). This is
#    the only thing that needs to live on the host filesystem.
mkdir -p ~/.local/bin
wrapper_tmp="$(mktemp -d)"
trap 'rm -rf "$wrapper_tmp"' EXIT
wrapper_base=https://github.com/akitaonrails/ai-memory/releases/latest/download/ai-memory-wrapper
curl -fsSL "$wrapper_base" -o "$wrapper_tmp/ai-memory-wrapper"
curl -fsSL "$wrapper_base.sha256" -o "$wrapper_tmp/ai-memory-wrapper.sha256"
expected="$(awk 'NR == 1 { print $1 }' "$wrapper_tmp/ai-memory-wrapper.sha256")"
if command -v sha256sum >/dev/null 2>&1; then
    actual="$(sha256sum "$wrapper_tmp/ai-memory-wrapper" | awk '{ print $1 }')"
else
    actual="$(shasum -a 256 "$wrapper_tmp/ai-memory-wrapper" | awk '{ print $1 }')"
fi
[ -n "$expected" ] && [ "$actual" = "$expected" ] || { echo "wrapper checksum mismatch" >&2; exit 1; }
install -m 0755 "$wrapper_tmp/ai-memory-wrapper" ~/.local/bin/ai-memory
rm -rf "$wrapper_tmp"
trap - EXIT
# Most distros put ~/.local/bin on PATH automatically. If `which
# ai-memory` comes up empty, add this to ~/.bashrc / ~/.zshrc:
#     export PATH="$HOME/.local/bin:$PATH"

# 2. Start the server. `--restart unless-stopped` makes it come back
#    on docker daemon restart and on machine boot (provided your
#    docker service is enabled at boot — `sudo systemctl enable
#    docker` on most distros). Loopback-only bind (`127.0.0.1:49374`)
#    so nothing outside this machine can reach it. Omit the LLM /
#    EMBEDDING lines for zero-LLM mode — FTS5 search still works
#    without any keys.
docker run -d --name ai-memory \
    --restart unless-stopped \
    -p 127.0.0.1:49374:49374 \
    -v ai-memory-data:/data \
    -e AI_MEMORY_LLM_PROVIDER=anthropic \
    -e ANTHROPIC_API_KEY=sk-ant-... \
    -e AI_MEMORY_EMBEDDING_PROVIDER=openai \
    -e OPENAI_API_KEY=sk-... \
    docker.io/akitaonrails/ai-memory:latest

# 3. Wire your agent CLI in two commands. The wrapper takes care of
#    mounts and each client's config-path detection. Re-run with
#    `--agent codex`, `--agent command-code`, `--agent devin`, `--agent opencode`, `--agent opencode2`, `--agent gemini-cli`,
#    `--agent grok`, `--agent kimi-code`, `--agent kiro-cli`, `--agent omp`,
#    `--agent oh-my-pi`, `--client cursor`,
#    `--client gemini-cli`, `--client grok`, `--client kiro-cli`, etc.
#    for additional agents; full list in docs/install.md.
ai-memory install-mcp   --client claude-code --apply
ai-memory install-hooks --agent  claude-code --apply

On Linux and macOS, the Docker wrapper runs install-hooks through its checksum-verified native host client. The installed hooks therefore enforce client-side capture controls such as [capture] ignore_paths and allowlist mode before an event reaches the spool or network. Set AI_MEMORY_HOOK_PLATFORM=posix explicitly only when you need the legacy shell compatibility path; the installer warns that path cannot enforce capture policy v1.

The examples use docker; replace it with podman on a Podman host. The wrapper automatically uses Podman when Docker is not installed. Set AI_MEMORY_DOCKER=podman to force Podman when both engines are available.

On Linux/macOS, that's it. Start a Claude Code session as usual - every prompt and tool call now lands in ai-memory, and the next session you open in this project will see a handoff with where you left off. On macOS the native binary is the recommended path when you do not need Docker — either the menu bar app above or a release tarball / launchd agent. Later updates for that path use ai-memory upgrade (checksum-verified GitHub release replace + hook refresh) — see docs/install.md#keeping-ai-memory-up-to-date. The same native upgrade path covers Windows x86_64 zip installs under a writable prefix (see docs/windows.md Scenario C).

Wiring another agent is the same two commands with a different name — --client codex, --agent codex, and so on for every row of the support matrix. The full per-agent guide, including Windows and remote servers, is docs/install.md.

Two agents in the same project at once, or teammates on one server? That works out of the box: the "current project" pointer is isolated per caller by default (v1.39+). See docs/auto-scope.md for the optional session-aware Claude Code bridge and the details.

If in doubt, start your harness with ai-memory run. It is the preferred way to launch: the first time it runs a harness it auto-installs that harness's ai-memory hooks + MCP if they are missing (so capture and recall just work — no separate install-hooks/install-mcp step to forget), it wires the right project scope by construction, and it adds cross-harness session continuity on top of shared memory. Everything is idempotent and one-time per harness and config home.

ai-memory run claude
ai-memory run codex --yolo   # later: same workstream, different harness
ai-memory continue           # resume the newest managed checkout
# after a dead launcher left its lease behind (same operator only)
ai-memory run --force-unlock codex

--force-unlock immediately expires the selected workstream's active lease; use it only when you know the previous launcher is gone. It does not kill a native process, and it cannot evict another authenticated operator's run. See the managed-workstream recovery notes for the full safety contract.

Auto-wiring is on by default; opt out with ai-memory run --no-autowire or AI_MEMORY_RUN_AUTOWIRE=false. You can still wire agents by hand with install-hooks / install-mcp (e.g. for a harness you never launch through ai-memory run).

ai-memory uninstall --apply removes everything ai-memory installed, and only what it installed. It also clears ai-memory run's auto-wire record, so the next managed launch wires that harness again; to keep it unwired, launch with --no-autowire or set AI_MEMORY_RUN_AUTOWIRE=false. Install commands are idempotent and write timestamped backups next to any file they touch.

Everyday use

Day to day, you mostly do not think about ai-memory. Hooks capture prompts, tool calls, and session boundaries; session end turns them into readable wiki pages; the next session starts with a handoff.

  • Ask "where did we leave off?" to continue from the pending handoff.
  • Ask "have we discussed X?" or "search memory for Y" to query the wiki.
  • Ask "catch me up" for a prose digest of recent project activity.
  • Run ai-memory bootstrap once when adopting an existing project with months of history.
  • Start the server with --enable-web for a read-only browser view of the wiki and a JSON API under /api/v1.

The full tour — search modes, entities, feedback, briefings, the web API — is in docs/usage.md and docs/use-cases.md.

Teams and multiple machines

Run the server somewhere reachable — a homelab box, a LAN host — and point every machine and every teammate at it. Knowledge is shared per project; personal handoffs stay personal; every write is attributed and audited. Multi-user auth (passwords, API credentials) is built in.

Start with docs/users.md for accounts and ownership, and docs/deploy.md for the server itself — including capacity numbers measured rather than guessed, and the one rule that matters: one server per data directory, never two.

Security

The quick-start default is loopback-only with no auth — nothing outside your machine can reach it. From there, hardening is incremental: a bearer token for the LAN, per-user accounts, OIDC device auth for hooks, TLS via a reverse proxy. Capture is sanitized at a typed privacy boundary before anything is stored, and per-repository [capture] rules can exclude paths or invert to allowlist mode. A repository can also route its capture to a different server than the one the hooks were installed against.

The full model is in docs/security.md, docs/users.md, and docs/https-via-proxy.md. For data-flow, identity/SSO, and offline-install questions specifically, see DATA_HANDLING.md, docs/sso.md, and docs/airgapped-install.md.

LLM providers

Optional. Everything works with zero LLM calls; adding a provider upgrades session summaries and enables semantic search. Anthropic, OpenAI (including OAuth), Codex CLI credential reuse, GitHub Copilot, Gemini, OpenCode (Go and Zen), and any OpenAI-compatible endpoint (Ollama, LM Studio, vLLM) are supported for consolidation; OpenAI, Voyage, Gemini, and keyless OpenAI-compatible endpoints for embeddings. Configuration lives in docs/llm-providers.md.

Architecture

One Rust binary runs an MCP/HTTP server and owns one data directory:

<data_dir>/
├── wiki/    # markdown source of truth, git-versioned
├── raw/     # immutable sanitized managed-workstream transcript segments
├── db/      # SQLite indexes, including FTS5, entities, and embeddings
├── models/  # reserved for local embedding models
└── logs/    # rolling tracing output

Hooks POST observations to the server. The server serializes writes through one SQLite writer, compiles session observations into markdown pages, and serves retrieval through FTS5, entity-match and graph-neighbor RRF, optional vector RRF, bounded source-authority adjustment, and bounded raw-observation fallback for non-global searches.

See docs/ARCHITECTURE.md for the data-flow diagram, crate breakdown, schema notes, and invariants.

Docs

For users

File What it is
docs/cookbook.md Task-oriented cheat sheet. "I want to do X" → how: recall prior work, keep a project rule, import an existing knowledge base, get two agents/repos working together. Start here.
docs/install.md Installation cookbook. Every agent CLI, every alternative (curl, source build, no-docker, no-auth), and the server-on-a-different-machine walkthrough.
docs/usage.md Handoffs, proactive memory queries, slim routing snippet + managed Agent Skills, web UI, raw-wiki inspection, and rules-vs-facts workflow.
docs/managed-workstreams.md Optional ai-memory run continuity across harnesses: auto harness selection, native resume, argument forwarding, ledger search, privacy, and recovery.
docs/agent-messaging.md Cross-project agent-to-agent messaging: a directed, claim-once inbox/queue plus the on-start "you have mail" notice.
docs/marker-file.md .ai-memory.toml workspace/project routing for multi-client trees, mono-repos, worktrees, and work/personal separation, plus per-repository server profiles.
docs/auto-scope.md [auto_scope] modes for shared servers: default single-slot routing, session-aware isolation, and multi-user per_actor behavior.
docs/macos.md macOS install paths: menu bar app, native release tarball, source build, Docker wrapper, launchd, and current limitations.
docs/windows.md Windows install modes: full WSL2, native Windows with Docker Desktop, prebuilt native release zip, native source builds, and caveats.
docs/mcp-install.md Per-client MCP and lifecycle notes, handoff-injection limits, and community bridge guidance.
docs/deploy.md Homelab deploy: bin/deploy, bearer-token auth, pointers to the TLS guide.
docs/users.md Multi-user attribution and human login. Four-rung bearer ladder, password sessions, ai-memory user / api-key walkthrough, brownfield migration.
docs/https-via-proxy.md HTTPS via a reverse proxy. When you need TLS and when you don't, with copy-paste Caddy / nginx / Cloudflare Tunnel templates and the "secure when you're not" failure modes.
docs/lifecycle-ops.md Read before purge / rename / backup / restore / reset / reindex / restore-page. Safety matrix, per-project disk layout, checkpoint page recovery, and operator workflows.
docs/backup.md Backing up the wiki + data dir to a remote git repository: what to include, what to exclude, scheduled push pattern, restore, and security posture. Companion to docs/lifecycle-ops.md (which covers the on-box ai-memory backup snapshot).
docs/llm-providers.md Provider configuration for consolidation and embeddings.
docs/security.md The full security model.
docs/support-matrix.md The full agent/platform matrix with notes.
docs/use-cases.md Scenario walkthroughs.
DATA_HANDLING.md Data-flow reference for security/legal review. What's stored, what's local-only, the two opt-in external paths, and how deletion/retention work.
docs/sso.md Enterprise identity: the OIDC device-auth flow, its scope, and how to front the server with an OIDC-aware gateway.
docs/airgapped-install.md Offline/air-gapped install: self-contained build, checksum-verified release binaries, and offline local embedding models.
docs/MIGRATION-2.0.md Upgrading an existing store to 2.0: the backup-gated automatic migration and how to restore.
docs/benchmarks/ Published retrieval-quality numbers with provenance, reproducible from the in-repo harness.
docs/okf.md The wiki is natively an Open Knowledge Format (OKF v0.2) bundle; design and field mapping.

For contributors

File What it is
docs/ARCHITECTURE.md Operational summary: data flow, crate layout, cross-cutting invariants, schema.
docs/design-decisions.md The full v1 spec.
docs/managed-harness-contributions.md Protocol and acceptance bar for adding managed resume, transcript import, and startup context delivery to another harness.
docs/companion-crates.md Optional companion projects: the importer and external lifecycle relay.
docs/external-lifecycle.md External lifecycle producers: per-execution native capture suppression, preserved handoffs, batch ingestion and stable retry identity.
docs/auto-improvement-loop.md Auto-improvement design notes: scheduled review, auto-approval default, manual review opt-in, pending proposal storage, and curator work.

License

MIT - see LICENSE.

Acknowledgements

This codebase is being built collaboratively with Claude Code (Anthropic Claude Opus 4.7) following the plan documented in docs/design-decisions.md.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

120 total
  1. v2.5.2v2.5.2Oct 1, 2026759 downloads

    ## Checksums (SHA256) ``` 6d770348ab5578d4a58d86922957aaf882f4fefb57a4d931622b5ad30c9b5173 ai-memory-2.5.2-1.aarch64.rpm d4980a5aba8a381cb384419b6786d38227c24697008ea3de11351c844396322f ai-memory-2.5.2-1.x86_64.rpm c31dc3e4e75d00dc5cb32760c2334bf42baefbca495279ab2b4578ee487b26bb ai-memory-hooks.tar.gz 03ff76073136b7ac8effe5db6e73874e4fcdbfd47208e079c26fb43c320117de ai-memory-install-hooks 813e962b10b51877948805a3dc73bcbae512c143e18772e8ca170f1f83fd2ce7 ai-memory-linux-aarch64.tar.gz acbf6ee84e744a9ab0a8e133a3eefbbb77811d6b4d0ca9a281e664358c1a1fc8 ai-memory-linux-x86_64.tar.gz 160881fab2be3d2e9cf64f656da517c961c1e14ff4987d75a70ee1c71e17e9ef ai-memory-macos-aarch64.tar.gz 35fe9b036707c587cfe75e21bbe4a49b00eac2018a047352970fd53d787e9c4a ai-memory-macos-x86_64.tar.gz 7bc4dab235feb7a26496338feb756515bf6e47ef5f0eaa4fe0e5dcaabead32d3 ai-memory-windows-x86_64.zip 6a91c44ffa2e85d3b5a6ce26a4ccff0286b91d08d276d2bb4d47c346b036ee8b ai-memory-wrapper.cmd 9e300e75fad2838aac144b591bfc15e25c1fc394bb7e806d7f04e43712c847b1 ai-memory-wrapper.ps1 8e3526572d9a46108597bf58d495ba90d32e77d35d9c3ecd6afc611618f78194 ai-memory-wrapper ``` ## Install ```bash # Arch Linux (AUR) yay -S ai-memory-bin

  2. v2.5.1v2.5.1Oct 1, 202695 downloads

    ## Checksums (SHA256) ``` 771800a4399cee79909da8a64689a5df0c013f1447fcc4af8e5a3c35ab86ea30 ai-memory-2.5.1-1.aarch64.rpm d4310860b5868ac82ff6583dd0343ec536d9b40f05d74c3a544d9c9c05217e19 ai-memory-2.5.1-1.x86_64.rpm e871422d17410a4c31a8a894f408085b83f3a31b06d77443bb5cbe6033001480 ai-memory-hooks.tar.gz 03ff76073136b7ac8effe5db6e73874e4fcdbfd47208e079c26fb43c320117de ai-memory-install-hooks 3315d15d068bdc47dd4c18ff0d56751d20eaf4d5cca4f49affdb4331cee9a037 ai-memory-linux-aarch64.tar.gz bfd7170812d0d5e74ba760c3062c5b524cd00b6fd506c681b1992c209d854a2a ai-memory-linux-x86_64.tar.gz 4740c1d8963a2a8837620ec3266a47a745996dc16d1106853e3daea32f4db1bc ai-memory-macos-aarch64.tar.gz 1e6fa981009c361ebe8ab8b7a43c5734a0cafa6ddfdb307e27f14feb12e63119 ai-memory-macos-x86_64.tar.gz 75655576f9a595edc7cf97de31b14fb138924265a0fb960b02e1c917cd59ae4a ai-memory-windows-x86_64.zip 6a91c44ffa2e85d3b5a6ce26a4ccff0286b91d08d276d2bb4d47c346b036ee8b ai-memory-wrapper.cmd 9e300e75fad2838aac144b591bfc15e25c1fc394bb7e806d7f04e43712c847b1 ai-memory-wrapper.ps1 8e3526572d9a46108597bf58d495ba90d32e77d35d9c3ecd6afc611618f78194 ai-memory-wrapper ``` ## Install ```bash # Arch Linux (AUR) yay -S ai-memory-bin

  3. v2.5.0v2.5.0Sep 30, 2026308 downloads

    ## Checksums (SHA256) ``` d23a34de8e06a14e29e125624098a74a066a5329d3f982f5dcbc655245ffd667 ai-memory-2.5.0-1.aarch64.rpm 2ae0664ead939039604776c44b66a07199d84bbd9b99ff8024a044eb11d31646 ai-memory-2.5.0-1.x86_64.rpm c37d52da1e600324dd43f8ae18577ab3f63d472c50e3672e0a48418ae8e33287 ai-memory-hooks.tar.gz 03ff76073136b7ac8effe5db6e73874e4fcdbfd47208e079c26fb43c320117de ai-memory-install-hooks 7c718d3041bd3ca3288ecc0726bf274abbdceba4ce311ef71badc3b2c9dbc267 ai-memory-linux-aarch64.tar.gz 4b73873c53a2be32990eea0efc47c81e3c342d3e529909ac71fe27734f214dc6 ai-memory-linux-x86_64.tar.gz 3a3345f24412c539762bedd0ee423441c3ef80e6550d9e82f43f904e6f42b414 ai-memory-macos-aarch64.tar.gz ebefcb1c5bfbcae85864d67d0b0b94e68ac50262e796bbf64b343da94cd7ec2a ai-memory-macos-x86_64.tar.gz 5ab3201ca98a68db58301a7b42be7560ba065bb0ded20f2b01c23aa537b69c6e ai-memory-windows-x86_64.zip 6a91c44ffa2e85d3b5a6ce26a4ccff0286b91d08d276d2bb4d47c346b036ee8b ai-memory-wrapper.cmd 9e300e75fad2838aac144b591bfc15e25c1fc394bb7e806d7f04e43712c847b1 ai-memory-wrapper.ps1 8e3526572d9a46108597bf58d495ba90d32e77d35d9c3ecd6afc611618f78194 ai-memory-wrapper ``` ## Install ```bash # Arch Linux (AUR) yay -S ai-memory-bin

  4. v2.4.2v2.4.2Sep 29, 20261.2K downloads

    ## Checksums (SHA256) ``` ceda86aeaf079d27db4d0560ac5774c57f7bf8e25d76fafa8fb6a8ab0405e03c ai-memory-hooks.tar.gz 60cdc739c21f38b017c89f7fdc5708eb8d08fec715dfa62f364c23698094b074 ai-memory-install-hooks c5766ab684838275651fe88675ec38640872cd1ae4c7fbb412045202980429e4 ai-memory-linux-aarch64.tar.gz e23bd078ff1c84ff1917ca9dba3a6332560b9bb6d6dce2d5df6b6c66166b69e3 ai-memory-linux-x86_64.tar.gz b4ca2bc3b1f3b4daba7a2fb2b9a87c54b4fd25adf21e58a1edf4500067737907 ai-memory-macos-aarch64.tar.gz be5a180adf86e402921310242d5d29da7eff13ba38672f36f0441e587a81ced0 ai-memory-macos-x86_64.tar.gz be8c81d186d8834de0f186e82e96766cbdb6d11808f56b89a88ff247f0c5f326 ai-memory-windows-x86_64.zip 6a91c44ffa2e85d3b5a6ce26a4ccff0286b91d08d276d2bb4d47c346b036ee8b ai-memory-wrapper.cmd c85afc8e276bbd807d200fc56fd421d398b5aeacc06c72587f5c34b03c84be31 ai-memory-wrapper.ps1 49c965a0319dbe9c525d552a9a4c8b3464e5dd278e36d5dc7a03edee8b5502e6 ai-memory-wrapper ``` ## Install ```bash # Arch Linux (AUR) yay -S ai-memory-bin # prebuilt Linux x86_64/aarch64 binary yay -S ai-memory # builds from source # Docker docker pull akitaonrails/ai-memory:2.4.2 # macOS aarch64/x86_64 (no toolchain): download

  5. v2.4.1v2.4.1Sep 25, 20263.7K downloads

    ## Checksums (SHA256) ``` d79195b48473a568c4f69d909e44f7182e20af0315f1963411032b3cabe0a703 ai-memory-hooks.tar.gz 60cdc739c21f38b017c89f7fdc5708eb8d08fec715dfa62f364c23698094b074 ai-memory-install-hooks f5fbe2ba7f21469cb473c6cdfc74d62c01eaaaea1b792e3a0251953169589bfd ai-memory-linux-aarch64.tar.gz 15cafdc48eabc0305c164ccc8e884b260275f5a88b4f26e8456c2e42156375e4 ai-memory-linux-x86_64.tar.gz 0c1b820d08ca647a7f5e05cb1fd35e1d745b4166e39bb9e066af7810f8eacb42 ai-memory-macos-aarch64.tar.gz 9c7a53c351f73884a1a15c6dd38d885db36606b64cbd21d699416de9dffa526e ai-memory-macos-x86_64.tar.gz 9626bf35b211aa8cf24a501f90cc54a36dd26d31c24a43da3760258a4f50a295 ai-memory-windows-x86_64.zip 6a91c44ffa2e85d3b5a6ce26a4ccff0286b91d08d276d2bb4d47c346b036ee8b ai-memory-wrapper.cmd c85afc8e276bbd807d200fc56fd421d398b5aeacc06c72587f5c34b03c84be31 ai-memory-wrapper.ps1 49c965a0319dbe9c525d552a9a4c8b3464e5dd278e36d5dc7a03edee8b5502e6 ai-memory-wrapper ``` ## Install ```bash # Arch Linux (AUR) yay -S ai-memory-bin # prebuilt Linux x86_64/aarch64 binary yay -S ai-memory # builds from source # Docker docker pull akitaonrails/ai-memory:2.4.1 # macOS aarch64/x86_64 (no toolchain): download

Code frequency

additions and deletions
+73.1K-73.1KWeek of 2026-05-17: +44,136 linesWeek of 2026-05-17: -4,313 linesWeek of 2026-05-24: +44,491 linesWeek of 2026-05-24: -9,324 linesWeek of 2026-05-31: +16,269 linesWeek of 2026-05-31: -1,984 linesWeek of 2026-06-07: +5,816 linesWeek of 2026-06-07: -1,353 linesWeek of 2026-06-14: +19,483 linesWeek of 2026-06-14: -3,160 linesWeek of 2026-06-21: +13,145 linesWeek of 2026-06-21: -1,020 linesWeek of 2026-06-28: +7,751 linesWeek of 2026-06-28: -2,163 linesWeek of 2026-07-05: +7,221 linesWeek of 2026-07-05: -819 linesWeek of 2026-07-12: +13,769 linesWeek of 2026-07-12: -1,368 linesWeek of 2026-07-19: +28,985 linesWeek of 2026-07-19: -6,137 linesWeek of 2026-07-26: +43,341 linesWeek of 2026-07-26: -6,675 linesWeek of 2026-08-02: +13,156 linesWeek of 2026-08-02: -1,613 linesWeek of 2026-08-09: +7,127 linesWeek of 2026-08-09: -720 linesWeek of 2026-08-16: +12,647 linesWeek of 2026-08-16: -1,478 linesWeek of 2026-08-23: +9,298 linesWeek of 2026-08-23: -652 linesWeek of 2026-08-30: +73,105 linesWeek of 2026-08-30: -33,505 linesWeek of 2026-09-06: +14,286 linesWeek of 2026-09-06: -1,788 linesWeek of 2026-09-13: +705 linesWeek of 2026-09-13: -121 linesMay 17, 2026Sep 13, 2026
+374.7K lines added, -78.2K removed over the last year.

Commits per week

last 52 weeks
2140Week of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 96 commitsWeek of 2026-05-24: 190 commitsWeek of 2026-05-31: 86 commitsWeek of 2026-06-07: 26 commitsWeek of 2026-06-14: 74 commitsWeek of 2026-06-21: 54 commitsWeek of 2026-06-28: 37 commitsWeek of 2026-07-05: 46 commitsWeek of 2026-07-12: 42 commitsWeek of 2026-07-19: 96 commitsWeek of 2026-07-26: 106 commitsWeek of 2026-08-02: 45 commitsWeek of 2026-08-09: 20 commitsWeek of 2026-08-16: 72 commitsWeek of 2026-08-23: 59 commitsWeek of 2026-08-30: 162 commitsWeek of 2026-09-06: 92 commitsWeek of 2026-09-13: 97 commitsWeek of 2026-09-20: 214 commitsWeek of 2026-09-27: 135 commitsOct 5, 2025Sep 27, 2026
1.7K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 5 commitsSun 1:00 — 8 commitsSun 2:00 — 3 commitsSun 3:00 — 3 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 2 commitsSun 9:00 — 1 commitsSun 10:00 — 10 commitsSun 11:00 — 10 commitsSun 12:00 — 20 commitsSun 13:00 — 18 commitsSun 14:00 — 19 commitsSun 15:00 — 6 commitsSun 16:00 — 6 commitsSun 17:00 — 8 commitsSun 18:00 — 8 commitsSun 19:00 — 7 commitsSun 20:00 — 13 commitsSun 21:00 — 4 commitsSun 22:00 — 11 commitsSun 23:00 — 14 commitsMon 0:00 — 3 commitsMon 1:00 — 1 commitsMon 2:00 — 10 commitsMon 3:00 — 6 commitsMon 4:00 — 1 commitsMon 5:00 — 0 commitsMon 6:00 — 2 commitsMon 7:00 — 0 commitsMon 8:00 — 3 commitsMon 9:00 — 4 commitsMon 10:00 — 8 commitsMon 11:00 — 5 commitsMon 12:00 — 17 commitsMon 13:00 — 17 commitsMon 14:00 — 21 commitsMon 15:00 — 29 commitsMon 16:00 — 32 commitsMon 17:00 — 16 commitsMon 18:00 — 19 commitsMon 19:00 — 27 commitsMon 20:00 — 11 commitsMon 21:00 — 17 commitsMon 22:00 — 27 commitsMon 23:00 — 10 commitsTue 0:00 — 5 commitsTue 1:00 — 3 commitsTue 2:00 — 4 commitsTue 3:00 — 3 commitsTue 4:00 — 2 commitsTue 5:00 — 2 commitsTue 6:00 — 2 commitsTue 7:00 — 10 commitsTue 8:00 — 2 commitsTue 9:00 — 7 commitsTue 10:00 — 13 commitsTue 11:00 — 21 commitsTue 12:00 — 26 commitsTue 13:00 — 26 commitsTue 14:00 — 24 commitsTue 15:00 — 25 commitsTue 16:00 — 20 commitsTue 17:00 — 15 commitsTue 18:00 — 12 commitsTue 19:00 — 11 commitsTue 20:00 — 7 commitsTue 21:00 — 12 commitsTue 22:00 — 10 commitsTue 23:00 — 16 commitsWed 0:00 — 12 commitsWed 1:00 — 13 commitsWed 2:00 — 14 commitsWed 3:00 — 0 commitsWed 4:00 — 1 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 2 commitsWed 8:00 — 3 commitsWed 9:00 — 3 commitsWed 10:00 — 22 commitsWed 11:00 — 12 commitsWed 12:00 — 25 commitsWed 13:00 — 15 commitsWed 14:00 — 20 commitsWed 15:00 — 20 commitsWed 16:00 — 6 commitsWed 17:00 — 9 commitsWed 18:00 — 7 commitsWed 19:00 — 8 commitsWed 20:00 — 8 commitsWed 21:00 — 28 commitsWed 22:00 — 7 commitsWed 23:00 — 5 commitsThu 0:00 — 6 commitsThu 1:00 — 9 commitsThu 2:00 — 5 commitsThu 3:00 — 4 commitsThu 4:00 — 9 commitsThu 5:00 — 2 commitsThu 6:00 — 0 commitsThu 7:00 — 2 commitsThu 8:00 — 1 commitsThu 9:00 — 3 commitsThu 10:00 — 14 commitsThu 11:00 — 14 commitsThu 12:00 — 17 commitsThu 13:00 — 26 commitsThu 14:00 — 10 commitsThu 15:00 — 24 commitsThu 16:00 — 17 commitsThu 17:00 — 14 commitsThu 18:00 — 17 commitsThu 19:00 — 13 commitsThu 20:00 — 13 commitsThu 21:00 — 20 commitsThu 22:00 — 5 commitsThu 23:00 — 25 commitsFri 0:00 — 15 commitsFri 1:00 — 8 commitsFri 2:00 — 7 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 1 commitsFri 6:00 — 2 commitsFri 7:00 — 0 commitsFri 8:00 — 3 commitsFri 9:00 — 5 commitsFri 10:00 — 16 commitsFri 11:00 — 32 commitsFri 12:00 — 29 commitsFri 13:00 — 17 commitsFri 14:00 — 31 commitsFri 15:00 — 18 commitsFri 16:00 — 21 commitsFri 17:00 — 9 commitsFri 18:00 — 16 commitsFri 19:00 — 17 commitsFri 20:00 — 9 commitsFri 21:00 — 15 commitsFri 22:00 — 16 commitsFri 23:00 — 16 commitsSat 0:00 — 11 commitsSat 1:00 — 5 commitsSat 2:00 — 4 commitsSat 3:00 — 1 commitsSat 4:00 — 5 commitsSat 5:00 — 3 commitsSat 6:00 — 3 commitsSat 7:00 — 0 commitsSat 8:00 — 4 commitsSat 9:00 — 3 commitsSat 10:00 — 17 commitsSat 11:00 — 16 commitsSat 12:00 — 21 commitsSat 13:00 — 13 commitsSat 14:00 — 17 commitsSat 15:00 — 16 commitsSat 16:00 — 11 commitsSat 17:00 — 4 commitsSat 18:00 — 10 commitsSat 19:00 — 7 commitsSat 20:00 — 2 commitsSat 21:00 — 8 commitsSat 22:00 — 14 commitsSat 23:00 — 7 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits1,656 (68%)
Community commits789 (32%)

2,445 commits in total over the last year.

DateListRankStars gained
Sep 29, 2026weekly#11+1,224
Sep 28, 2026weekly#11+1,224
Sep 25, 2026weekly#13+1,208
Sep 24, 2026weekly#13+1,208
Sep 22, 2026daily#3+114
Sep 21, 2026daily#3+114
Sep 17, 2026monthly#15+5,449
Sep 16, 2026monthly#15+5,449
Sep 15, 2026monthly#12+5,351
Sep 14, 2026monthly#12+5,269
Sep 13, 2026monthly#13+5,121
Sep 12, 2026monthly#13+5,121
Sep 11, 2026monthly#13+5,026
Sep 10, 2026monthly#13+4,804
Sep 9, 2026monthly#13+4,716
  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195.2K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    140K stars · Rust

  • openai/codex

    Lightweight coding agent that runs in your terminal

    127.8K stars · Rust

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.6K stars · Rust

  • ruvnet/RuView

    π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.

    96.4K stars · Rust

  • oven-sh/bun

    Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one

    96.1K stars · Rust