ICM CLI

A local CLI stores project decisions and conventions in SQLite, retrieves relevant entries and shares memory across coding agents.

  • 621 ★ on the repository
  • Last commit
  • Apache-2.0
CLI

Extended access

Why this level

  • The CLI installs hooks and retains work facts; extraction can use a configured model client.
All reasons and checks

rtk-ai/icm

Install

Manual install

brew tap rtk-ai/tap && brew install icm

Installs the CLI through Homebrew. Then `icm init` adds instructions and hooks for detected agents.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The CLI installs hooks and retains work facts; extraction can use a configured model client.

This is third-party code. Review the repository files before installing.

What it does

ICM stores decisions, fixes and preferences in a shared local database. Agents receive important entries at session start and relevant memories with prompts. Manual commands store facts and test retrieval without a language model. Setup writes instructions, skills and hooks for detected clients, with an optional MCP server. Extracting facts from tool output can use an installed model CLI or be disabled in configuration, while storage and retrieval remain local.

Who it is for. For developers switching AI clients while retaining project decisions across sessions.

Good fit when

  • Preserve a convention for the next agent.
  • Recall a previous bug fix.
  • Keep memory scoped to one repository.
  • Use keyword search without an embedding-model download.

Not a fit when

  • Tool output and work decisions cannot be retained.
  • You need exact reproduction of full conversation history.
  • Agent configuration cannot be modified.

Example request

Store this project’s authentication convention and test retrieval without embeddings or an external model.

Limitations

icm init writes instructions and hooks for detected clients, so inspect the list before normal project work. Automatic extraction may send tool output to an installed model CLI; set `provider = "none"` under `[extraction.summarizer]` to avoid sending that output to a model CLI. The first semantic search downloads a roughly 2 GB model, so use keyword-only retrieval when space is limited. Memory contains work facts; separate projects and remove stale decisions before they affect a new task.

How to disable. Run `icm uninstall --dry-run` first, then remove integrations as documented. Clean the memory database and downloaded model separately.

FAQ

How do I create a project-local database?

Use `icm init --per-project`.

Is MCP added by default?

No. Select `icm init --mode all` to add it.

How do I search without embeddings?

Add `--no-embeddings` to the retrieval command.

How do I check embedding support?

Run `icm embeddings status`.

Why use icm.exe in PowerShell?

icm is already a built-in Invoke-Command alias there.

Discussion

No questions or reviews yet.

CLI tools

A Python terminal coding agent in the manner of Claude Code: reads the repository, edits files, runs commands, with memory, sub-agents and MCP

CLIBroad access1KRepository stars

A persistent-memory MCP server for coding agents: a graph of a project's concepts, architecture and decisions that survives across sessions

MCP serverExtended access736Repository stars

A CLI records coding agent sessions locally, replays what happened and shows what the trace could not prove.

CLIExtended access104Repository stars

An MCP server and CLI in Go: the agent keeps an index of code and database schema in the repository, versions it in Git and reads it whole before each task

MCP serverBroad access1.9KRepository stars

A structural code search MCP server for agents: finds the right file by query intent and runs locally

MCP serverExtended access553Repository stars

README in short

ICM separates memory storage and retrieval from automatic fact extraction. The parts can be configured independently for project rules.

README badge

Report a problem