Skip to main content

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

aimem_cli-0.2.1.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aimem_cli-0.2.1-py3-none-any.whl (53.4 kB view details)

Uploaded Python 3

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

Hashes for aimem_cli-0.2.1.tar.gz
Algorithm Hash digest
SHA256 74497d480c9be5f451b9e0b134bfe70ad17183995fc5b0ea98072a25ee554595
MD5 ac3f3043c236bde4ef84da53407749ad
BLAKE2b-256 dd04d3b6f8a78c9d65eb95b8b3439b8c8ee8a231a59fd93244a897da915ff584

See more details on using hashes here.

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

Hashes for aimem_cli-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f28d92c1a2cc9e32c4e0872eee0f6b181305542239d041e496555a11ea7e855b
MD5 6ac268fa4b7209738eafffd77ee9f1b9
BLAKE2b-256 859755f54105548d11793ac490ee19a5a15ec7fd7229b7407fd5145b929275ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page