Skip to main content

Multi-tool update checker for the Claude Code ecosystem

Project description

claude-updater

Multi-tool update checker for the Claude Code ecosystem.

Installation

# Via uv
uv tool install claude-updater

# Via pipx
pipx install claude-updater

# Via pip
pip install claude-updater

Quick Start

# Check for updates
claude-updater check

# Check and apply updates interactively
claude-updater update

# Initialize config
claude-updater config init

Built-in Adapters

Adapter Tool Update Method
claude_code Claude Code Auto-update (informational)
claude_mem claude-mem plugin git pull
beads_cli beads CLI brew upgrade
beads_plugin beads plugin git pull
dolt dolt brew upgrade

Configuration

Config file: ~/.config/claude-updater/config.toml

# Create default config
claude-updater config init

# Show current config
claude-updater config show

Config Options

[general]
cache_ttl = 86400          # 24h cache TTL in seconds
check_on_startup = true

[adapters.claude_code]
enabled = true

[adapters.claude_mem]
enabled = true
plugin_dir = "~/.claude/plugins/marketplaces/thedotmack"

[adapters.beads_cli]
enabled = true

[adapters.beads_plugin]
enabled = true
plugin_dir = "~/.claude/plugins/marketplaces/beads-marketplace"

[adapters.dolt]
enabled = true

CLI Reference

claude-updater check              # Check all enabled adapters
claude-updater check --force      # Ignore cache
claude-updater check --json       # Machine-readable output
claude-updater update             # Interactive update
claude-updater update --yes       # Auto-approve updates
claude-updater config init        # Create default config
claude-updater config show        # Show current config
claude-updater list               # List available adapters

Writing Custom Adapters

Create a new file in src/claude_updater/adapters/:

from claude_updater.adapters.base import ToolAdapter

class MyToolAdapter(ToolAdapter):
    @property
    def name(self) -> str:
        return "My Tool"

    @property
    def key(self) -> str:
        return "my_tool"

    def get_installed_version(self) -> str:
        # Return currently installed version
        ...

    def get_latest_version(self) -> str:
        # Return latest available version
        ...

    def get_changelog_delta(self, from_ver: str, to_ver: str) -> str:
        # Return changelog text between versions
        ...

    def apply_update(self) -> bool:
        # Apply the update, return True on success
        ...

Then register it in adapters/__init__.py:

ADAPTER_REGISTRY["my_tool"] = MyToolAdapter

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

claude_updater-2026.3.6.tar.gz (58.0 kB view details)

Uploaded Source

Built Distribution

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

claude_updater-2026.3.6-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file claude_updater-2026.3.6.tar.gz.

File metadata

  • Download URL: claude_updater-2026.3.6.tar.gz
  • Upload date:
  • Size: 58.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for claude_updater-2026.3.6.tar.gz
Algorithm Hash digest
SHA256 88b0353f5ef663d440b191b49fddf43401ba3fd1112fa60b58a22bb63e42cbc5
MD5 44bcfda1219f36fdcbbaa86328f1804f
BLAKE2b-256 89a980f1f4346555aa15206418096b4523b7eb3131d4927baec96cd52d5ea65a

See more details on using hashes here.

File details

Details for the file claude_updater-2026.3.6-py3-none-any.whl.

File metadata

  • Download URL: claude_updater-2026.3.6-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for claude_updater-2026.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c5e55e6da365ce60aae64c9aed3c2dd12392bd8143834ab49df3b67ebaf9eb93
MD5 b29ea34c078accecac57ebbff98cb833
BLAKE2b-256 4adc8a0819b95511f5d06727c6b5b09398d9c1285932265620aca16fcd3e3f6c

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