Changelog¶
You can test the unpublished version of cihai-cli before it’s released, see developmental releases.
pip:
$ pip install --user --upgrade --pre cihai-cli
pipx:
$ pipx install \
--suffix=@next \
--pip-args '\--pre' \
--force \
'cihai-cli'
Then run the suffixed command as cihai@next info 好.
uv:
$ uv add cihai-cli --prerelease allow
uvx:
$ uvx --from 'cihai-cli' --prerelease allow cihai
cihai-cli 0.33.x (unreleased)¶
Notes on the upcoming release will go here.
cihai-cli 0.33.x refreshes the documentation experience around the command-line workflow. The CLI reference becomes easier to scan, bookmark, and share, while the documentation site moves onto the shared gp-sphinx platform used across the git-pull ecosystem. The command surface itself is unchanged.
What’s new¶
Linkable CLI reference arguments (#339)¶
The CLI Reference reference now gives every command option and positional argument its own permalink. That makes it possible to link directly to arguments on cihai info, cihai reverse, and Completions instead of sending readers to the top of a long command page.
Argument metadata now renders as structured key/value rows for default values, types, choices, and required markers. Required arguments get a compact amber tag, metadata styling works in both light and dark modes, and metavars with underscores are highlighted as one token.
Documentation landing pages for CLI workflows (#344)¶
The homepage now leads with the actual cihai workflow: installation, cihai info, cihai reverse, and the note that the Unihan database is downloaded on
first use. The CLI section uses cards for info, reverse, and completions,
while project pages collect contributing, code style, and release notes away
from the first-run path.
Documentation¶
Copy-pasteable command examples (#343)¶
Shell examples across the docs and changelog now use console blocks with a
prompt marker and one logical command per block. Long commands use continuation
lines so examples are readable without making copy/paste awkward.
cihai-cli 0.32.0 (2026-01-24)¶
cihai-cli 0.32.0 is the CLI documentation overhaul release. It adds color-aware help examples to the actual command line, replaces the older Sphinx argparse extension with a richer in-tree documentation engine, and marks the package as typed for downstream tools.
What’s new¶
Colored CLI help output (#337)¶
cihai --help, cihai info --help, and cihai reverse --help now include
syntax-highlighted examples. Color output respects NO_COLOR and FORCE_COLOR,
so terminals, CI logs, and documentation builds can each select the right
rendering mode.
CLI reference engine for argparse output (#337)¶
The docs replaced sphinx-argparse with sphinx_argparse_neo, a maintained
argparse documentation path ported into this project. It provides custom
Pygments lexers for usage/help output, transforms epilog examples into normal
documentation sections, exposes argparse roles, and strips ANSI escape codes
when colored help is rendered into Sphinx.
Development¶
Typed package marker (#337)¶
cihai-cli now ships py.typed for PEP 561
type checker discovery. The release also added the docutils and Pygments type
stubs needed to keep the documentation extensions under strict mypy.
cihai-cli 0.31.1 (2026-01-24)¶
cihai-cli 0.31.1 keeps the CLI aligned with the trusted-publishing release of
the core cihai library. It also moves local developer commands from Make to
Just and updates documentation deployment credentials to the newer OIDC flow.
Breaking changes¶
Minimum cihai~=0.36.1 (was ~=0.36.0). The bump picks up cihai’s PyPI Trusted
Publisher release and the corresponding trusted unihan-etl dependency chain.
(#338)
Documentation¶
Docs deployment moved to AWS OIDC authentication and the AWS CLI, removing the older long-lived credential path from the publishing workflow.
Development¶
Makefile -> Justfile (#333)¶
Development tasks moved from Makefile to justfile. Project documentation now
uses just commands for test, lint, type-check, and docs workflows.
cihai-cli migrated package publishing to PyPI Trusted Publisher. (#332)
cihai-cli 0.31.0 (2025-11-01)¶
cihai-cli 0.31.0 is the Python 3.10 baseline release. It follows the core
cihai library to 0.36.0, keeps the test matrix current with Python 3.14, and
adopts deferred annotations consistently across the package.
Breaking changes¶
Minimum Python is now 3.10; Python 3.9 is no longer supported. Python 3.9 reached end of life on October 31, 2025. See the Python release timeline and PEP 596 for the upstream schedule. (#330)
Minimum cihai~=0.36.0 (was ~=0.35.0).
Development¶
Python 3.14 was added to the test matrix. (#329)
The codebase now uses from __future__ import annotations and enables Ruff’s
PEP-compliant annotation checks for UP006 and UP007. That defers annotation
resolution at runtime while moving style enforcement into the normal lint gate.
(#324)
cihai-cli 0.30.0 (2024-12-21)¶
cihai-cli 0.30.0 is a maintenance release for the Python 3.9 floor. It drops
Python 3.8, follows cihai to its Python 3.9-compatible release line, and
applies the current Ruff autofix set across the project.
Breaking changes¶
Minimum Python is now 3.9; Python 3.8 is no longer supported. Python 3.8 reached end of life on October 7, 2024. See PEP 569 for the upstream release schedule. (#323)
Minimum cihai~=0.35.0 (was ~=0.34.0). That also brings in
unihan-etl>=0.37.0, which requires Python 3.9. (#323)
Development¶
Ruff 0.8.4 was applied with all selected automated fixes, including preview and unsafe fixes, then formatted the tree. (#323)
$ ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
cihai-cli 0.29.0 (2024-11-26)¶
cihai-cli 0.29.0 moves project management from Poetry to uv and packaging from Poetry’s build backend to Hatchling. The release is maintenance-only for users, but it changes the contributor and release toolchain substantially.
Breaking changes¶
Project management moved from Poetry to uv (#321)¶
uv is now the project and dependency manager. Locking, local installs, and contributor setup use uv instead of Poetry.
Build backend moved to Hatchling (#321)¶
The package build system moved from poetry to hatchling. See the Python Packaging User Guide’s build backend overview for the packaging model.
Development¶
Ruff 0.4.2 code-quality fixes were applied, including f-string modernization in places where the linter could safely improve readability. (#312)
cihai-cli 0.28.0 (2024-04-06)¶
cihai-cli 0.28.0 is a maintenance release focused on documentation hygiene and the latest cihai 0.33.x dependency line.
Documentation¶
Plain-text links in the docs are now automatically linkified.
Development¶
Minimum cihai~=0.33.0 (was ~=0.32.0). The bump follows cihai’s Ruff linting
updates.
cihai-cli 0.27.0 (2024-04-01)¶
cihai-cli 0.27.0 is a maintenance release for the cihai 0.32.x dependency line and the Ruff 0.3 toolchain. It keeps the CLI aligned with Unihan ETL fixes while modernizing lint command usage.
Development¶
Minimum cihai~=0.32.0 (was ~=0.31.0), including unihan-etl>=0.34.0.
Ruff was bumped from 0.2.2 to 0.3.0 and CI now runs ruff check . instead of
the older ruff . command form. (#309)
Ruff 0.3.4 automated fixes were applied across active branches before the release. (#310)
$ ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
cihai-cli 0.26.0 (2024-02-09)¶
cihai-cli 0.26.0 brings the CLI onto the Unihan 15.1 data line through cihai
0.31.0 and unihan-etl 0.33.1. Users get the current Unicode data compatibility
without changing the cihai info or cihai reverse command model.
What’s new¶
Unihan 15.1 compatibility (#308)¶
The cihai dependency now supports Unihan 15.1.0, released September 1, 2023 in
TR38 revision 35.
The underlying unihan-etl bump also includes the earlier kRSUnicode double
apostrophe fix.
Development¶
Ruff linting was strengthened with flake8-commas, flake8-builtins, and
flake8-errmsg rule families. (#307)
cihai-cli 0.25.0 (2023-12-09)¶
cihai-cli 0.25.0 is a maintenance release for docstring coverage, CI cleanup, and the cihai 0.30.x dependency line.
Documentation¶
Functions, methods, classes, and packages gained docstrings. (#304)
Development¶
Minimum cihai~=0.30.0 (was ~=0.29.0). The cihai release includes
pydocstyle-oriented docstrings and fixes for unused character utility functions.
The pytest configuration moved into pyproject.toml, and pydocstyle checks were
added to Ruff. (#301, #304)
CodeQL moved from an advanced configuration file to GitHub’s default setup. (#304)
cihai-cli 0.24.0 (2023-11-19)¶
cihai-cli 0.24.0 is a maintenance release for Python 3.12 packaging metadata, Poetry dependency-group cleanup, and the switch from Black to Ruff formatting.
Development¶
Pytest configuration now lives in pyproject.toml, Python 3.12 appears in the
package classifiers, and Poetry development dependencies use dependency groups
instead of extras. (#301)
Formatting moved from Black to ruff format,
keeping Black-compatible style while removing a separate formatter dependency.
(#302)
Minimum unihan-etl>=0.29.0 through the cihai dependency line.
Poetry was bumped from 1.6.1 to 1.7.0, and the eradicate Ruff rule family was
removed after too many false positives.
GitHub Actions dependencies were updated to clear workflow warnings, including
dorny/paths-filter 2.11.1.
cihai-cli 0.23.0 (2023-07-22)¶
cihai-cli 0.23.0 is a maintenance release that follows cihai 0.28.0 for pytest plugin updates.
Development¶
Minimum cihai~=0.28.0 (was ~=0.27.0).
cihai-cli 0.22.0 (2023-07-18)¶
cihai-cli 0.22.0 is a maintenance release that picks up cihai 0.27.0 and the unihan-etl pytest fixes beneath it.
Development¶
Minimum cihai~=0.27.0 (was ~=0.26.0), including unihan-etl 0.27.0 pytest
fixes. (#300)
cihai-cli 0.21.2 (2023-07-18)¶
cihai-cli 0.21.2 is a maintenance release for Ruff-driven code-quality fixes.
Development¶
cihai-cli 0.21.1 (2023-07-02)¶
cihai-cli 0.21.1 restores the main user workflows after regressions in the previous release.
Fixes¶
cihai-cli 0.21.0 (2023-07-01)¶
cihai-cli 0.21.0 is a maintenance release for stricter Ruff enforcement and the cihai 0.26.x dependency line.
Development¶
Ruff strictness increased and the resulting code improvements were applied. (#295)
Minimum cihai~=0.26.0 (was ~=0.25.0), including matching lint updates in
unihan-etl 0.25.0.
cihai-cli 0.20.0 (2023-06-25)¶
cihai-cli 0.20.0 is a dependency maintenance release. It follows cihai through 0.25.0 and picks up the zhon 2.0 regular-expression warning fix through unihan-etl.
Development¶
Minimum cihai~=0.25.0 (was ~=0.23.0). The dependency chain includes
unihan-etl 0.24.0 and zhon 2.0.0, which fixes pytest regular-expression
warnings. (#298)
cihai-cli 0.19.0 (2023-06-24)¶
cihai-cli 0.19.0 follows cihai and unihan-etl’s dataclass-based configuration work.
Development¶
Minimum cihai~=0.22.1 (was ~=0.21.0). The dependency chain includes
unihan-etl 0.22.2 with dataclasses.dataclass-based configuration.
cihai-cli 0.18.0 (2023-06-19)¶
cihai-cli 0.18.0 follows cihai’s pathlib and typing cleanup.
Development¶
Minimum cihai~=0.22.1. This dependency line relies on pathlib-based paths
and improved type annotations.
cihai-cli 0.17.0 (2023-06-04)¶
cihai-cli 0.17.0 is the Python 3.8 baseline release. It drops Python 3.7, tightens typing, and follows cihai into its SQLAlchemy 2.0 dependency line.
Breaking changes¶
Python 3.7 support was dropped. Python 3.7 reached end of life on June 27, 2023,
and Python 3.8 provides typing.TypedDict and typing.Protocol without
typing_extensions. (#290)
Development¶
Strict mypy compliance was added. (#277)
Tests moved from pytest’s tmpdir / py.path.local fixture to tmp_path /
pathlib.Path. (#292)
Unnecessary typing_extensions.TypedDict imports were removed where the Python
floor made stdlib typing.TypedDict available. typing_extensions remains
needed for NotRequired until the project can require Python 3.11. (#292)
Minimum cihai~=0.21.0 includes strict typing work and the SQLAlchemy 2.0
migration from the core library.
cihai-cli 0.16.0 (2023-05-29)¶
cihai-cli 0.16.0 is the final Python 3.7-compatible release and the first release to consolidate linting and formatting on Ruff.
Breaking changes¶
0.16.0 is the final release that supports Python 3.7.
Development¶
Formatting, import sorting, and linting moved from isort, flake8, and Black-era tooling to Ruff.
Poetry was bumped from 1.4.0 to 1.5.0.
Minimum cihai~=0.19.0 and unihan-etl 0.19.1 carry the same Ruff migration in
the dependency stack.
cihai-cli 0.15.2 (2022-10-02)¶
cihai-cli 0.15.2 is a maintenance release for the cihai 0.18.x line and docs navigation.
Documentation¶
The migration page was added, and the completions page link was restored.
Development¶
Minimum cihai~=0.18.3 (was ~=0.18.1), including unihan-etl 0.18.2 typing
updates for merge_dict.
cihai-cli 0.15.1 (2022-10-02)¶
cihai-cli 0.15.1 fixes CLI help text descriptions.
Fixes¶
Command help descriptions now render correctly.
cihai-cli 0.15.0 (2022-10-02)¶
cihai-cli 0.15.0 replaces Click with stdlib argparse. The command names remain focused on character lookup and reverse definition search, but the CLI no longer needs Click at runtime.
Breaking changes¶
The command-line implementation moved from click to argparse. (#286)
Development¶
cihai-cli 0.14.0 (2022-10-01)¶
cihai-cli 0.14.0 follows cihai 0.18.1 and removes the kaptan dependency from the installed stack.
Dependencies¶
Minimum cihai>=0.18.1; kaptan is no longer installed through the cihai
dependency chain.
cihai-cli 0.13.1 (2022-10-01)¶
cihai-cli 0.13.1 speeds up CI and updates Poetry for the 1.2 dependency constraint model.
Development¶
Release publishing moved into a separate job so normal CI does not pull the PyPI upload image. CodeQL was also cleaned up. (#285)
Poetry moved from 1.1.x to 1.2.x, including the corrected Click constraint for Poetry 1.2.
cihai-cli 0.13.0 (2022-09-11)¶
cihai-cli 0.13.0 is a project-structure and documentation-testing release. It
moves to a src/ layout, broadens lint coverage, and starts testing docs
examples as part of the normal validation path.
Development¶
The package moved to a src/ layout. (#284)
flake8-bugbear and flake8-comprehensions were added to the lint stack.
(#281, #282)
Documentation¶
The changelog now renders through linkify_issues, table-of-contents rendering
was fixed for Sphinx autodoc pages, and docs doctests run through
pytest_doctest_docutils. (#283)
cihai-cli 0.12.0 (2022-08-21)¶
cihai-cli 0.12.0 follows cihai 0.16.0 and the strict typing work in unihan-etl 0.17.x.
Development¶
Minimum cihai~=0.16.0.
cihai-cli 0.11.0 (2022-08-20)¶
cihai-cli 0.11.0 restores the separate cihai-cli distribution as the way to
install the command-line frontend. This avoids making cihai’s library package
carry the CLI extra as the primary install path.
Breaking changes¶
Install the CLI through cihai-cli again.
Before, cihai 0.9 through 0.14 and cihai-cli 0.5 through 0.10 used the cihai extra:
$ pip install cihai[cli]
After cihai 0.15 and cihai-cli 0.11, install the CLI package directly:
$ pip install cihai-cli
Modern uv workflows can add the CLI to a project:
$ uv add cihai-cli
Install it as a user-wide tool:
$ uv tool install cihai-cli
Or run it on demand:
$ uvx --from cihai-cli cihai --version
See cihai#326 and cihai-cli#279.
cihai-cli 0.10.x (2022-08-20)¶
cihai-cli 0.10.x removes Python 2 compatibility code left over after the earlier support drop.
Breaking changes¶
Python 2 compatibility modules and imports were removed. Python 2.x had already been officially dropped in 0.7.0. (#278)
cihai-cli 0.9.0 (2022-08-16)¶
cihai-cli 0.9.0 updates Python compatibility, adds the first doctest path, and switches the documentation theme to Furo.
Breaking changes¶
What’s new¶
Documentation¶
Doctest support was added, and the docs moved to the Furo theme. (#276)
Development¶
Poetry was updated to the 1.1 line, CI dependency caching was improved with
actions/setup-python, and initial mypy validation was added. (#255, #269,
#276)
Tests moved from tmpdir to tmp_path.
cihai-cli 0.8.1 (2021-06-16)¶
cihai-cli 0.8.1 updates the cihai dependency to 0.12.
Development¶
Minimum cihai~=0.12.0.
cihai-cli 0.8.0 (2021-06-16)¶
cihai-cli 0.8.0 converts project documentation to Markdown.
Documentation¶
cihai-cli 0.7.2 (2021-06-15)¶
cihai-cli 0.7.2 updates the cihai dependency to fix a SQLAlchemy issue.
Fixes¶
Minimum cihai>=0.11.1 for the SQLAlchemy fix.
cihai-cli 0.7.1 (2021-06-15)¶
cihai-cli 0.7.1 fixes README packaging.
Fixes¶
The README is included correctly in package metadata.
cihai-cli 0.7.0 (2021-06-15)¶
cihai-cli 0.7.0 removes legacy Python support and updates packaging metadata for the Python 3-only line.
Breaking changes¶
Python 2.7 and Python 3.5 support were dropped, along with deprecated
__future__ imports and modesets. (#251)
Development¶
Black was updated to 21.6b0, and trove classifiers were updated for Python 3.9.
cihai-cli 0.6.0 (2020-08-09)¶
cihai-cli 0.6.0 is an infrastructure release for packaging, documentation hosting, and GitHub Actions.
Documentation¶
The docs became self-hosted and gained site metadata and icons. (#248)
Development¶
Packaging and publishing moved to Poetry, Travis CI moved to GitHub Actions, and Makefiles were overhauled. (#248, #249)
cihai-cli 0.5.1 (2020-07-03)¶
cihai-cli 0.5.1 continues the packaging migration and fixes a Python 2 help display bug.
Fixes¶
Help output works again on Python 2.x.
Development¶
Project dependency management moved from Pipfile to Poetry. (#247)
cihai-cli 0.5.0 (2019-08-18)¶
cihai-cli 0.5.0 updates package metadata and relaxes dependency constraints
around the then-current cihai[cli] install model.
Development¶
project_urls were added to setup.py, the README was fixed to use plain
reStructuredText, and package requirements were loosened.
The documented install path at the time was:
$ pip --user install cihai[cli]
Pytest and other support packages were updated.
cihai-cli 0.5.0a (2018-09-08)¶
cihai-cli 0.5.0a improves version reporting.
What’s new¶
cihai -V and cihai -version now show the cihai backend version. (#91)
cihai-cli 0.4.1 (2018-07-21)¶
cihai-cli 0.4.1 updates Sphinx and cihai to fix dependency issues around kaptan and PyYAML.
Fixes¶
Sphinx moved from 1.7.5 to 1.7.6, and cihai moved from 0.8.0 to 0.8.1.
cihai-cli 0.4.0 (2018-06-24)¶
cihai-cli 0.4.0 improves the default character detail output and modernizes the project’s development stack for the Pipenv era.
What’s new¶
The info command now includes Vietnamese phonetic data in the default output.
Documentation¶
Documentation moved to NumPy-style docstrings, and the license was updated from New BSD to MIT. Future commits and contributions are licensed to the cihai software foundation, including commits by Tony Narlock.
Development¶
Project tooling moved toward Pipenv, with tmuxp config updates, an added
Pipfile, new isort/flake8 tests, a make sync_pipfile task, and package
updates across Sphinx, pytest, releases, vulture, alagitpull, and lint tooling.
cihai-cli 0.3.2 (2017-05-26)¶
cihai-cli 0.3.2 bumps the cihai dependency.
Development¶
Minimum cihai~=0.7.4.
cihai-cli 0.3.1 (2017-05-20)¶
cihai-cli 0.3.1 bumps the cihai dependency.
Development¶
Minimum cihai~=0.7.2.
cihai-cli 0.3.0 (2017-05-20)¶
cihai-cli 0.3.0 shapes the original CLI into the command vocabulary that still matters today: concise character details by default and reverse lookup by term.
Breaking changes¶
The lookup command was renamed to reverse.
What’s new¶
The default output now shows human-friendly fields. Use -a or --all to show
all fields.
Fixes¶
Output no longer includes extra newlines, printing uses click.echo, and
Unicode handling was fixed for Python 2.7 tests and CLI output.
cihai-cli 0.2.1 (2017-05-20)¶
cihai-cli 0.2.1 fixes early package and CLI variable issues.
Fixes¶
CLI variables were adjusted and a package dependency issue was fixed.
cihai-cli 0.2.0 (2017-05-20)¶
cihai-cli 0.2.0 is the initial project release.
What’s new¶
Initial command-line frontend for cihai.