AI Memory Switcher โ Save, compress, and transfer context between AI agents
Project description
๐ง AiMem โ AI Memory Switcher
Transfer context seamlessly between AI agents (Claude, Gemini, Qwen, OpenCode, Codex...)
When Claude hits rate-limits or you need to switch to another AI, AiMem helps you continue without losing your train of thought.
๐ Install
pip install aimem-cli
Or from source:
git clone https://github.com/ThangTo/AiMem.git
cd AiMem
pip install -e .
โก Quick Start
Transfer from Claude to OpenCode (Recommended)
# Save current Claude session
aimem-cli save --from claude
# Inject directly into OpenCode
aimem-cli load <session-id> --to opencode --inject
# Open the session in OpenCode
opencode -s <session-id-from-output>
Transfer to Markdown (for any AI)
aimem-cli save --from claude
aimem-cli load <session-id> --to markdown
# Content copied to clipboard - paste anywhere
๐ All Commands
aimem-cli init
Initialize config file at ~/.aimem/config.json.
aimem-cli init
aimem-cli init --force # Overwrite existing config
aimem-cli save --from <agent>
Save a session from an agent to AiMem storage.
# From Claude
aimem-cli save --from claude
aimem-cli save --from claude --session-id <id>
# From Gemini
aimem-cli save --from gemini
# From Qwen
aimem-cli save --from qwen
# From OpenCode
aimem-cli save --from opencode
# From Codex
aimem-cli save --from codex
# From Aider
aimem-cli save --from aider
# From Continue.dev
aimem-cli save --from continue
# From Clipboard
aimem-cli save --from clipboard
aimem-cli load <session-id> --to <format>
Load a saved session to target format.
# To Markdown (copy to clipboard)
aimem-cli load <session-id> --to markdown
# To Claude (markdown format)
aimem-cli load <session-id> --to claude
# To Gemini
aimem-cli load <session-id> --to gemini
# To Qwen
aimem-cli load <session-id> --to qwen
# To Prompt (for API calls)
aimem-cli load <session-id> --to prompt
aimem-cli load <session-id> --to <agent> --inject
Inject directly into agent storage - no copy-paste needed!
# Inject into OpenCode (RECOMMENDED)
aimem-cli load <session-id> --to opencode --inject
opencode -s <session-id>
# Inject into Claude
aimem-cli load <session-id> --to claude --inject
claude --resume
# Inject into Gemini
aimem-cli load <session-id> --to gemini --inject
# Inject into Qwen
aimem-cli load <session-id> --to qwen --inject
# Inject into Codex
aimem-cli load <session-id> --to codex --inject
aimem-cli list
List all saved sessions.
# List all saved sessions
aimem-cli list
# List sessions from specific agent
aimem-cli list --from claude
aimem-cli list --from gemini
aimem-cli list --from qwen
# List available agents
aimem-cli list --agents
aimem-cli merge <session-id-1> <session-id-2>
Merge multiple sessions into one.
aimem-cli merge sess-abc sess-def
# Creates new merged session
aimem-cli config
View or update configuration.
# Show current config
aimem-cli config
# Set config values
aimem-cli config set compression.enabled true
aimem-cli config set compression.api_key YOUR_API_KEY
aimem-cli config set compression.provider groq
aimem-cli config set output.format markdown
aimem-cli config set output.clipboard_auto true
aimem-cli delete <session-id>
Delete a saved session.
aimem-cli delete <session-id>
๐ง Supported Agents
Source (--from)
| Agent | Storage Location | Inject? |
|---|---|---|
claude |
~/.claude/projects/*/*.jsonl |
โ |
gemini |
~/.gemini/tmp/*/chats/*.json |
โ |
qwen |
~/.qwen/tmp/*/logs.json |
โ |
opencode |
~/.opencode/sessions/*.json |
โ |
codex |
~/.codex/sessions/*.jsonl |
โ |
aider |
~/.aider.chat.history.md |
โ |
continue |
~/.continue/sessions.db |
โ |
clipboard |
System clipboard | โ |
Target (--to)
| Format | Best for | Inject? |
|---|---|---|
markdown |
Paste anywhere | โ |
claude |
Claude Code CLI | โ |
gemini |
Gemini CLI | โ |
qwen |
Qwen CLI | โ |
opencode |
OpenCode CLI | โ |
codex |
Codex CLI | โ |
prompt |
API calls | โ |
โ๏ธ Configuration
Config file: ~/.aimem/config.json
# Show config
aimem-cli config
# Enable LLM compression (opt-in)
aimem-cli config set compression.enabled true
aimem-cli config set compression.api_key YOUR_GROQ_KEY
aimem-cli config set compression.provider groq
# Auto-copy to clipboard
aimem-cli config set output.clipboard_auto true
Config Options
| Option | Default | Description |
|---|---|---|
compression.enabled |
false |
Enable LLM compression |
compression.provider |
"groq" |
Compression provider (groq, gemini) |
compression.api_key |
"" |
API key for compression |
output.format |
"markdown" |
Default output format |
output.clipboard_auto |
true |
Auto-copy to clipboard |
storage.path |
"~/.aimem/sessions" |
Session storage path |
๐ Examples
Example 1: Transfer Claude session to OpenCode
$ aimem-cli save --from claude
[i] Found 5 Claude sessions. Select one:
[1] 2026-04-20 | Fix authentication bug
[2] 2026-04-19 | Add user login feature
[3] 2026-04-18 | Research API design
Enter number (default=1): 1
[OK] Saved session: claude-abc123
$ aimem-cli load claude-abc123 --to opencode --inject
[OK] Injected into OpenCode
Session ID: ses_xyz789
Resume with: opencode -s ses_xyz789
$ opencode -s ses_xyz789
# Continue with full context in OpenCode!
Example 2: Transfer to any AI via Markdown
$ aimem-cli save --from claude
[OK] Saved session: claude-abc123
$ aimem-cli load claude-abc123 --to markdown
[OK] Content copied to clipboard!
# Paste into any AI: Gemini, ChatGPT, Qwen, etc.
Example 3: Merge multiple sessions
$ aimem-cli merge claude-abc claude-def claude-ghi
[i] Merging 3 sessions...
[OK] Merged session: merged-xyz123
Total messages: 156
$ aimem-cli load merged-xyz123 --to gemini --inject
๐๏ธ Architecture
aimem-cli/
โโโ aimem/
โ โโโ cli.py # CLI interface
โ โโโ models.py # UniversalSession model
โ โโโ storage.py # File storage
โ โโโ compression.py # LLM compression
โ โโโ context_manager.py # Context management
โ โโโ adapters/
โ โโโ claude.py # Claude Code adapter
โ โโโ gemini.py # Gemini CLI adapter
โ โโโ qwen.py # Qwen CLI adapter
โ โโโ opencode.py # OpenCode adapter
โ โโโ codex.py # Codex adapter
โ โโโ aider.py # Aider adapter
โ โโโ continue_dev.py # Continue.dev adapter
โ โโโ clipboard.py # Clipboard adapter
โ โโโ output/ # Output formatters
โ โโโ __init__.py
โ โโโ markdown.py
โ โโโ claude.py
โ โโโ gemini.py
โ โโโ qwen.py
โ โโโ prompt.py
โ โโโ continue.py
โ โโโ codex.py
โ โโโ opencode.py
๐ฆ Requirements
- Python 3.10+
pyperclip>=1.8.0(clipboard support)ulid-py>=1.1.0(session ID generation)
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aimem_cli-0.2.1.tar.gz.
File metadata
- Download URL: aimem_cli-0.2.1.tar.gz
- Upload date:
- Size: 45.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74497d480c9be5f451b9e0b134bfe70ad17183995fc5b0ea98072a25ee554595
|
|
| MD5 |
ac3f3043c236bde4ef84da53407749ad
|
|
| BLAKE2b-256 |
dd04d3b6f8a78c9d65eb95b8b3439b8c8ee8a231a59fd93244a897da915ff584
|
File details
Details for the file aimem_cli-0.2.1-py3-none-any.whl.
File metadata
- Download URL: aimem_cli-0.2.1-py3-none-any.whl
- Upload date:
- Size: 53.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f28d92c1a2cc9e32c4e0872eee0f6b181305542239d041e496555a11ea7e855b
|
|
| MD5 |
6ac268fa4b7209738eafffd77ee9f1b9
|
|
| BLAKE2b-256 |
859755f54105548d11793ac490ee19a5a15ec7fd7229b7407fd5145b929275ae
|