Manage AI coding CLI tools (Claude, Copilot, Cursor, Gemini, Amp, Codex)
Project description
code-aide
An aide for your AI coding tools.
Manages installation, upgrade, removal, and version tracking of AI coding CLI tools: Claude Code, Copilot, Cursor, Gemini, Amp, Codex, OpenCode, and Kilo.
Installation
# Run without installing (requires uv)
uvx code-aide status
# Install persistently
uv tool install code-aide
# Or use pipx
pipx install code-aide
Usage
# List available tools and their status
code-aide list
# Show detailed status for installed tools
code-aide status
# Show compact one-line-per-tool status
code-aide status -c
# Install specific tools
code-aide install claude gemini
# Install all default tools
code-aide install
# Install with automatic prerequisite installation (Node.js, npm)
code-aide install -p
# Upgrade installed tools (no args = only out-of-date tools)
code-aide upgrade [NAMES]
# Remove tools
code-aide remove [NAMES]
# Check upstream for latest versions (dry-run)
code-aide update-versions -n
# Update version cache
code-aide update-versions -y
Supported Tools
| Tool | Command | Install Type | Default |
|---|---|---|---|
| Cursor CLI | agent |
Direct download | Yes |
| Claude CLI (Claude Code) | claude |
Script | Yes |
| Gemini CLI | gemini |
npm | Yes |
| OpenCode | opencode |
npm | No |
| Kilo CLI | kilo |
npm | No |
| Amp (Sourcegraph) | amp |
Script | No |
| Codex CLI | codex |
npm | No |
| Copilot CLI | copilot |
npm | No |
How Version Data Works
code-aide uses a two-layer version data model:
-
Bundled tool definitions (in
data/tools.json): Install methods, URLs, npm packages, version args, and SHA256 checksums. Updated by releasing new versions of code-aide. -
User's local version cache (
~/.config/code-aide/versions.json): Written bycode-aide update-versions. Provides latest versions, dates, and updated SHA256 checksums.
Run code-aide update-versions to get the latest version data without
waiting for a new code-aide release.
Features
- Zero external dependencies (Python stdlib only)
- SHA256 verification for script-based installations
- Automatic prerequisite detection and installation (Node.js, npm)
- Detects install method (Homebrew, npm, system package, script, direct download)
- PATH configuration validation and warnings
- Supports Linux and macOS
Requirements
- Python 3.11+
- No external Python dependencies
Development
- Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh - Install dependencies:
uv sync - Install pre-commit hooks:
uv tool install pre-commit && pre-commit install - Run tests:
uv run pytest tests/ -v
# Run from development checkout
uv run python -m code_aide status
uv run python -m code_aide install copilot
# Run a specific test
uv run pytest tests/test_install.py::TestDetectOsArch -v
Release
publish.yml publishes to PyPI when a Git tag matching v* is pushed.
- Update the version string in
src/code_aide/__init__.py(__version__).pyproject.tomlreads it automatically via Hatchling. - Run checks:
uv run pytest tests/ -vuv build
- Commit the release version bump:
git add src/code_aide/__init__.pygit commit -m "Bumped version to X.Y.Z"
- Write useful commit messages before tagging:
- Start subject lines with an action verb in past tense (
Added,Changed,Fixed,Removed). - Keep subjects user-facing so auto-generated release notes are meaningful.
- Group related changes into focused commits instead of one broad commit.
- Example:
Fixed timeout handling in status command
- Start subject lines with an action verb in past tense (
- Tag and push:
git tag vX.Y.Zgit push origin maingit push origin vX.Y.Z
- Confirm GitHub Actions:
- CI should pass.
- Publish workflow should upload to PyPI and create GitHub Release notes.
- Release notes should include generated notes plus a commit summary from the previous tag to the current tag.
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file code_aide-1.11.3.tar.gz.
File metadata
- Download URL: code_aide-1.11.3.tar.gz
- Upload date:
- Size: 77.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd8ab2e7bb6cf33b6dfc8d25d6bb844f0c496fdd1ff8f58af9034d7d07b9e8f9
|
|
| MD5 |
bb6900d6a7e63b6f8da14e9d4098bf21
|
|
| BLAKE2b-256 |
89e139fde040dd77b73e40f746fc7f9f5a5e0c9a64ed6907e4fa63c2af6e4f5b
|
Provenance
The following attestation bundles were made for code_aide-1.11.3.tar.gz:
Publisher:
publish.yml on dajobe/code-aide
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_aide-1.11.3.tar.gz -
Subject digest:
bd8ab2e7bb6cf33b6dfc8d25d6bb844f0c496fdd1ff8f58af9034d7d07b9e8f9 - Sigstore transparency entry: 1175012536
- Sigstore integration time:
-
Permalink:
dajobe/code-aide@2596eeda402905a967e8ca5de291aaab1a4d4251 -
Branch / Tag:
refs/tags/v1.11.3 - Owner: https://github.com/dajobe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2596eeda402905a967e8ca5de291aaab1a4d4251 -
Trigger Event:
push
-
Statement type:
File details
Details for the file code_aide-1.11.3-py3-none-any.whl.
File metadata
- Download URL: code_aide-1.11.3-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8016751ebb69068649aee3827e234a21d2c43d8a656d71a82933311ce8b0003
|
|
| MD5 |
6f06cdbbc41bb7ae076076d4d884a968
|
|
| BLAKE2b-256 |
8b908da2204617107ea50ab2a6bab43f64027e5858dcc82f1a1b9b5fa0ba2e14
|
Provenance
The following attestation bundles were made for code_aide-1.11.3-py3-none-any.whl:
Publisher:
publish.yml on dajobe/code-aide
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_aide-1.11.3-py3-none-any.whl -
Subject digest:
f8016751ebb69068649aee3827e234a21d2c43d8a656d71a82933311ce8b0003 - Sigstore transparency entry: 1175012633
- Sigstore integration time:
-
Permalink:
dajobe/code-aide@2596eeda402905a967e8ca5de291aaab1a4d4251 -
Branch / Tag:
refs/tags/v1.11.3 - Owner: https://github.com/dajobe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2596eeda402905a967e8ca5de291aaab1a4d4251 -
Trigger Event:
push
-
Statement type: