ShieldCortex — Persistent Memory & Security for AI Agents
Give your agent a brain that persists between sessions and protect it from memory poisoning attacks.
Safety & Scope
- This skill documents a local memory/security tool. It does not auto-install packages or silently execute shell commands.
- Any install command shown here is a manual setup step for the user to approve and run explicitly.
- Local ShieldCortex usage does not require credentials. API keys are optional and only needed for ShieldCortex Cloud.
- Only scan instruction files or other prompts when the user has named the path or clearly asked for that review.
shieldcortex install writes local MCP configuration; it does not deploy a remote service or request background privileges.
When to Use This Skill
- You want to remember things between sessions (decisions, preferences, architecture, context)
- You need to recall relevant past context at the start of a session
- You want knowledge graph extraction from memories (entities, relationships)
- You need to protect memory from prompt injection or poisoning attacks
- You want credential leak detection in memory writes
- You want to audit what has been stored in and retrieved from memory
- You want to scan instruction files (SKILL.md, .cursorrules, CLAUDE.md) for threats
Setup
Install the npm package globally, then configure the MCP server, only when the user explicitly wants ShieldCortex enabled:
npm install -g shieldcortex
shieldcortex install
Python SDK also available:
pip install shieldcortex
Core Workflow
Session Start
At the start of every session, retrieve prior context:
- Call
start_session to begin a new session and get relevant memories
- Or call
get_context with a query describing the current task
Remembering
Call remember immediately when any of these happen:
- Architecture decisions — "We're using PostgreSQL for the database"
- Bug fixes — capture root cause and solution
- User preferences — "Always use TypeScript strict mode"
- Completed features — what was built and why
- Error resolutions — what broke and how it was fixed
- Project context — tech stack, key patterns, file structure
Parameters:
title (required): Short summary
content (required): Detailed information
category: architecture, pattern, preference, error, context, learning, todo, note
importance: low, normal, high, critical
project: Scope to a specific project (auto-detected if omitted)
tags: Array of tags for categorisation
Recalling
Call recall to search for past memories:
mode: "search" — query-based semantic search (default)
mode: "recent" — most recent memories
mode: "important" — highest-salience memories
Filter by category, tags, project, or type (short_term, long_term, episodic).
Forgetting
Call forget to remove outdated or incorrect memories:
- Delete by
id for a specific memory
- Delete by
query to match content
- Always use
dryRun: true first to preview what will be deleted
- Use
confirm: true for bulk deletions
Session End
Call end_session with a summary to trigger memory consolidation. This promotes short-term memories to long-term and runs decay on old, unaccessed memories.
Knowledge Graph
ShieldCortex automatically extracts entities and relationships from memories.
graph_query — traverse from an entity, returns connected entities up to N hops
graph_entities — list known entities, filter by type (person, tool, concept, file, language, service, pattern)
graph_explain — find the path connecting two entities
Use the knowledge graph to understand relationships between concepts, technologies, and decisions across the project.
Memory Intelligence
consolidate — merge duplicate/similar memories, run decay. Use dryRun: true to preview
detect_contradictions — find conflicting memories (e.g., "use Redis" vs "don't use Redis")
get_related — find memories connected to a specific memory ID
link_memories — create explicit relationships (references, extends, contradicts, related)
memory_stats — view total counts, category breakdown, decay stats
Security & Defence
Every memory write passes through a 6-layer defence pipeline:
- Input Sanitisation — strips control characters and null bytes
- Pattern Detection — regex matching for known injection patterns
- Semantic Analysis — embedding similarity to attack corpus
- Structural Validation — JSON/format integrity checks
- Behavioural Scoring — anomaly detection over time
- Credential Leak Detection — blocks API keys, tokens, private keys (25+ patterns, 11 providers)
Iron Dome
Behavioural security layer that controls what agents can do, not just what they remember:
iron_dome_activate — activate with a profile: school, enterprise, personal, or paranoid
iron_dome_status — check active profile, trusted channels, and approval rules
iron_dome_check — gate an action (e.g., send_email, delete_file) before execution
iron_dome_scan — scan text for prompt injection patterns
Profiles control action gates (what actions require approval), channel trust (which instruction sources are trusted), and approval rules.
Security Tools
audit_query — query the forensic audit log of all memory operations
defence_stats — view defence system statistics (blocks, allows, quarantines)
quarantine_review — review and manage quarantined memories (list, approve, reject)
scan_memories — scan existing memories for signs of poisoning
scan_skill — scan an instruction file for hidden threats (SKILL.md, .cursorrules, CLAUDE.md, etc.)
Universal Memory Bridge
ShieldCortex can act as a security layer for any memory backend — not just its own. Use ShieldCortexGuardedMemoryBridge to wrap any memory system with the full defence pipeline:
import { ShieldCortexGuardedMemoryBridge, MarkdownMemoryBackend } from 'shieldcortex';
const bridge = new ShieldCortexGuardedMemoryBridge({
backend: new MarkdownMemoryBackend('~/.my-memories/'),
});
// All writes pass through the 6-layer defence pipeline
await bridge.write({ title: 'Decision', content: 'Use PostgreSQL' });
Built-in backends: MarkdownMemoryBackend, OpenClawMarkdownBackend. Implement the backend interface for custom storage.
ShieldCortex does not auto-discover remote backends or obtain their credentials; the host application must wire that in explicitly.
Project Scoping
set_project — switch active project context
get_project — show current project scope
- Use
project: "*" for global/cross-project memories
Best Practices
- Remember immediately — call
remember right after a decision is made or a bug is fixed, not at the end of the session
- Use categories — architecture, pattern, preference, error, context, learning
- Set importance — mark critical decisions as
importance: "critical" so they resist decay
- Recall at session start — always call
get_context or start_session first
- End sessions properly — call
end_session with a summary to trigger consolidation
- Review contradictions — periodically run
detect_contradictions to catch conflicting information
- Scope by project — memories are automatically scoped to the current project directory
Troubleshooting
Memory not found in recall:
- Try
mode: "search" with different query phrasing
- Check
set_project — you may be searching the wrong project scope
- Use
includeDecayed: true to find memories that have faded
Memory blocked by firewall:
- The defence pipeline detected a potential threat (injection, credential leak)
- Check
audit_query for the specific block reason
- Review with
quarantine_review if it was a false positive
- Avoid including literal API keys or tokens in memory content
Consolidation removing memories:
- Run
consolidate with dryRun: true first to preview
- Mark important memories as
importance: "critical" to prevent decay
- Access memories regularly —
recall boosts activation and prevents decay
OpenClaw Auto-Memory
When using the OpenClaw hook, auto-memory extraction is off by default. Enable it to automatically extract memories from session output:
shieldcortex config --openclaw-auto-memory
When enabled, the system deduplicates against recent memories to avoid storing duplicates. Configure with:
openclawAutoMemory — enable/disable (default: false)
openclawAutoMemoryDedupe — deduplicate against existing memories (default: true)
openclawAutoMemoryNoveltyThreshold — similarity threshold for deduplication (default: 0.88)
openclawAutoMemoryMaxRecent — number of recent memories to check (default: 300)
Links
1---2name: shieldcortex3description: Persistent memory system with security for AI agents. Remembers decisions, preferences, architecture, and context across sessions with knowledge graphs, decay, contradiction detection, and a 6-layer defence pipeline with Iron Dome behavioural protection. Use when asked to "remember this", "what do we know about", "recall context", "scan for threats", "run security audit", "check memory stats", or when starting a new session and needing prior context.4license: MIT5---67# ShieldCortex — Persistent Memory & Security for AI Agents89Give your agent a brain that persists between sessions and protect it from memory poisoning attacks.1011## Safety & Scope1213- This skill documents a local memory/security tool. It does not auto-install packages or silently execute shell commands.14- Any install command shown here is a manual setup step for the user to approve and run explicitly.15- Local ShieldCortex usage does not require credentials. API keys are optional and only needed for ShieldCortex Cloud.16- Only scan instruction files or other prompts when the user has named the path or clearly asked for that review.17- `shieldcortex install` writes local MCP configuration; it does not deploy a remote service or request background privileges.1819## When to Use This Skill2021- You want to remember things between sessions (decisions, preferences, architecture, context)22- You need to recall relevant past context at the start of a session23- You want knowledge graph extraction from memories (entities, relationships)24- You need to protect memory from prompt injection or poisoning attacks25- You want credential leak detection in memory writes26- You want to audit what has been stored in and retrieved from memory27- You want to scan instruction files (SKILL.md, .cursorrules, CLAUDE.md) for threats2829## Setup3031Install the npm package globally, then configure the MCP server, only when the user explicitly wants ShieldCortex enabled:3233```bash34npm install -g shieldcortex35shieldcortex install36```3738Python SDK also available:3940```bash41pip install shieldcortex42```4344## Core Workflow4546### Session Start4748At the start of every session, retrieve prior context:49501. Call `start_session` to begin a new session and get relevant memories512. Or call `get_context` with a query describing the current task5253### Remembering5455Call `remember` immediately when any of these happen:5657- **Architecture decisions** — "We're using PostgreSQL for the database"58- **Bug fixes** — capture root cause and solution59- **User preferences** — "Always use TypeScript strict mode"60- **Completed features** — what was built and why61- **Error resolutions** — what broke and how it was fixed62- **Project context** — tech stack, key patterns, file structure6364Parameters:65- `title` (required): Short summary66- `content` (required): Detailed information67- `category`: architecture, pattern, preference, error, context, learning, todo, note68- `importance`: low, normal, high, critical69- `project`: Scope to a specific project (auto-detected if omitted)70- `tags`: Array of tags for categorisation7172### Recalling7374Call `recall` to search for past memories:7576- `mode: "search"` — query-based semantic search (default)77- `mode: "recent"` — most recent memories78- `mode: "important"` — highest-salience memories7980Filter by `category`, `tags`, `project`, or `type` (short_term, long_term, episodic).8182### Forgetting8384Call `forget` to remove outdated or incorrect memories:8586- Delete by `id` for a specific memory87- Delete by `query` to match content88- Always use `dryRun: true` first to preview what will be deleted89- Use `confirm: true` for bulk deletions9091### Session End9293Call `end_session` with a summary to trigger memory consolidation. This promotes short-term memories to long-term and runs decay on old, unaccessed memories.9495## Knowledge Graph9697ShieldCortex automatically extracts entities and relationships from memories.9899- `graph_query` — traverse from an entity, returns connected entities up to N hops100- `graph_entities` — list known entities, filter by type (person, tool, concept, file, language, service, pattern)101- `graph_explain` — find the path connecting two entities102103Use the knowledge graph to understand relationships between concepts, technologies, and decisions across the project.104105## Memory Intelligence106107- `consolidate` — merge duplicate/similar memories, run decay. Use `dryRun: true` to preview108- `detect_contradictions` — find conflicting memories (e.g., "use Redis" vs "don't use Redis")109- `get_related` — find memories connected to a specific memory ID110- `link_memories` — create explicit relationships (references, extends, contradicts, related)111- `memory_stats` — view total counts, category breakdown, decay stats112113## Security & Defence114115Every memory write passes through a 6-layer defence pipeline:1161171. Input Sanitisation — strips control characters and null bytes1182. Pattern Detection — regex matching for known injection patterns1193. Semantic Analysis — embedding similarity to attack corpus1204. Structural Validation — JSON/format integrity checks1215. Behavioural Scoring — anomaly detection over time1226. Credential Leak Detection — blocks API keys, tokens, private keys (25+ patterns, 11 providers)123124### Iron Dome125126Behavioural security layer that controls what agents can do, not just what they remember:127128- `iron_dome_activate` — activate with a profile: `school`, `enterprise`, `personal`, or `paranoid`129- `iron_dome_status` — check active profile, trusted channels, and approval rules130- `iron_dome_check` — gate an action (e.g., send_email, delete_file) before execution131- `iron_dome_scan` — scan text for prompt injection patterns132133Profiles control action gates (what actions require approval), channel trust (which instruction sources are trusted), and approval rules.134135### Security Tools136137- `audit_query` — query the forensic audit log of all memory operations138- `defence_stats` — view defence system statistics (blocks, allows, quarantines)139- `quarantine_review` — review and manage quarantined memories (list, approve, reject)140- `scan_memories` — scan existing memories for signs of poisoning141- `scan_skill` — scan an instruction file for hidden threats (SKILL.md, .cursorrules, CLAUDE.md, etc.)142143## Universal Memory Bridge144145ShieldCortex can act as a security layer for any memory backend — not just its own. Use `ShieldCortexGuardedMemoryBridge` to wrap any memory system with the full defence pipeline:146147```javascript148import { ShieldCortexGuardedMemoryBridge, MarkdownMemoryBackend } from 'shieldcortex';149150const bridge = new ShieldCortexGuardedMemoryBridge({151 backend: new MarkdownMemoryBackend('~/.my-memories/'),152});153154// All writes pass through the 6-layer defence pipeline155await bridge.write({ title: 'Decision', content: 'Use PostgreSQL' });156```157158Built-in backends: `MarkdownMemoryBackend`, `OpenClawMarkdownBackend`. Implement the backend interface for custom storage.159ShieldCortex does not auto-discover remote backends or obtain their credentials; the host application must wire that in explicitly.160161## Project Scoping162163- `set_project` — switch active project context164- `get_project` — show current project scope165- Use `project: "*"` for global/cross-project memories166167## Best Practices1681691. **Remember immediately** — call `remember` right after a decision is made or a bug is fixed, not at the end of the session1702. **Use categories** — architecture, pattern, preference, error, context, learning1713. **Set importance** — mark critical decisions as `importance: "critical"` so they resist decay1724. **Recall at session start** — always call `get_context` or `start_session` first1735. **End sessions properly** — call `end_session` with a summary to trigger consolidation1746. **Review contradictions** — periodically run `detect_contradictions` to catch conflicting information1757. **Scope by project** — memories are automatically scoped to the current project directory176177## Troubleshooting178179**Memory not found in recall:**180- Try `mode: "search"` with different query phrasing181- Check `set_project` — you may be searching the wrong project scope182- Use `includeDecayed: true` to find memories that have faded183184**Memory blocked by firewall:**185- The defence pipeline detected a potential threat (injection, credential leak)186- Check `audit_query` for the specific block reason187- Review with `quarantine_review` if it was a false positive188- Avoid including literal API keys or tokens in memory content189190**Consolidation removing memories:**191- Run `consolidate` with `dryRun: true` first to preview192- Mark important memories as `importance: "critical"` to prevent decay193- Access memories regularly — `recall` boosts activation and prevents decay194195## OpenClaw Auto-Memory196197When using the OpenClaw hook, auto-memory extraction is off by default. Enable it to automatically extract memories from session output:198199```bash200shieldcortex config --openclaw-auto-memory201```202203When enabled, the system deduplicates against recent memories to avoid storing duplicates. Configure with:204205- `openclawAutoMemory` — enable/disable (default: false)206- `openclawAutoMemoryDedupe` — deduplicate against existing memories (default: true)207- `openclawAutoMemoryNoveltyThreshold` — similarity threshold for deduplication (default: 0.88)208- `openclawAutoMemoryMaxRecent` — number of recent memories to check (default: 300)209210## Links211212- npm: https://www.npmjs.com/package/shieldcortex213- PyPI: https://pypi.org/project/shieldcortex214- GitHub: https://github.com/Drakon-Systems-Ltd/ShieldCortex215- Website: https://shieldcortex.ai