Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Project memory system for AI coding assistants (Claude Code, Cursor, Codex): session logs, project wiki, rules, TODOs, and handoff.
| Date | Stars |
|---|---|
| 2026-07-24 | 303 |
| 2026-07-25 | 309 |
| 2026-07-28 | 321 |
| 2026-07-30 | 326 |
| 2026-08-06 | 351 |
Today
+25 stars today
This week
+25 stars this week
This month
— stars this month
Momentum
160.0
growth rate 7.67%/day
# project-butler
**[English](README.md)** | [中文](README_zh.md)
[](https://github.com/JamesShi96/project-butler/stargazers)
[](https://github.com/JamesShi96/project-butler/releases)
[](LICENSE)
[](docs/compatibility.md)
> Make AI coding agents remember your project between sessions.
project-butler helps Claude Code, Cursor, Codex, and similar AI coding assistants behave like long-term project teammates instead of starting from scratch every session.
For normal use, you only need four actions:
```text
/project-butler Set up project memory
end session Save progress and next steps
continue Resume next time
status Check where the project stands
```
For projects that need stronger product, architecture, roadmap, research, or eval alignment, project-butler can also create a Project Profile during setup and offer profile-aware Normal Close / Full Close behavior.
## Quick Start
Install as a Claude Code skill:
```bash
git clone https://github.com/JamesShi96/project-butler.git ~/.claude/skills/project-butler
```
Open any project and set up project memory:
```text
/project-butler
```
Work normally. At the end of a work session:
```text
end session
```
Next time, resume without re-explaining the project:
```text
continue
```
That is enough for daily use. For Cursor, Codex, and other assistants, see [Tool Compatibility](docs/compatibility.md).
## Updating project-butler
The skill auto-checks for updates on every invocation. Once per day per
machine, it runs `git fetch` against its own repo and compares local
`HEAD` to `origin/main`. If behind, Claude Code asks you once — and at
most once every 24 hours:
```
project-butler is 3 commits behind upstream. Update now?
› Update now — pull the latest version right here
› Remind me later — ask again tomorrow
› Stop reminding — turn the check off
```
Picking **Update now** runs a fast-forward-only `git pull` for you and
reports the result. If it fails (local changes, offline, SSH blocked),
you get the manual command plus an HTTPS fallback. Nothing is ever
pulled without you choosing it.
The prompt is worded in your project's CLAUDE.md `Language:` setting
(English / Chinese / bilingual), and stops appearing once you are up to
date — the cache is keyed on commit SHA, not just time.
**Side effect on `git status`**: after the auto-fetch, `git status`
inside the skill directory may show "behind origin/main by N commits".
This is expected and harmless — the skill never modifies the working
tree unless you pick "Update now".
**Silencing**: `export PROJECT_BUTLER_NO_UPDATE_CHECK=1`. Only the
literal value `"1"` silences — `=0`, `=false`, or empty does **not**
silence (counter-intuitive but intentional).
**Note**: the check runs as a skill instruction, so it is best-effort —
it may occasionally not fire. Run the script manually any time you want
a definitive answer.
**Debugging a missing prompt**: from an external shell only, run the
shared update-check script with
`PROJECT_BUTLER_UPDATE_CHECK_DEBUG=1`. Never enable debug inside
Claude Code — CC captures stderr into the LLM context and debug output
will leak into responses.
**Cursor / Codex**: these tools do not have Claude Code's skill
lifecycle, so update checks are manual/on-demand:
```bash
bash "${PROJECT_BUTLER_SKILL_DIR:-$HOME/.claude/skills/project-butler}/scripts/check-update.sh"
```
Outside Claude Code there is no prompt — the script just prints a
`VERSION_NOTICE:` block with the update command when you are behind, and
nothing when you are current.
**Reach limitation**: if you installed project-buExcerpt of 16,399 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:836b4c921edb220e, topic:ai-coding, topic:coding-assistant, topic:developer-tools