by agentic-box
Give your AI agents persistent, collective memory — with deduplicating absorb, supersession lineage, semantic search, and a graph UI. Speaks MCP.
# Add to your Claude Code skills
git clone https://github.com/agentic-box/memoraLast scanned: 5/22/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-22T07:44:38.990Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}See how memora compares with popular alternatives.
memora is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by agentic-box. Give your AI agents persistent, collective memory — with deduplicating absorb, supersession lineage, semantic search, and a graph UI. Speaks MCP. It has 746 GitHub stars.
Yes. memora passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/agentic-box/memora" and add it to your Claude Code skills directory (see the Installation section above).
memora is primarily written in Python. It is open-source under agentic-box on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh memora against similar tools.
No comments yet. Be the first to share your thoughts!
From $49 · 30 days · terms & refunds
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Automated security scan — not a certification.
Core Storage
/mcp/<name> (see Multi-database routing)Absorb & Lineage
dry_run previewfollow modes: active, latest, full_history)
follow=latest/active hide every version, memory_get on one answers not_found with retired: true naming the delete ("retired by deleting #N"), follow=all still reads it, and adding a supersedes edge to a retired id does not restore it.memory_absorb never supersedes an item record (metadata.kind = "item-record" or tag item-record): the fact is written and linked related_to instead. Todos and issues are protected by the type boundary (a plain fact never supersedes a typed one).memory_digest(topic) bundles relevant memories, open TODOs/issues, related edges, and source IDs into one retrievalSearch & Intelligence
Document Storage
Tools & Visualization
/api/v1)The server can expose a plain JSON API at /api/v1/<store>/{health,search,absorb}
(the wire contract is contracts/memora-api/v1/). It is off unless
MEMORA_API_TOKENS_FILE is set to an absolute path; an unset variable is an
intentional state and is logged at INFO, not ERROR (issue 1131).
The file holds sha256 digests, never tokens. The server opens it
O_RDONLY | O_NOFOLLOW | O_CLOEXEC and requires a regular file, no group/other
permission bits and at most 4 KiB, owned by the server's user, under parents
that are not symlinks and not group/world-writable. On a read-only mount
(for example the deploy's read-only secrets mount, where rootful docker reads
the operator's file as root and statvfs reports ST_RDONLY), the owner match
for the file and for its read-only parents is not required; every other check
still applies. A failed reload keeps the last good token set.
scripts/mint_api_token.sh mints a token into a new 0600 file and adds its
digest to api-tokens.json; scripts/deploy-memora-all.sh sets
MEMORA_API_TOKENS_FILE when that file is in its secrets directory. Request
semantics (401/403/404) and rotation are in the contract.
Two paths. pip is a local stdio child the client spawns. A container is a detached HTTP service you start with up; with MEMORA_DATABASES it serves multiple stores from one process. The LaunchAgent supervises the proxy, not the container — after a host restart the listener can come back while its upstream is still stopped. If you are running memora as a service, the container path is the install.
pip install memora-mcp
The PyPI package is memora-mcp (bare memora on PyPI is an unrelated project). Includes cloud storage (S3/R2) and OpenAI embeddings out of the box.
# Optional: local embeddings (offline, ~2GB for PyTorch)
pip install "memora-mcp[local]"
# Latest development version straight from git
pip install "git+https://github.com/agentic-box/memora.git"
Then spawn it from .mcp.json with "command": "memora-server" (see Configuration).
Default runtime is Apple's container CLI. Every container operation scripts/memora-instance.sh performs (build, up, status, logs, down) uses $MEMORA_CONTAINER_BIN (default container). The generated proxy process does not; it hardcodes container list.
Before the first build:
Install Apple's container CLI (signed pkg from its GitHub releases). It needs a Mac with Apple silicon running macOS 26 — Apple does not support older macOS versions for container.
Start the runtime — Apple's documented first command, which also installs a kernel if none is configured:
container system start
Clone this repo and cd into it:
git clone https://github.com/agentic-box/memora.git
cd memora
Copy the instance template. It ships with INSTANCE=myinstance so the later build/up/proxy lines match without renaming. Edit PORT and a backend (STORAGE_URI, VOLUME, or MEMORA_DATABASES):
cp instances/example.env instances/myinstance.env
Create the credential file and install the proxy the LaunchAgent will run. cred_args() requires a .mcp.json whose mcpServers.memora.env holds CLOUDFLARE_API_TOKEN (D1 access) and the embedding/LLM keys — up dies if that file is missing. The script looks for ~/.config/memora/credentials.mcp.json unless the instance file sets CRED_SOURCE to another path; there is no other fallback. Separately, proxy renders a plist whose executable is $MEMORA_PROXY_BIN (default ~/.local/libexec/memora/memora_proxy.py) and whose logs live in $MEMORA_LOG_DIR (default ~/.local/var/log) — nothing creates either on a fresh clone.
mkdir -p ~/.config/memora ~/.local/libexec/memora ~/.local/var/log
cp scripts/memora_proxy.py ~/.local/libexec/memora/
# real values; any key is fine, an absent file is not
# the default umask is permissive -- chmod 600 keeps other local accounts out
cat > ~/.config/memora/credentials.mcp.json <<'JSON'
{"mcpServers":{"memora":{"env":{"CLOUDFLARE_API_TOKEN":"REPLACE","OPENAI_API_KEY":"REPLACE"}}}}
JSON
chmod 600 ~/.config/memora/credentials.mcp.json
That JSON is the minimal correct config: both the LLM and embeddings use the default OpenAI host with a real OpenAI key. Do *