Persistent local memory for AI coding agents. Preserve decisions and project context across sessions, compaction, and tools.
# Add to your Claude Code skills
git clone https://github.com/GabrielMartinMoran/mindLast scanned: 10/26/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@hono/node-server: @hono/node-server: Middleware bypass via repeated slashes in serveStatic",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@humanfs/node: humanfs: Recursive copy follows symlinked files and copies data from outside the source tree",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@modelcontextprotocol/sdk: MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server",
"severity": "high"
},
{
"type": "npm-audit",
"message": "body-parser: body-parser vulnerable to denial of service when invalid limit value silently disables size enforcement",
"severity": "high"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: Large numeric range defeats documented `max` DoS protection",
"severity": "high"
},
{
"type": "npm-audit",
"message": "express-rate-limit: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to host confusion via literal backslash authority delimiter",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()",
"severity": "high"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "high"
},
{
"type": "npm-audit",
"message": "js-yaml: JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
"severity": "high"
},
{
"type": "npm-audit",
"message": "path-to-regexp: path-to-regexp vulnerable to Denial of Service via sequential optional groups",
"severity": "high"
},
{
"type": "npm-audit",
"message": "proxy-addr: proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "qs: qs has a remotely triggerable DoS: qs.stringify crashes with TypeError on null/undefined entries in comma-format arrays when encodeValuesOnly is set",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "zod: Zod can exhaust memory while validating oversized constrained collections",
"severity": "high"
},
{
"file": ".agents/skills/bun-development/SKILL.md",
"line": 28,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://bun.sh/install | bash\"",
"severity": "medium"
},
{
"file": "AGENTS.md",
"line": 130,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"line": 64,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/GabrielMartinMoran/mind/main/script\"",
"severity": "low"
}
],
"status": "FAILED",
"scannedAt": "2026-10-26T09:45:00.321Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how mind compares with popular alternatives.
mind is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by GabrielMartinMoran. Persistent local memory for AI coding agents. Preserve decisions and project context across sessions, compaction, and tools. It has 150 GitHub stars.
mind failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/GabrielMartinMoran/mind" and add it to your Claude Code skills directory (see the Installation section above).
mind is primarily written in TypeScript. It is open-source under GabrielMartinMoran 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 mind against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan.
⚠️ 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.
Stop losing context across sessions, tools, and time. Give your AI workflow a memory that lasts.
Mind is a local memory layer for AI workflows: a persistent memory system for durable context such as decisions, bug fixes, patterns, checkpoints, and session summaries that would otherwise disappear across sessions and tools.
It supports recovery after compaction through checkpoint and session continuity behavior, while giving humans a way to visualize, inspect, and modify that memory through the CLI and web UI.
Why Mind works above the fold:
.mind/ files.Get started with Installation or jump straight to the Quick start.

Mind helps you keep durable context organized, retrievable, and usable as work moves across tools, sessions, and compaction boundaries.
Mind is a Bun + TypeScript project that provides a CLI, an MCP server, an HTTP
API, and a web UI on top of one local SQLite memory store (mind.db). It uses
FTS5 full-text search, metadata filters, tags, links, and a 3-tier memory
model (T1 hot, T2 warm, T3 cold) to keep saved context useful over
time.
If you want semantic search, you can enable optional OpenAI embeddings. They are off by default.
You can install Mind quickly and start using it right away. If you want agent setup later, jump to Agent setup.
curl -fsSL https://raw.githubusercontent.com/GabrielMartinMoran/mind/main/scripts/install.sh | bash
This installs Mind to user-local paths (no sudo):
~/.local/share/mind~/.local/bin/mindThen run:
mind help
The installer creates a launcher that runs the installed src/mind.ts entry
point. It doesn't configure every supported agent automatically. To refresh
existing mind-managed agent integrations after installation, run
mind setup refresh.
git clone https://github.com/GabrielMartinMoran/mind.git
cd mind
bun install
This is the fastest way to see what Mind feels like in practice.
# Create a project space
mind create projects/my-project "My project"
# Add a memory
mind add projects/my-project architecture "CLI uses command registry + atomic command modules"
# Search across memories
mind search architecture
# Start the web UI
mind serve start
# Open http://localhost:30303
Mind supports multiple agent integrations, but they are not all equally mature.
Run mind setup without an agent name to see the current capability matrix,
then configure the specific agent you want.
mind setup # show capability matrix first
mind setup claude-code
mind setup opencode
mind setup cursor
mind setup codex
mind setup windsurf
mind setup gemini-cli
mind setup vscode
mind setup antigravity
mind setup refresh # refresh detected mind-managed integrations
mind setup refresh is conservative by default. It refreshes only detected
integrations, where detection means mind finds an existing mind-owned signal,
such as an MCP config, managed protocol block, hook/plugin/script, or installed
mind-management skill. Use --dry-run to preview changes, --all to refresh
all supported agents, or --agent <name> to target one agent.
Most configuration is optional. You only need extra setup if you want to change paths, ports, or enable semantic search.
1. Create your .env file:
cp .env.example .env
Mind ships with a .env.example that contains all configurable options. The installer will also do this automatically if .env doesn't exist.
2. Configure environment variables (optional):
Edit .env to customize your setup:
| Variable | Default | Description |
|---|---|---|
MIND_PORT |
30303 |
Port for the web server |
MIND_DATA_DIR |
data/ |
Directory for SQLite database and data |
MIND_RAG |
(empty) | Set to true to enable semantic search |
OPENAI_API_KEY |
(empty) | Your OpenAI API key (required for RAG) |
RAG / semantic search setup:
To enable AI-powered semantic search:
# In .env:
MIND_RAG=true
OPENAI_API_KEY=sk-your-key-here
When enabled, memories are embedded using OpenAI's
text-embedding-3-small model and combined with full-text search for hybrid
retrieval.
mind create projects/mind "Mind project memory"
mind add projects/mind architecture "CLI uses command registry + atomic command modules"
mind search architecture
For the full command list:
mind help
mind help
mind create <space> "description"
mind update <space> --hidden
mind list --hidden
mind add <space> <name> "content"
mind list <space>
mind read <space> <name>
mind checkpoint set <space> "goal" "pending"
mind checkpoint recover <space> --name <checkpoint-name>
mind checkpoint complete <space> <name> "what was done"
mind migrate sessions projects/<repo> --dry-run
mind checkpoint list <space> --status active
mind search "query"
mind query --space <space> --from 2026-01-01 --to 2026-12-31 --limit 20 --offset 0
mind update --check
mind update
Autosync lets you mirror project spaces to a versioned .mind/ directory so
you can review memory files in git, edit markdown on disk, and sync those
changes back into the local database. When a space is enabled, successful DB
mutations made through the CLI, web/API, or MCP also export the affected space
back to .mind/spaces/<hash>/ as a non-blocking side effect.
[!NOTE] This is an experimental feature currently under active development.
Set up autosync with the following flow:
mind sync init to create .mind/config.yml and .mind/.gitignore..mind/config.yml to choose which spaces are configured.mind sync enable --space <name> for the project space you want to
sync.mind sync serve --space <name> to start the watcher in the
current terminal, or rely on MCP startup to auto-start watchers for enabled
spaces.The .mind/ directory uses a file-based config and hashed space directories:
.mind/
├── config.yml
├── .gitignore
└── spaces/
└── a1b2c3d4/
├── manifest.json
└── memory-name.md
Use these commands to manage autosync:
mind sync initmind sync statusmind sync enable --space <name>mind sync disable --space <name>mind sync now --space <name>mind sync export --space <name>mind sync import --space <name>mind sync conflict --space <name> --strategy <strategy>mind sync remove --space <name>mind sync configmind sync serve --space <name>Conflict strategies:
db-wins writes the DB version on real conflicts and prunes only files that
the manifest marks as managed.file-wins preserves the file side on real conflicts. Automatic DB-to-file
exports skip the conflicting file and record a warning.latest-wins uses normalized UTC timestamps as a tie-break after hash-based
dirty detection. Near-future timestamps within five minutes are accepted for
clock skew, while farther future timestamps are reported as unsafe and skipped
instead of blindly overwriting.Autosync writes manifest v2 files. Each manifest entry tracks managed file ownership, the memory name, path, optional DB ID, canonical content and metadata hashes, normalized UTC timestamps, file modification time, and the last sync time. Hashes decide whether the DB side, file side, both sides, or neither side changed since the common baseline. A file's mere existence isn't a conflict.
Example .mind/config.yml:
# mind autosync config
version: 1
# Spaces to sync with this project
# To enable a new space, add it below with enabled: true
# Valid conflictResolution values: db-wins, file-wins, latest-wins
spaces:
# projects/mind:
# enabled: true
# conflictResolution: db-wins
Current limitations and caveats:
mind sync status --space <name> reports DB, file, and manifest counts,
dirty DB/file drift, conflicts, tombstones, missing managed files, and the
latest auto-export warning or error when manifest data is available.links_to
links. Invalid metadata skips that file safely, unresolved links are reported,
and frontmatter name does not rename