CarryMem V0.1.2
CarryMem v0.1.2 — First Public Release
🚀 What is CarryMem?
CarryMem is a portable AI memory layer that makes AI agents remember users across tools, sessions, and models.
pip install carrymem
carrymem init
carrymem add "I prefer dark mode"
carrymem search "dark" # Finds "dark mode", "深色模式", "ダークモード"
✨ Key Features
- 7 Memory Types: Auto-classify user preferences, corrections, decisions, facts, relationships, task patterns, sentiments
- 4-Tier Memory Hierarchy: Working → Procedural → Episodic → Semantic
- Cross-Language Semantic Recall: Search in English, find Chinese/Japanese memories (and vice versa)
- MCP Protocol Integration: Works with Cursor, Claude Code, Windsurf, and any MCP-compatible tool
- AI Identity Layer:
carrymem whoamishows your AI identity portrait - Security: AES encryption, input validation (SQL injection / XSS / path traversal), audit logging
- Zero-config:
pip install carrymem→ ready to use
📦 Installation
# From PyPI (after publish)
pip install carrymem# From source
pip install git+https://github.com/lulin70/carrymem.git# One-click install script
bash <(curl -sL https://raw.githubusercontent.com/lulin70/carrymem/main/install.sh)
pip install carrymem
From source
pip install git+https://github.com/lulin70/carrymem.git
One-click install script
bash <(curl -sL https://raw.githubusercontent.com/lulin70/carrymem/main/install.sh)" tabindex="0" role="button" style="box-sizing: border-box; margin: var(--base-size-8,8px) !important; padding: 0px !important; font-size: 14px; font-weight: var(--base-text-weight-medium,500); white-space: nowrap; vertical-align: middle; cursor: pointer; -webkit-user-select: none; appearance: none; border-width: 1px; border-style: solid; border-color: var(--button-default-borderColor-rest,var(--color-btn-border)); border-image: none; border-radius: 6px; line-height: 20px; display: inline-block; position: relative; color: var(--button-default-fgColor-rest,var(--color-btn-text)); background-color: var(--button-default-bgColor-rest,var(--color-btn-bg)); box-shadow: var(--button-default-shadow-resting,var(--color-btn-shadow)),var(--button-default-shadow-inset,var(--color-btn-inset-shadow)); transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);">
🔧 Quick Start
carrymem init
carrymem add "I prefer dark mode for coding"
carrymem add "We decided to use PostgreSQL"
carrymem add "Sarah is my project manager"carrymem list # List all memories
carrymem search "database" # Semantic search
carrymem whoami # Your AI identity
carrymem stats # Statistics
carrymem doctor # Diagnostics
carrymem add "I prefer dark mode for coding"
carrymem add "We decided to use PostgreSQL"
carrymem add "Sarah is my project manager"
carrymem list # List all memories
carrymem search "database" # Semantic search
carrymem whoami # Your AI identity
carrymem stats # Statistics
carrymem doctor # Diagnostics" tabindex="0" role="button" style="box-sizing: border-box; margin: var(--base-size-8,8px) !important; padding: 0px !important; font-size: 14px; font-weight: var(--base-text-weight-medium,500); white-space: nowrap; vertical-align: middle; cursor: pointer; -webkit-user-select: none; appearance: none; border-width: 1px; border-style: solid; border-color: var(--button-default-borderColor-rest,var(--color-btn-border)); border-image: none; border-radius: 6px; line-height: 20px; display: inline-block; position: relative; color: var(--button-default-fgColor-rest,var(--color-btn-text)); background-color: var(--button-default-bgColor-rest,var(--color-btn-bg)); box-shadow: var(--button-default-shadow-resting,var(--color-btn-shadow)),var(--button-default-shadow-inset,var(--color-btn-inset-shadow)); transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1), background-color 80ms cubic-bezier(0.33, 1, 0.68, 1), box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1), border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);">
🌐 Internationalization
- Codebase: 100% English comments and docstrings
- Documentation: English primary + Chinese (-CN) + Japanese (-JP) versions
- Test coverage: EN/ZH/JP trilingual (133+ multilingual test cases)
📋 Changelog since v0.1.0
Added
carrymem whoami— AI identity portrait showing preferences, decisions, correctionscarrymem profile export— Export identity as JSON for cross-AI portability- Internationalization: English-primary codebase with CN/JP documentation
- Sentiment keywords expanded: slow, too slow, painful, annoying, clunky, laggy
Fixed
- CRITICAL
conflict_detector: offset-naive vs offset-aware datetime crash incarrymem check - CRITICAL Missing
init.pyinutils/andlayers/packages (wheel install broken) - All GitHub URLs updated from old repo to
lulin70/carrymem install.sh: Added pip upgrade step for Python 3.9 compatibility- All code comments translated to English (77 mangled comments removed)
- Hardcoded Chinese user-facing strings converted to English default
- README.md memory type table corrected
- PatternAnalyzer: Pre-compiled 4 hot-path regex patterns for performance
_semantic_recall: Added early exit when limit reachedclassify_and_remember(): Per-entry error handling prevents batch crash- MCP HTTP server: Added security headers (X-Content-Type-Options, X-Frame-Options)
sqlite_adapter.del: Changed bareexcept:toexcept Exception:
🧪 Test Results
490 tests passed ✅
Coverage: 60.77%
Python: 3.9, 3.10, 3.11, 3.12
📚 Documentation
| Document | Language | Link |
|---|---|---|
| README | English | README.md |
| README | 中文 | README-CN.md |
| README | 日本語 | README-JP.md |
| Quick Start | English | QUICK_START_GUIDE.md |
| Architecture | English | ARCHITECTURE.md |
| API Reference | English | API_REFERENCE.md |
| Contributing | English | CONTRIBUTING.md |
📄 License
MIT License — see LICENSE
👥 Credits
Built by the CarryMem Team. Powered by community contributions.
CarryMem v0.1.2 — First Public Release🚀 What is CarryMem?
CarryMem is a portable AI memory layer that makes AI agents remember users across tools, sessions, and models.
pip install carrymem
carrymem init
carrymem add "I prefer dark mode"
carrymem search "dark" # Finds "dark mode", "深色模式", "ダークモード"
✨ Key Features
7 Memory Types: Auto-classify user preferences, corrections, decisions, facts, relationships, task patterns, sentiments
4-Tier Memory Hierarchy: Working → Procedural → Episodic → Semantic
Cross-Language Semantic Recall: Search in English, find Chinese/Japanese memories (and vice versa)
MCP Protocol Integration: Works with Cursor, Claude Code, Windsurf, and any MCP-compatible tool
AI Identity Layer: carrymem whoami shows your AI identity portrait
Security: AES encryption, input validation (SQL injection / XSS / path traversal), audit logging
Zero-config: pip install carrymem → ready to use
📦 Installation
From PyPI (after publish)
pip install carrymem
From source
pip install git+https://github.com/lulin70/carrymem.git
One-click install script
bash <(curl -sL https://raw.githubusercontent.com/lulin70/carrymem/main/install.sh)
🔧 Quick Start
carrymem init
carrymem add "I prefer dark mode for coding"
carrymem add "We decided to use PostgreSQL"
carrymem add "Sarah is my project manager"
carrymem list # List all memories
carrymem search "database" # Semantic search
carrymem whoami # Your AI identity
carrymem stats # Statistics
carrymem doctor # Diagnostics
🌐 Internationalization
Codebase: 100% English comments and docstrings
Documentation: English primary + Chinese (-CN) + Japanese (-JP) versions
Test coverage: EN/ZH/JP trilingual (133+ multilingual test cases)
📋 Changelog since v0.1.0
Added
carrymem whoami — AI identity portrait showing preferences, decisions, corrections
carrymem profile export — Export identity as JSON for cross-AI portability
Internationalization: English-primary codebase with CN/JP documentation
Sentiment keywords expanded: slow, too slow, painful, annoying, clunky, laggy
Fixed
CRITICAL conflict_detector: offset-naive vs offset-aware datetime crash in carrymem check
CRITICAL Missing init.py in utils/ and layers/ packages (wheel install broken)
All GitHub URLs updated from old repo to lulin70/carrymem
install.sh: Added pip upgrade step for Python 3.9 compatibility
All code comments translated to English (77 mangled comments removed)
Hardcoded Chinese user-facing strings converted to English default
README.md memory type table corrected
PatternAnalyzer: Pre-compiled 4 hot-path regex patterns for performance
_semantic_recall: Added early exit when limit reached
classify_and_remember(): Per-entry error handling prevents batch crash
MCP HTTP server: Added security headers (X-Content-Type-Options, X-Frame-Options)
sqlite_adapter.del: Changed bare except: to except Exception:
🧪 Test Results
490 tests passed ✅
Coverage: 60.77%
Python: 3.9, 3.10, 3.11, 3.12
📚 Documentation
Document Language Link
README English README.md
README 中文 README-CN.md
README 日本語 README-JP.md
Quick Start English QUICK_START_GUIDE.md
Architecture English ARCHITECTURE.md
API Reference English API_REFERENCE.md
Contributing English CONTRIBUTING.md
📄 License
MIT License — see LICENSE
👥 Credits
Built by the CarryMem Team. Powered by community contributions.