Known limitations
Check an unexpected result against this list first. Each row names one open defect or limit, its effect and, where one exists, a workaround.
Measured on okf 0.2.5, 2026-10-18.
How to read an ID
Section titled “How to read an ID”[abcd] is the short ID of an item in the project tracker. The same ID appears in square brackets on the page that is affected. The list is maintained by hand.
Open limitations
Section titled “Open limitations”- [irxe]
okf tags --validateexits 4, help says 1. Workaround: test for non-zero. - [jh7t] zsh completion script comments name argcomplete and
okf-cli.py; no behaviour change. - [71rn] Homebrew formula is head-only and builds from source. Workaround:
brew install --HEAD okf-cli, or the release binary. - [i2ws] No
--versionflag. Workaround: file hash orbrew info. - [dqq5] Release binaries are not run before upload. Workaround: run the downloaded asset.
- [c0mc] No statement whether macOS binaries are signed or notarised.
- [vf2r]
ctx show,read,check,editexit 4 for a dead entry, help says 1. Workaround: test for non-zero. - [erpf]
tags --registerandprimenamebuild_tagvec.py, which a Go install lacks. Workaround: ignore, orokf build-tagvec --produce. - [l2j0]
okf --helpdescribes the Python script. Workaround: ignore. - [fs8c] A blocked
installplan exits 1 with a generic message. Workaround: read the plan, or use--json. - [zs6t] The README,
pyproject.tomland the Homebrew formula still name the old GitHub ownerxRiErOS; the repo and this site live underrierek. Workaround: userierek/okf-cli; check the tap and release URLs before you copy a command. - [cwyx] The frontmatter writer refuses shapes it cannot patch (lone CR, flow-mapping or null root, anchor/alias/tag on the edited value, comment in a flow list, other shapes, ctx edits, huge ctx positions, non-scalar keys); Python wrote them. Exit 2 with
<path>: <reason>, file untouched. Workaround: edit the file by hand. - [n760] One refused file ends the whole run of
merge-tags,remove-tags,normalize-tagsandmigrate, a dry run too. Workaround: repair or move the file, then rerun. - [xhfi] The parser refuses frontmatter that Python reads (
\/escape, unusual anchor names, empty keys, U+0085, U+2028, U+2029). Workaround: replace the character or form. - [4752] Frontmatter is validated less strictly than in Python (equal duplicate keys, invalid tag values, merge-key misuse, impossible dates such as
2026-02-30). Workaround:okf checkand an external YAML linter. - [6xot] A TOML integer above int64 in a config file aborts every command that reads the config. Workaround: remove the number.
- [lazz]
okf recentprints UTC whenTZis a POSIX rule string. Workaround: setTZto an IANA name. - [3hfd] Cherokee text: case folding is not idempotent, so a heading in the other case is not found. Workaround: type the stored case.
- [qo6x] Timeouts limit the whole request, not each socket wait as in Python. Workaround: retry.
- [6peo] After
rename --applyof a canon owner, consumers keep the old path in the> [!quote]line andsync-statusstill sayssynced. Workaround: runsync-update --apply. - [gnnc] The substring fallback of
findprintsprovenance: lexical, help sayssubstring. Workaround: none needed, cosmetic. - [oyw7]
okf --helpdoes not say that--jsonis a per-command flag. Workaround: see the command pages.
Empty until the first fix release.