17 — Reference
Limits and compatibility
Platforms, terminal dependencies, analysis limits and the actual scope of protections.
On this page
Platforms and terminal
Windows x64 and Linux x64 glibc binaries are distributed. WSL requires a compatible distribution. There is no official distribution for macOS, ARM64 or musl/Alpine. Platforms supported by OpenTUI are not equivalent to platforms packaged by OEC.
The renderer requests Kitty keyboard disambiguation and uses OSC 52 to copy. Images depend on the available protocol. Windows also checks native Ctrl/Shift through user32.dll. Experience varies with terminal and delivered modifiers.
Quantitative limits
| Resource | Limit | Note |
|---|---|---|
| Normal text | 2 MiB | Strict UTF-8, no NUL; also limits writes. |
| Image | 16 MiB | Checks size before and after reading. |
| Highlighting | 200,000 characters | Per-line regex, not a semantic parser. |
| Index | 50,000 entries | Includes directories, not only files. |
| Filter / local / project | Index 50,000 / 100 / 100 | Hierarchical filter, local matches and project lines. The plugin limits its filter to 80 files. |
| History | 100 commits/page | No total cap; accumulates pages in memory. |
| Log | 200 × 12,000 | Entries and maximum detail characters per entry. |
| Global configuration | 256 KiB | The project file does not apply this same limit. |
Files and root scope
Helpers validate lexical and physical paths, reject link escapes, create without overwriting and save through temp/rename. POSIX permissions or Windows ACLs are retained; WSL paths from Windows use native distribution tools. This is not a sandbox against every concurrent race or a guarantee of all metadata on every filesystem.
The .oec/config.json configuration uses another storage path without the same physical link check. Git limits visible paths and per-file actions, but commit/pull/push retain repository scope. Local diff blobs have different checks from historical blobs.
Product and network scope
Local editing needs no server or OpenCode. Installation, npm checks, updates and fetch/pull/push do make connections. External processes may have their own network behavior.
There is no embedded terminal, debugger, LSP, global replacement, Save as, folder creation, session restoration or theme catalog. Git does not expose clone/init, checkout, stash, tags, rebase, amend, blame or partial staging.
Chapter sources
Links pinned to the reviewed commit; they do not follow main.