Skip to main content

AI Memory Switcher - Save, compress, and transfer context between AI agents

Project description

AiMem - AI Memory Switcher

AiMem - Transfer context between AI agents

PyPI Python License GitHub stars

AiMem helps you save, inspect, compress, and transfer conversation context between AI coding agents. When one agent hits a token limit, rate limit, or you simply want to switch tools, AiMem lets the next agent continue with the context you already built.

Install

pip install aimem-cli

From source:

git clone https://github.com/ThangTo/AiMem.git
cd AiMem
pip install -e .

Run the interactive TUI:

aimem-cli

What Is New In 0.2.8

  • Fixed OpenCode injection so imported messages no longer block the next real prompt from calling the LLM.
  • Fixed OpenCode message timestamps so new chats are not inserted between older imported messages.
  • Restored TUI resume flow after injection, including opening opencode -s <session-id> in a new terminal.
  • Fixed Codex CLI injection by writing complete base instructions and visible transcript events.
  • Improved Codex VS Code extension launch through the correct deep link flow.
  • Added --no-compress so compression is only used when explicitly requested or enabled.
  • Added regression tests for OpenCode injection ordering, model selection, and context budgeting.

Core Features

  • Interactive TUI with session selection, analysis, chunking, compression, injection, and resume actions.
  • Save sessions from Claude, Gemini, Qwen, OpenCode, Codex, Cursor, Aider, Continue.dev, or clipboard.
  • Load sessions as Markdown, Claude, Gemini, Qwen, OpenCode, Codex, Cursor, Continue.dev, or prompt format.
  • Inject directly into supported agent storage, then resume in the target tool.
  • Analyze context size against the target model before loading.
  • Chunk large sessions while preserving all messages.
  • Optional LLM compression with explicit --compress and --no-compress controls.
  • Merge multiple sessions into a single context package.

Quick Start

Interactive Mode

aimem-cli

Use the TUI to:

  • Pick a source session.
  • Analyze, chunk, compress, copy, or inject it.
  • Open the injected target session directly when supported.

Transfer Claude To OpenCode

aimem-cli save --from claude
aimem-cli load <session-id> --to opencode --inject
opencode -s <opencode-session-id>

In the TUI, after injection you can choose to open the OpenCode session immediately in a new terminal.

Transfer To Codex

aimem-cli save --from claude
aimem-cli load <session-id> --to codex --inject
codex resume <codex-session-id>

The TUI also supports opening the injected Codex session in the terminal or in the VS Code extension.

Transfer Through Markdown

aimem-cli save --from claude
aimem-cli load <session-id> --to markdown --copy

Paste the generated context into any AI assistant.

Commands

Initialize Config

aimem-cli init
aimem-cli init --force

Save A Session

aimem-cli save --from claude
aimem-cli save --from gemini
aimem-cli save --from qwen
aimem-cli save --from opencode
aimem-cli save --from codex
aimem-cli save --from cursor
aimem-cli save --from aider
aimem-cli save --from continue
aimem-cli save --from clipboard

Save a specific session when the adapter supports it:

aimem-cli save --from opencode --session-id <session-id>

Load Or Convert A Session

aimem-cli load <session-id> --to markdown
aimem-cli load <session-id> --to claude
aimem-cli load <session-id> --to gemini
aimem-cli load <session-id> --to qwen
aimem-cli load <session-id> --to opencode
aimem-cli load <session-id> --to codex
aimem-cli load <session-id> --to cursor
aimem-cli load <session-id> --to continue
aimem-cli load <session-id> --to prompt

Inject Into Target Storage

aimem-cli load <session-id> --to claude --inject
aimem-cli load <session-id> --to gemini --inject
aimem-cli load <session-id> --to qwen --inject
aimem-cli load <session-id> --to opencode --inject
aimem-cli load <session-id> --to codex --inject
aimem-cli load <session-id> --to cursor --inject

OpenCode model override:

aimem-cli load <session-id> --to opencode --inject --opencode-model google/gemma-4-31b-it

Analyze, Chunk, Compress

aimem-cli load <session-id> --to opencode --analyze
aimem-cli load <session-id> --to opencode --chunk
aimem-cli load <session-id> --to opencode --compress --inject
aimem-cli load <session-id> --to opencode --no-compress --inject

Merge Sessions

aimem-cli merge <session-a> <session-b>
aimem-cli merge <session-a> <session-b> --smart
aimem-cli merge <session-a> <session-b> --smart --to gemini

Config

aimem-cli config
aimem-cli config set compression.enabled true
aimem-cli config set compression.enabled false
aimem-cli config set compression.api_key YOUR_API_KEY
aimem-cli config set compression.provider groq
aimem-cli config set output.clipboard_auto true

Delete

aimem-cli delete <session-id>

Supported Agents

Sources

Agent Notes
Claude Reads Claude Code JSONL project sessions
Gemini Reads Gemini CLI chat sessions
Qwen Reads Qwen CLI logs
OpenCode Reads OpenCode database/export sessions
Codex Reads Codex rollout sessions
Cursor Reads Cursor composer data
Aider Reads .aider.chat.history.md
Continue.dev Reads Continue session database
Clipboard Saves current clipboard content

Injection Targets

Target Resume Command
Claude claude --resume
Gemini gemini --resume
Qwen qwen --resume
OpenCode opencode -s <session-id>
Codex CLI codex resume <session-id>
Codex VS Code Opens vscode://openai.chatgpt/local/<session-id>
Cursor Opens the target project/session in Cursor

Configuration

Config file:

~/.aimem/config.json

Important options:

Option Default Description
compression.enabled false Enable automatic LLM compression
compression.provider groq Compression provider
compression.api_key empty API key for compression
output.format markdown Default output format
output.clipboard_auto true Auto-copy generated output
storage.path ~/.aimem/sessions Saved session directory

Development

pip install -e ".[dev]"
python -m pytest
python -m build

Project layout:

aimem/
  cli.py
  tui.py
  models.py
  storage.py
  compression.py
  context_manager.py
  adapters/
    claude.py
    gemini.py
    qwen.py
    opencode.py
    codex.py
    cursor.py
    aider.py
    continue_dev.py

License

MIT License. See LICENSE.

Contributing

See CONTRIBUTING.md.

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.8.tar.gz (78.8 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.8-py3-none-any.whl (83.2 kB view details)

Uploaded Python 3

File details

Details for the file aimem_cli-0.2.8.tar.gz.

File metadata

  • Download URL: aimem_cli-0.2.8.tar.gz
  • Upload date:
  • Size: 78.8 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.8.tar.gz
Algorithm Hash digest
SHA256 defa97f156ae77ee64d36137a20c53c1e6451cd9ae7427769531eb3df3c4968c
MD5 310e0c8f822336961697f3ef37d5fd4b
BLAKE2b-256 e0eebcec97d7cd9b9e4bf76c464cf8b1394dfaa4db519329d649882ef98cfb89

See more details on using hashes here.

File details

Details for the file aimem_cli-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: aimem_cli-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 83.2 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 01367429efee41ecf9029f58a6aa1a1ff149a5406da134ce8b24d19a5b4e3f2b
MD5 fb3e365b7a823c297815328fb7ca41a0
BLAKE2b-256 9ade0656c0eb4f51deaf268800af4fba04405f85a4e091f2c43e8d85b6b03363

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