Prerequisites
Before installing CEMS, you need:CEMS Server
A CEMS server URL and API key from your admin.Don’t have one? See Server Deployment.
Python 3.11+
CEMS requires Python 3.11 or later.The installer will set up uv automatically.
Installation Methods
Choose the installation method that fits your workflow:- Interactive Install (Recommended)
- Non-Interactive Install
- Install from Source
- Skills Only (Any Agent)
The interactive installer walks you through setup step-by-step:What happens:
- Installs uv if missing
- Installs CEMS CLI tools via
uv tool install - Prompts for API URL and key
- Asks which IDEs to configure (Claude Code, Cursor, Codex, Goose, or all)
- Deploys hooks, skills, and MCP configs
- Saves credentials to
~/.cems/credentials(chmod 600) - Saves IDE choices to
~/.cems/install.conf
IDE Configuration
CEMS can configure multiple IDEs. Here’s what gets installed for each:Claude Code
Full Integration: 6 hooks, 6 skills, 2 commands
Full Integration: 6 hooks, 6 skills, 2 commands
Hooks (
~/.claude/hooks/):cems_session_start.py— Profile + context injection at session startcems_user_prompts_submit.py— Memory search + observations on every promptcems_post_tool_use.py— Extract tool learning after tool executioncems_pre_tool_use.py— Gate rules enforcement before tool executioncems_stop.py— Session analysis + observer daemon start on session endcems_pre_compact.py— Context preservation before compaction
~/.claude/skills/cems/):recall.md—/recall <query>to search memoriesremember.md—/remember <content>to add personal memoryshare.md—/share <content>to add team memoryforget.md—/forget <id>to delete memorycontext.md—/contextto show memory system statusmemory-guide.md— Proactive memory usage guide
~/.claude/commands/):recall.md—/recallcommand variantremember.md—/remembercommand variant
~/.claude/settings.json):- Hook configuration merged (not overwritten)
Cursor
MCP + Hooks: 3 hooks, 5 skills
MCP + Hooks: 3 hooks, 5 skills
Hooks (
~/.cursor/hooks/):cems_session_start.py— Profile injectioncems_agent_response.py— Agent response hookcems_stop.py— Session end hook
~/.cursor/skills/):cems-recall/SKILL.md— Search memoriescems-remember/SKILL.md— Add personal memorycems-forget/SKILL.md— Delete memorycems-share/SKILL.md— Add team memorycems-context/SKILL.md— Memory status
~/.cursor/mcp.json):- CEMS MCP server config merged
Codex
MCP + Commands: 3 commands, 2 skills
MCP + Commands: 3 commands, 2 skills
Commands (
~/.codex/commands/):recall.md— Search memoriesremember.md— Add memoryfoundation.md— Foundation guidelines
~/.codex/skills/):recall/SKILL.md— Search memoriesremember/SKILL.md— Add memory
~/.codex/config.toml):- CEMS MCP server config merged
Goose
MCP Extension
MCP Extension
MCP Config (
~/.config/goose/config.yaml):- CEMS MCP extension block merged
memory_add— Store a memorymemory_search— Search with full retrieval pipelinememory_get— Retrieve full document by IDmemory_forget— Delete or archive a memorymemory_update— Update memory contentmemory_maintenance— Trigger maintenance jobs
Credentials
CEMS credentials are stored in~/.cems/credentials with chmod 600.
Credential Resolution Order:
- CLI flags:
--api-url,--api-key - Environment variables:
CEMS_API_URL,CEMS_API_KEY - Credentials file:
~/.cems/credentials
Verification
After installation, verify everything works:Updating
Automatic Updates
CEMS auto-updates when you start a new Claude Code session (if >24 hours old). TheSessionStart hook checks for updates and runs cems update in the background.
Disable auto-update:
Manual Updates
cems update does:
- Runs
uv tool upgrade cemsto pull latest version - Re-deploys hooks, skills, and MCP configs to configured IDEs
- Uses IDE choices from
~/.cems/install.conf
Reconfiguration
To change settings or add/remove IDE integrations:- Prompts for new credentials (or keeps existing)
- Asks which IDEs to configure
- Re-deploys hooks, skills, and configs
- Updates
~/.cems/install.conf
Uninstallation
- Remove Hooks/Skills (Keep Credentials)
- Complete Removal
- All hooks from
~/.claude/,~/.cursor/, etc. - All skills
- MCP config entries
~/.cems/credentials~/.cems/install.conf- CEMS CLI tools
Advanced Configuration
Observer Daemon
The observer daemon (cems-observer) runs in the background and watches session transcripts.
Check if running:
~/.cems/credentials and watches:
~/.claude/projects/*/for JSONL transcript files- Polls every 30 seconds
- Sends 50KB chunks to server when accumulated
Custom Hook Configuration
If you need to customize hook behavior, edit the hook files directly:Environment Variables
CEMS respects these environment variables:| Variable | Default | Description |
|---|---|---|
CEMS_API_URL | https://cems.chocksy.com | CEMS server URL |
CEMS_API_KEY | — | Your API key |
CEMS_AUTO_UPDATE | 1 | Enable auto-updates (0=disable) |
CEMS_LOG_LEVEL | INFO | Logging level |
CEMS_OBSERVER_POLL_INTERVAL | 30 | Observer poll interval (seconds) |
Troubleshooting
uv not found after install
uv not found after install
The installer installs uv to Add to your shell profile:
~/.local/bin/. Add to PATH:cems command not found
cems command not found
uv tool installs to Verify:
~/.local/bin/. Ensure it’s on PATH:Hooks not executing
Hooks not executing
-
Verify hooks exist:
-
Test hook manually:
-
Check settings.json:
-
Re-run setup:
Skills not appearing in IDE
Skills not appearing in IDE
-
Verify skill files exist:
- Restart IDE completely
-
Check IDE skill directory (may vary):
- Claude Code:
~/.claude/skills/ - Cursor:
~/.cursor/skills/ - Codex:
~/.codex/skills/
- Claude Code:
-
Re-run setup:
Permission denied errors
Permission denied errors
The credentials file requires chmod 600:If hooks can’t execute:
Next Steps
Quick Start
Learn how to use CEMS in your daily workflow
Server Deployment
Set up CEMS server for your team
API Reference
Explore the full API and CLI
Architecture
Understand how CEMS works under the hood