Repository navigation
Releases
v0.28.0
v0.28.0 (2026-11-10)
This release is published under the MIT License.
Bug Fixes
-
license: Skip copy when license is already in the target directory (
d51723f) -
plugin: Keep the execute bit of archive entries without a file type (
d4e066d) -
plugin: Keep the execute permission of extracted plugin files (
d442a62) -
update: Detect the install method and offer to upgrade from PyPI (
482665e)
Documentation
-
Generate a CLI reference page from the Click help text (
85b6605) -
docker: Build natively on ARM64 and pass the API key as a build secret (
7a01e2d) -
docker: Pass the license ID as a build secret (
afce9ba) -
docker: Print usage from the example entrypoint (
d6a65fe) -
env: Drop the HCLI_CONFIG_NAMESPACE row (
c17a365) -
env: Drop the IDA links section, shorten HCLI_DEBUG, and align tables (
d3f8e2d) -
env: Remove HCLI_LOG_LEVEL and document the missing variables (
f76946a) -
mcp: Describe the mcp group instead of an action it does not do (
81279c0) -
plugin: Document plugin settings and install/status options (
ac545d7) -
plugin: Tell plugin authors to check ignored-urls.txt (
b61f31e)
Features
- plugin: Skip archives listed in an ignored-URLs file when indexing GitHub (
17f00ae)
Refactoring
-
plugin: Log rejected archives instead of writing the ignored-URLs list (
31310d0) -
plugin: Tidy the ignored-URLs handling of the GitHub indexer (
e4e381b) -
update: Reuse the shell quoting helper and add a changelog entry (
065ea10)
Testing
-
plugin: Run the execute permission tests on all platforms (
8de4784) -
plugin: Test index_plugin_archive directly instead of with a fake GitHub (
2fb7e54)
Detailed Changes: v0.27.3...v0.28.0
v0.27.3
v0.27.3 (2026-10-29)
This release is published under the MIT License.
Continuous Integration
Features
Detailed Changes: v0.27.2...v0.27.3
v0.27.2
v0.27.2 (2026-10-27)
This release is published under the MIT License.
Bug Fixes
Continuous Integration
- Test against the IDA 9.5 release instead of beta 1 (
c1b77a6)
Testing
- ke: Give ke_url_handler a private clock instead of patching time.sleep (
527c1cd)
Detailed Changes: v0.27.1...v0.27.2
v0.27.1
v0.27.1 (2026-10-23)
This release is published under the MIT License.
Bug Fixes
- license get: Skip the IDA 9.0 license file format (
2314a11)
Testing
- license get: Remove the license download tests (
3498e9d)
Detailed Changes: v0.27.0...v0.27.1
v0.27.0
v0.27.0 (2026-10-23)
This release is published under the MIT License.
Bug Fixes
-
Treat an empty boolean environment variable as unset (
e026aac) -
Treat an unreadable whoami answer as an invalid API key again (
c84dbce) -
Verify TLS against the system certificate store and explain certificate errors (
af33d17) -
ida python: Add IDAPYTHON_VENV_EXECUTABLE to $GITHUB_ENV in GitHub Actions (
95f7ff4) -
plugin install: Show pip failures in one line and end with a status line (
44b31b7)
Features
- ida python: Warn about a global Python, reject an unwritable one (
831ef79)
Refactoring
-
Raise TLSVerificationError from APIClient instead of inspecting raw httpx errors (
489c83a) -
ida install: Import the Python environment check at module level (
21d89ba)
Testing
- Remove the tests that monkeypatch functions (
c5fab1b)
Detailed Changes: v0.26.4...v0.27.0
v0.26.4
v0.26.4 (2026-10-22)
This release is published under the MIT License.
Bug Fixes
-
Detect the running IDA in-process when hcli runs inside IDA (#384,
1458c9e) -
Explain plugins that cannot install with the current IDA version (#381,
e0578a8) -
Group plugin versions rejected for the same reason in resolution errors (#381,
e0578a8) -
Include installer output when the IDA installer fails (#382,
fdd3003) -
Keep --install_python 0 for non-Free IDA 9.4 installers (#382,
fdd3003) -
Never pass --install_python to IDA Free installers (#382,
fdd3003) -
Omit --install_python for IDA 9.4+ Windows installers (#382,
fdd3003) -
Omit --install_python for IDA Free Windows installers (#382,
fdd3003) -
Reject empty and relative ida-install-dir values (#400,
dea3206) -
Report a missing IDA installation or idat in python doctor and explain-environment (
1e915be) -
Report an installed suite as already installed instead of as component collisions (#380,
c6b5695) -
Run a Linux installer the user cannot make executable (#397,
e25e6b6) -
ida install: Do not write the installer debug trace to the current directory (
cb8b6ce) -
ida install: Exit 1 when the install dir exists without IDA (
af4d7f4) -
ida install: Make --dry-run actions match the real install (#399,
20e9ec7) -
license install: Handle a missing IDA_DIR without a terminal (
833ca0d) -
plugin bundle: Download bundle wheels with uv, without IDA (
13b42b2) -
plugin install: Pass Python dependencies of installed plugins to pip as constraints (
0e102d4) -
plugin lint: Exit nonzero when lint reports errors (
295358f) -
plugin search: Qualify the install hint for a colliding plugin name (
02ed142)
Code Style
-
Annotate context managers with Generator for ruff 0.16 (#381,
e0578a8) -
Annotate context managers with Generator for ruff 0.16 (#382,
fdd3003) -
Annotate context managers with Generator for ruff context-manager-iterator (#380,
c6b5695) -
Annotate context-manager generators as Generator (#384,
1458c9e)
Continuous Integration
-
Add IDA 9.5 beta 1 to test matrix (
021c540) -
Install IDA Free 9.2, 9.3, and 9.4 on Linux, Windows, and macOS (#382,
fdd3003)
Documentation
-
Add changelog entry and explain grouped incompatibility reasons (#381,
e0578a8) -
Add changelog entry for reinstalling an installed suite (#380,
c6b5695) -
Drop claim that IDA plugins may set IDA-related env vars (#384,
1458c9e) -
List all six .plugin.platforms values (
aad32db) -
List all six platforms that bundle create --platform all selects (
2a71a6e) -
Reword ida-install-dir blank-value comment (
2a6aeda) -
Show the output hcli plugin lint actually prints (#390,
da22863)
Refactoring
-
Give the IDA installer helpers one signature (#382,
fdd3003) -
Name the IDA Free 9.4 installer check directly (#382,
fdd3003) -
plugin lint: Pass lint result explicitly instead of a global counter (
b5a09e0) -
plugin search: Take the install hint's host from the query (
46477b2)
Testing
- Restore a space dropped from an unrelated comment (
6220168)
Detailed Changes: v0.26.3...v0.26.4
v0.26.3
v0.26.3 (2026-10-05)
This release is published under the MIT License.
Bug Fixes
-
Bundle create skips optional plugins whose Python dependencies pip cannot download (#375,
acf6cc9) -
Do not prompt again for plugin settings that already have a value (
17aa2c9) -
Fail on an ambiguous plugin dependency in any root order (#374,
8bfd624) -
Keep resolver search linear in optional requirements and explain every conflict (#374,
8bfd624) -
Key bundle dependencies by the repository plugin name (#373,
5e11876) -
Make plugin resolution independent of root order and tighten upgrade outcomes (#374,
8bfd624) -
Name required plugins inside an optional group in skip warning chains (#375,
acf6cc9) -
Pin a repo/ prefixed bundle spec to the host of the named plugin (#374,
8bfd624) -
Reject conflicting repository prefixes and invalid local archives in bundle create (#374,
8bfd624) -
Resolve a dependency on an installed plugin name only from its host (#374,
8bfd624) -
Store plugin setting answers that equal the default (
d2121c1) -
Tolerate a failed Python probe and name ambiguous dependencies in plugin install (#374,
8bfd624)
Documentation
- Describe when setting defaults are written to ida-config.json (
6fca9c8)
Features
-
Add
hcli extensionas an alias forhcli plugin(e811464) -
Add a plugin resolver with per-cell viability (#374,
8bfd624) -
Resolve bare and range specs in bundle create per target cell (#373,
5e11876) -
Resolve bundle create target cells with the plugin resolver (#374,
8bfd624) -
Select plugin install roots and dependencies with the resolver (#374,
8bfd624) -
Shared plugin resolver with per-target viability for bundle, install, and upgrade (#374,
8bfd624) -
Skip plugin versions whose requiresPython excludes the target Python (#374,
8bfd624)
Refactoring
-
Remember a failed Python probe and keep repo views free of resolve (#374,
8bfd624) -
Tidy plugin resolver callers and restore specific location skip logs (#374,
8bfd624)
Testing
-
Cover replacing a stored setting value with the default (
843c827) -
Match the ambiguity error that the resolver gives for a non-viable version (#374,
8bfd624)
Detailed Changes: v0.26.2...v0.26.3
v0.26.2
v0.26.2 (2026-09-29)
This release is published under the MIT License.
Detailed Changes: v0.26.1...v0.26.2
v0.26.1
v0.26.1 (2026-09-29)
This release is published under the MIT License.
Bug Fixes
Features
Detailed Changes: v0.26.0...v0.26.1
v0.26.0
v0.26.0 (2026-09-24)
This release is published under the MIT License.
Features
- Add support for optional requiresPython in ida-plugin.json (
5be02e7)
Detailed Changes: v0.25.0...v0.26.0