Persistent decision memory for any project. Karpathy's LLM Wiki, productized.
Project description
agentlog
Persistent decision memory for any project. Three commands. One file. Zero frameworks.
Inspired by Karpathy's LLM Wiki — which proved that the best knowledge system is just well-structured text that an LLM maintains for you. This is that idea, shipped as a CLI you can install in 30 seconds.
The problem
Every team has a "why did we decide this?" problem. Decisions live in Slack threads, Google Docs, people's heads, and nowhere useful. Six months later, you're re-litigating the same trade-off because no one remembers the reasoning.
The fix
# Store a decision directly
agentlog remember "Chose DynamoDB over Postgres for session store — need <10ms at 10K RPS"
# Or use AI to summarize a decision from a file (e.g., using Simon Willison's 'llm' CLI)
agentlog remember "$(llm 'Summarize the key architectural decision made here' < meeting-notes.txt)"
# Retrieve relevant decisions
agentlog recall "database choices"
# Synthesize patterns across all decisions
agentlog reflect
That's it. Decisions are stored as JSONL (one per line, grep-friendly, version-controllable). Retrieval and reflection use Claude or Gemini to find relevant context and surface patterns.
Install
pip install agentlog-cli
export ANTHROPIC_API_KEY="sk-..." # or: export GEMINI_API_KEY="..."
agentlog remember "First decision logged"
That's it — Anthropic and Gemini SDKs are pulled in as dependencies, so a single pip install covers both providers.
Why
agentlog-cli, notagentlog? PyPI flagged the bare nameagentlogas confusable with an unrelated logging package. The module, CLI binary, and GitHub repo are stillagentlog— only thepip installtarget differs (same pattern aspillow/PIL,beautifulsoup4/bs4).
Run from source (for hacking on it)
git clone https://github.com/RyanAlberts/agentlog.git
cd agentlog
pip install -e .
agentlog remember "First decision logged"
How it works
remember stores a decision as a JSON line with auto-generated tags:
{"id": "20260415-213045", "timestamp": "2026-04-15T21:30:45", "text": "Chose DynamoDB over Postgres...", "tags": ["database", "performance", "infrastructure"]}
recall sends your query + all decisions to Claude (or Gemini) and gets back the relevant context with connections explained.
reflect asks Claude to find patterns, contradictions, and gaps across your entire decision history. Reflections are saved to .agentlog/reflections.md so they accumulate over time.
Multi-model support
Defaults to Claude (Anthropic). Switch to Gemini per-command:
agentlog recall "API design patterns" --model gemini
Or set a default:
export AGENTLOG_PROVIDER=gemini
Design philosophy
Read DECISIONS.md for the full rationale. The short version:
- One file, not a framework. 200 lines of Python. Read the whole thing in 5 minutes.
- JSONL, not a database. Grep-friendly, git-friendly, LLM-friendly.
- Three commands, not ten. Remember, recall, reflect. That's the whole API surface.
- The LLM does the heavy lifting. No embeddings, no vector DB, no RAG pipeline. The model reads all your decisions and finds the relevant ones. This works up to ~500 decisions before you'd need to add chunking.
Inspired by
- LLM Wiki by Andrej Karpathy — the idea that LLMs should maintain your knowledge base
- gbrain by Garry Tan — persistent memory for Claude Code projects
- Simon Willison's llm — proof that single-purpose CLI tools for LLMs are underrated
Built by Ryan Alberts — Staff PM working in Agentic AI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentlog_cli-0.1.0.tar.gz.
File metadata
- Download URL: agentlog_cli-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cbb6d060ef8769c0d363bcfa6d81f25f98f7c3409dd1d77d9e425da5ea74f08
|
|
| MD5 |
ef64b5cc9451de6847e54c2a0aa7b4b3
|
|
| BLAKE2b-256 |
26674ce77b7cb574808969a2dbb310e478e4ae76f6b45e493a6c26a5e420143d
|
Provenance
The following attestation bundles were made for agentlog_cli-0.1.0.tar.gz:
Publisher:
publish.yml on RyanAlberts/agentlog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentlog_cli-0.1.0.tar.gz -
Subject digest:
2cbb6d060ef8769c0d363bcfa6d81f25f98f7c3409dd1d77d9e425da5ea74f08 - Sigstore transparency entry: 1331281121
- Sigstore integration time:
-
Permalink:
RyanAlberts/agentlog@db99840b46e73296975614c50c1d88b7cc19c8b9 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/RyanAlberts
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@db99840b46e73296975614c50c1d88b7cc19c8b9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agentlog_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentlog_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
281e13823aa717c72015a77f21bd4168f76d7a004ee8eab12e138cef44ce23b2
|
|
| MD5 |
951beb9f9be0ed330d7efa70a93e8400
|
|
| BLAKE2b-256 |
1047f4c28f3955141caeb5f684d3f566c69593f5083c7be32615a5195ecd1fe1
|
Provenance
The following attestation bundles were made for agentlog_cli-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on RyanAlberts/agentlog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentlog_cli-0.1.0-py3-none-any.whl -
Subject digest:
281e13823aa717c72015a77f21bd4168f76d7a004ee8eab12e138cef44ce23b2 - Sigstore transparency entry: 1331281272
- Sigstore integration time:
-
Permalink:
RyanAlberts/agentlog@db99840b46e73296975614c50c1d88b7cc19c8b9 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/RyanAlberts
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@db99840b46e73296975614c50c1d88b7cc19c8b9 -
Trigger Event:
release
-
Statement type: