# How to Update codebase-memory-mcp to the Latest Version: Built-in Command and Manual Methods

> Easily update codebase-memory-mcp to the latest version with the built-in `codebase-memory-mcp update` command. Learn manual methods too.

- Repository: [Martin Vogel/codebase-memory-mcp](https://github.com/DeusData/codebase-memory-mcp)
- Tags: how-to-guide
- Published: 2026-07-27

---

**Run `codebase-memory-mcp update` from any terminal to automatically fetch the latest GitHub release, verify its SHA-256 checksum, and atomically replace your existing binary while preserving all graph data.**

Keeping `codebase-memory-mcp` current ensures you access the latest MCP protocol features and graph storage optimizations in the `DeusData/codebase-memory-mcp` repository. The project ships with a self-contained updater that handles the entire process safely, including coordination with the background daemon to prevent data corruption. This guide covers both the automated one-line update and the manual method for air-gapped or custom environments.

## Update codebase-memory-mcp with the Built-in Command

The simplest way to update is using the binary's native `update` subcommand. This method queries the GitHub Releases API, downloads the appropriate archive for your platform, validates the cryptographic checksum, and swaps the old binary for the new one.

```bash
codebase-memory-mcp update

```

When executed, the command performs five distinct operations atomically:

1. **Query** – Fetches the newest tag from `https://api.github.com/repos/DeusData/codebase-memory-mcp/releases/latest` (or respects the `CBM_DOWNLOAD_URL` override if set).
2. **Download** – Retrieves the matching archive (e.g., `codebase-memory-mcp-linux-amd64.tar.gz`) from the release assets.
3. **Verify** – Compares the SHA-256 hash of the downloaded file against the [`checksums.txt`](https://github.com/DeusData/codebase-memory-mcp/blob/main/checksums.txt) published with the release.
4. **Install** – Extracts the binary to the original installation directory (commonly `~/.local/bin` or the path used by [`scripts/install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/scripts/install.sh)).
5. **Finalize** – Prints a confirmation message (e.g., `✅ Updated to v1.2.3`) and restarts active daemon-backed sessions.

### Updating Headless Installations (CLI-Only)

If you run a headless server without the optional UI components, pass the `--skip-config` flag to prevent the updater from fetching UI assets. The update command automatically detects headless mode from your existing installation and forwards this flag to the underlying [`scripts/install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/scripts/install.sh).

```bash
codebase-memory-mcp update --skip-config

```

### Updating from a Custom URL

To test pre-releases or use a self-hosted mirror, export `CBM_DOWNLOAD_URL` before running the update command. The system will bypass the GitHub API lookup and fetch directly from your specified endpoint.

```bash
export CBM_DOWNLOAD_URL="https://example.com/custom/codebase-memory-mcp.tar.gz"
codebase-memory-mcp update

```

## Manual Update Process

For environments where automatic updates are restricted, or when you require full control over the binary replacement, follow the manual workflow. This method utilizes the same [`scripts/install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/scripts/install.sh) script that the built-in command uses, ensuring consistency in verification and installation barriers.

### Download and Verify

First, fetch the latest archive and its corresponding checksum file. Replace the OS and architecture placeholders in the URL to match your system (`linux`, `darwin`, `windows` and `amd64`, `arm64`).

```bash

# Detect latest version (optional)

VERSION=$(curl -fsSL https://api.github.com/repos/DeusData/codebase-memory-mcp/releases/latest | jq -r .tag_name)

# Download archive

curl -fsSL "https://github.com/DeusData/codebase-memory-mcp/releases/download/${VERSION}/codebase-memory-mcp-linux-amd64.tar.gz" -o cbm.tar.gz

# Download checksums

curl -fsSL "https://github.com/DeusData/codebase-memory-mcp/releases/download/${VERSION}/checksums.txt" -o checksums.txt

# Verify integrity

sha256sum -c <(grep "cbm.tar.gz" checksums.txt)

```

### Extract and Install

Extract the archive and execute the installer. The [`install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/install.sh) script respects the coordination daemon’s admission barrier, ensuring that no active sessions write to the graph database during the swap.

```bash
tar -xzf cbm.tar.gz
cd codebase-memory-mcp-*/
./install.sh

```

After installation, confirm the new version is active:

```bash
codebase-memory-mcp version

```

Finally, restart any coding agents or MCP clients to load the updated server binary.

## Safety Mechanisms and Daemon Coordination

The update process—whether triggered via the built-in command or the manual [`install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/install.sh)—implements an **admission barrier** through the coordination daemon. According to the implementation in the source code, this barrier:

- **Blocks** new work from starting during the update window.
- **Cancels** any in-flight sessions safely.
- **Preserves** the integrity of [`internal/cbm/zstd_store.c`](https://github.com/DeusData/codebase-memory-mcp/blob/main/internal/cbm/zstd_store.c) managed artifacts (the compressed graph database at `.codebase-memory/graph.db.zst`).
- **Restores** normal operation only after the new binary is fully in place and verified.

This atomic replacement guarantees that partial updates cannot corrupt your persisted codebase graph or configuration files. The mechanism is invoked automatically; no manual daemon management is required.

### Alternative: Build from Source

If you prefer to compile the update yourself rather than downloading pre-built binaries, use the `Makefile.cbm` target. This invokes [`scripts/build.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/scripts/build.sh) and then [`scripts/install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/scripts/install.sh) in sequence.

```bash
make -f Makefile.cbm install

```

This method is particularly useful when you need to apply local patches before updating, or when targeting an architecture not available in the standard releases.

## Summary

- **Run `codebase-memory-mcp update`** for a one-line atomic update that fetches, verifies, and installs the latest release.
- **Set `CBM_DOWNLOAD_URL`** to override the default GitHub releases source for testing pre-releases or using internal mirrors.
- **Use `--skip-config`** when updating headless installations to avoid fetching UI components.
- **Manual updates** use the same [`scripts/install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/scripts/install.sh) logic as the automatic path, ensuring checksum verification and safe binary replacement.
- **The admission barrier** protects your graph database during updates by coordinating with the daemon to prevent partial writes.

## Frequently Asked Questions

### What happens if the update command is interrupted?

The admission barrier in the coordination daemon ensures that if the download or verification fails, the original binary remains untouched. The system only swaps the executable after the SHA-256 checksum validates successfully, preventing corrupted installations.

### Can I update codebase-memory-mcp without internet access?

Yes. Download the appropriate `codebase-memory-mcp-<os>-<arch>.tar.gz` file and [`checksums.txt`](https://github.com/DeusData/codebase-memory-mcp/blob/main/checksums.txt) from the releases page on a machine with internet, transfer them to your air-gapped system, and run the manual extraction and [`install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/install.sh) steps. The installer does not require network connectivity once the archive is local.

### Will updating erase my existing codebase graph?

No. The update process specifically preserves the `.codebase-memory/` directory containing your `graph.db.zst` and configuration. The admission barrier ensures the daemon releases its file locks on the graph storage (managed via [`internal/cbm/zstd_store.c`](https://github.com/DeusData/codebase-memory-mcp/blob/main/internal/cbm/zstd_store.c)) before the binary replacement occurs.

### How do I downgrade to a previous version if the latest update breaks something?

Follow the manual update process, but specify an earlier version tag in the download URL instead of `latest`. Download the older release archive and [`checksums.txt`](https://github.com/DeusData/codebase-memory-mcp/blob/main/checksums.txt), verify the checksum, and run [`./install.sh`](https://github.com/DeusData/codebase-memory-mcp/blob/main/./install.sh). The installer performs a standard replacement regardless of whether you are moving forward or backward in version numbers.