Repository navigation
Releases: sluisr/corex
Release list
v0.8.3 — API Key Replacement, Termux Touch Scrolling & zip 9.1
Release v0.8.3
Fixed
- Replacing an API key that stopped working: The only way to change a key was
/key, which was missing from the command menu and/helpdescribed it as DeepSeek-only; the model picker offered no way to change the key of a provider that already had one./key(alias/auth) is now listed,Ein/modelreplaces the key of the highlighted provider, a 401 tells you to run/key, and saving a DeepSeek key warns whenCOREX_API_KEYorDEEPSEEK_API_KEYholds a different one, since the environment overridessettings.jsonon the next launch. - Arrow keys on Android / Termux: Up and Down always scrolled the chat, so the history of sent messages was unreachable. With mouse reporting off, Termux turns a finger swipe into bare arrows that are byte-identical to the extra-keys arrows (
TerminalView.doScroll), and keeps sending them, ever more spaced out, while the fling slows down after the finger lifts. Telling them apart by pace could never be exact: a slow swipe or the tail of a fling was taken for the arrow key and changed the message. Corex now asks for mouse reporting on Android / Termux in portrait too, so a swipe arrives as a wheel event and the arrows are always keys, as on the desktop. Termux raises the keyboard on a tap only while mouse reporting is off, and decides about 300 ms after the finger lifts, so Corex switches reporting off for 700 ms after each tap and back on: the tap still opens the keyboard. A swipe that starts inside that gap arrives as arrows and still scrolls, and on Android a wheel event moves the feed one line (one event per row the finger travels), so the chat follows the finger; Down no longer scrolls the feed on Android, only the history.COREX_MOUSE=0or F2 turns it off for good; the pace-based detection (COREX_TOUCH_SCROLL_MS,0disables it) stays as the fallback while it is off. /keyboardon Android / Termux: It rantermux-keyboard, a commandtermux-apidoes not have, so it never raised anything. It now pauses mouse reporting for a few seconds so that the next tap opens the keyboard.cx updateon Android / Termux: It answered "Auto-update is not supported on this platform". The Termux build targets Android, where Rust'starget_osisandroid, notlinux, so the platform check found no match; the Termux branch inside the Linux case never ran in the published binary. It now resolves to theaarch64-linux-androidrelease archive.- Links did not open on Android / Termux: Opening a link only knew
xdg-open,openandrundll32, so on Android it did nothing. It now usestermux-open-url, which ships with Termux. - Broken logo emblem outside kitty: The
◢◤ / ◥◣emblem only joins into one chevron in terminals that draw those shapes themselves (kitty). Alacritty and Termux take them from the font, where they are small centred triangles with gaps between them. Corex now picks the emblem per terminal: kitty keeps the wedges, Alacritty gets sextants (🬵🬆 / 🬊🬱, drawn by Alacritty itself) and every other terminal block quadrants (▗▞▘ / ▝▚▖), which fill the cell in any font. Inside tmux the terminal is taken from the tmux client (#{client_termname}). - Short DeepSeek name in the status bar: The bar now reads
DeepSeek Flash/DeepSeek Pro, as the header does, instead ofDeepSeek-V4.1-Flash/DeepSeek-V4-Pro. - Status bar cut off on phones: In portrait mode the bar split the width 45/55, so on a ~48-column screen the model and reasoning effort were truncated (
DeepSeek-V4.1-Flash · 1.0 · dy). It now shows the short model name, as the header does, without the temperature, and the path takes only the space it needs:~/ (main) DeepSeek Flash · dynamic. - Down arrow and history: Down only reached the next history entry when the conversation fit on one screen; it now scrolls only while the feed is scrolled up.
Security
zip2.4.2 to 9.1.0: Fixes RUSTSEC-2026-0367, 0368 and 0369, which concernZipArchive::extract()(symbolic links pointing outside the destination and SUID/SGID bits preserved on extraction). Corex never calledextract(): the self-updater reads the one binary it needs from the Windows archive in memory. That code was adapted to the new API (an entry whose name cannot be decoded is skipped) and is now covered by tests, one of which runs against a real release archive. The dependency audit reports no vulnerabilities; the remaining warnings arepaste(unmaintained) and two soundness notes onlru, both pulled in byratatui.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| macOS Apple Silicon | corex-v0.8.3-aarch64-apple-darwin.tar.gz |
55c65cf2739d356f6a9e9e9c84c93ac4e8ed304608c825bed25768163b621acb |
| Android Termux | corex-v0.8.3-aarch64-linux-android.tar.gz |
c19540a8c8edc70580eb8932ddd493cedd3df0049521023dec6749e0f0efde8f |
| Linux ARM64 | corex-v0.8.3-aarch64-unknown-linux-gnu.tar.gz |
c5da846301a2ff516f1b6c24f1f37f8e0ead562f742ab2c85088694a9389ce77 |
| macOS Intel | corex-v0.8.3-x86_64-apple-darwin.tar.gz |
3728c24e42fa9bf4613b1162e56932a7dfbdcd932c2689517f5c8a667e6c5a3e |
| Windows x86_64 | corex-v0.8.3-x86_64-pc-windows-msvc.zip |
e63aa3f41b5bacba49ad8f9097228c60ede7bd2a5bf8a97b8dd9901b95e967bd |
| Linux x86_64 | corex-v0.8.3-x86_64-unknown-linux-gnu.tar.gz |
815046d33454485872b43b2667e07aefb1f84ad0c2d20a098dddef366c7dd652 |
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashFrom Source via Cargo / Crates.io
cargo install corex-cli --lockedVia Nix Flake
nix run github:sluisr/corexv0.8.2 — Web Fetch Without Prompts, Updater Fix & TLS Dependency Updates
Release v0.8.2
Fixed
cx updatereporting "already on the latest version": When the GitHub API failed (unauthenticated requests are limited to 60 per hour), the updater used the first fallback that answered. The CDN'srelease.jsonis refreshed by hand and could still name the previous version, while the startup notice, which keeps trying sources until it finds a newer one, offered the new release. The updater now reads both the CDN and the web redirect and takes the newer; the download URL is rebuilt from the tag when the redirect has no asset list.
Changed
web_fetchno longer asks for approval: Reading a web page is treated like a search. Since 0.8.0 it asked once per host (web_fetch:<host>), which interrupted ordinary research, for example the second fetch of a batch to the same site. The SSRF protections are unchanged: addresses that resolve to internal networks are still refused, and fetched content is still labelled as untrusted data. Anyweb_fetchrules saved inallowed_commandsare now ignored.
Security
- Dependency updates:
rustls0.23.43 to 0.23.46,rustls-webpki0.103.15 to 0.103.16,webpki-roots1.0.9 to 1.0.11 andtokio1.53.1 to 1.54.1, fixing the RustSec advisories reported by the dependency audit for the TLS stack. The advisories forzip2.4.2 (RUSTSEC-2026-0367, 0368 and 0369) concernextract(), which Corex does not call, and remain untilzipcan move to 9.x.
Documentation
- README: Performance figures, supported platforms and provider lists are now the measured or verified ones, and the claims that did not hold (static linking, glibc 2.17+, a signed audit log, zero network calls in local mode, a built-in SSH client) are gone.
scripts/benchmark.sh: Measures the interactive TUI at idle (resident memory, CPU, time to first frame) instead of--version, reads/proc, accepts the path of any binary, and no longer prints a fixed conclusion.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| macOS Apple Silicon | corex-v0.8.2-aarch64-apple-darwin.tar.gz |
9e5bd8ccd9934eb85cf9cad23683982f882dd8cb4bf15849a075d0535bcfe007 |
| Android Termux | corex-v0.8.2-aarch64-linux-android.tar.gz |
915e06d7369ab7de5485ff0f86b946cf8e1a8aa866f9aff5ee5126eceb147d34 |
| Linux ARM64 | corex-v0.8.2-aarch64-unknown-linux-gnu.tar.gz |
7549512242317313ee5625c06c97d592778435da2d90421aa02644d3197ad433 |
| macOS Intel | corex-v0.8.2-x86_64-apple-darwin.tar.gz |
3d4ac90d2c7f3dcd02fbcbedaedd5a4c1cd7be1e8c0143ccde7326939994ea99 |
| Windows x86_64 | corex-v0.8.2-x86_64-pc-windows-msvc.zip |
f0f69cfa9242b39f4cedc74321865edca50fcee8f31c782de118050e6a0f57b9 |
| Linux x86_64 | corex-v0.8.2-x86_64-unknown-linux-gnu.tar.gz |
cc782e2fc0c99655668691f6111253d7ce904baa39996a0ecc245f10297c3ca8 |
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashFrom Source via Cargo / Crates.io
cargo install corex-cli --lockedVia Nix Flake
nix run github:sluisr/corexv0.8.1 — Clipboard Image Paste, Minimal Exit Summary & Approval Dialog Fix
Release v0.8.1
Added
Images from the Clipboard
- Paste an image with
Ctrl+V: A screenshot or copied image becomes an[Image #N]tag in the prompt, and the pixels travel with the message when it is sent. Terminals that cannot paste an image as text send an empty paste, which is treated the same way. When the clipboard holds no image,Ctrl+Vpastes its text as usual. - The tag behaves as one piece: It moves, and is deleted, as a whole with the arrow keys,
BackspaceandDelete, like[Pasted text #N]. Deleting it drops the image, and a message can carry several images. - Highlighted in the conversation:
[Image #N]and the other paste tags keep their blue highlight in the feed after the message is sent, not only in the composer. - Clipboard access: Linux reads through
wl-paste(Wayland) orxclip(X11), and macOS throughpngpastewhen it is installed. Images are limited to 5 MB and must be PNG, JPEG, GIF or WebP. Windows pastes text only for now. - Models that cannot see images: DeepSeek Pro receives a note in place of each image, telling it that the image is not a file on disk and that the user should switch model with
/model; a warning is shown when the image is pasted. If any other model rejects image input, the request is retried once with the same note and a notice says so. Images stay in the session for a model that can see them. - Prompts with images keep their words in the feed, session titles, the session picker preview and
/compactsummaries.
Changed
- Session summary on exit: Redesigned as five plain rows (
Model,Session,Tokens,Cost,Resume) with dim labels and no decoration. Token counts use thousands separators, cache hits sit on the tokens row, costs show four decimals, and colour is dropped when output is not a terminal orNO_COLORis set. - Tool approval dialog: It lists only the calls that need approval. The others in the same batch run right away instead of being shown for confirmation.
Removed
- Inline hint in the composer (
Enter queues · Alt+Enter sends now): It was drawn next to the text being typed while the agent worked, and the activity bar already shows the same keys.
Fixed
- A web search asking for approval: In 0.8.0 a search was shown in the approval dialog whenever another call in the same batch needed approval, typically a
web_fetchto a host not yet allowed. The search itself never needed it. - Empty
[You]row: The internal message that carries the images loaded byread_imageis no longer drawn in the feed as an empty prompt, and no longer counts as one of the user's requests in summaries.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| macOS Apple Silicon | corex-v0.8.1-aarch64-apple-darwin.tar.gz |
3026c2912e7b2686330c3ffbae6515a7d1adb6f302de8a78d8f553481fa759d4 |
| Android Termux | corex-v0.8.1-aarch64-linux-android.tar.gz |
a438620d15c9f6b507384a44e6ff27ee15c868f66db93e66e04c445537632933 |
| Linux ARM64 | corex-v0.8.1-aarch64-unknown-linux-gnu.tar.gz |
d56c8880a35459ebe02694162145787b39182816c55126c094d308211f4acaba |
| macOS Intel | corex-v0.8.1-x86_64-apple-darwin.tar.gz |
fc8f25f67e71c047a8a033e5de9eadce97b2a077633be5480f339257dcbf91af |
| Windows x86_64 | corex-v0.8.1-x86_64-pc-windows-msvc.zip |
500397ebf15d72c634aa3a2f11d99d44ab59c9aca3a66eb31365292c641ca656 |
| Linux x86_64 | corex-v0.8.1-x86_64-unknown-linux-gnu.tar.gz |
940b5c81e9cdd42c123a897e193bc04bee6634ee6e814055720ada52f09da249 |
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashFrom Source via Cargo / Crates.io
cargo install corex-cli --lockedVia Nix Flake
nix run github:sluisr/corexv0.8.0 — Claude 5.x, Output Spill & Context Pruning, Read-Before-Edit Safety & Sandboxed Subagents
Release v0.8.0
Added
Anthropic (Claude) Provider
- Claude 5.x model catalog:
claude-opus-5-5,claude-sonnet-5-5,claude-haiku-5-5andclaude-fable-5-1replace the Claude 3.x entries in the provider list. Older ids are still accepted by name. - Per-generation request profiles (
anthropic::model_profile): Thinking is sent asadaptivefor Claude 4.6+/5.x and as a fixedbudget_tokensbudget for 3.7 and 4.0–4.5.temperatureis omitted where the API rejects it (4.7+),output_config.effortis mapped from the reasoning setting (includingxhigh), andmax_tokensfollows the model (8,192 for 3.x, 32,000 for 4.0–4.5, 64,000 for 4.6+). - Signed thinking blocks are replayed:
thinking,redacted_thinkingandsignature_deltaare reassembled from the stream, stored with the turn's tool calls and sent back unchanged, as the API requires for thinking with tool results. They are dropped if the provider is switched mid-session. - Automatic prompt caching and cache accounting: Requests carry a top-level
cache_controlof typeephemeral;cache_read_input_tokensandcache_creation_input_tokensare counted in prompt usage and cache hit statistics. - Images in user messages are sent as native
imageblocks (base64data:URIs inline,http(s)URLs by reference). - Forward-compatible streaming: Unknown SSE event types, content blocks and deltas are ignored instead of breaking the stream.
max_tokensandmodel_context_window_exceededstop reasons are reported as output truncation, and HTTP error bodies are now shown and logged.
Tools
read_image: Looks at PNG, JPEG, GIF and WebP files (type sniffed from the file signature, 5 MB limit). The image reaches the model in a singleusermessage after all tool responses of the turn, a shape every provider accepts.read_filepoints binary images to it. Subagents do not get this tool.- Multi-query
web_search: A newqueriesargument runs up to 4 searches in parallel and merges the results rank by rank without duplicate URLs. - Readable
web_fetch(web_content.rs): HTML is converted to Markdown (headings, links, lists, tables, code blocks), the response charset is honoured (BOM,Content-Type,<meta>), binary content types (PDF, images, archives) are refused with a clear message, and the output limit grows from 15,000 to 50,000 characters. - Task filter: The task tracker's list tool (
tracker_list_tasks) accepts astatusfilter.
Context Window & Token Management
- Output spill (
spill.rs): A tool result over 30,000 characters is cut to its first 10,000 and last 2,000 characters. The complete text is saved in a private per-user directory under the system temp dir (files older than 3 days are removed) and its path is placed in the cut, so the model can read the middle withread_file. Reading spilled files needs no confirmation. - Deterministic pruning before summarizing (
context_prune.rs): Before/compactor automatic compaction calls the model, tool results over 8,192 characters from earlier turns are trimmed to head and tail. The turn in progress is never touched, and if pruning is enough no summary is requested. - Automatic recovery from context overflow: When an API rejects a request for exceeding the context window, the conversation is compacted and the request retried once, invisibly to the consumer.
- Truncated tool calls are never executed: If a response stops because of the output token limit, its tool calls (whose arguments may be cut mid-file or mid-command) are answered with an error and the model retries in smaller pieces. A second consecutive truncation stops the loop. Applies to the TUI, headless CLI and subagents.
- Repeated-call guard (
repeat_guard.rs): At the 3rd, 5th and 8th identical consecutive tool call, a short reminder asking the model to change approach is appended to the result. It never blocks a call. - Compaction keeps the active task: The latest user prompt is never removed,
assistanttool-call /toolresponse groups are never split, an earlier summary is carried into the new one, and digest entries are longer (500 characters per request, 160 per tool argument or error).
Terminal UI
- Send-now messages (
Alt+Enter): While the agent works, a message can be handed to the model at the next safe point (between tool rounds) instead of waiting behind the queue.Enterstill queues. - Take back pending messages:
Esctakes back the newest pending message, one per press, before cancelling the generation. Cancelling no longer discards what was typed: messages that never reached the model return to the composer. - History shortcuts:
Ctrl+P/Alt+UpandCtrl+N/Alt+Downnavigate the prompt history. - Light and dark themes: The palette is picked automatically (
COREX_THEME=light|darkwins, otherwiseCOLORFGBG), with text colours kept at a 4.5:1 contrast on black or white backgrounds. - Terminal-safe visuals: An ASCII spinner is used on the Linux console and in non-UTF-8 locales, and the text caret blinks while idle.
- Footer mode badges: Auto-approve and other modes that change how tools run are spelled out in the status bar.
- Collapsed logs: Command and subagent logs show their last 5 rows when collapsed, with a single
Ctrl+Ohint in the footer instead of one per block. - Session picker: Shows a model badge (when models are mixed), relative times and a conversation preview.
- Slash command popup: Shows the cursor position and how many commands are hidden above and below, and never leaves a group header as the last visible row.
- Shared text helpers (
text.rs): Column-aware truncation that always marks a cut with…, thousands grouping and plain-text previews of Markdown.
Changed
- Resilient update check and
cx update: Release information is now resolved through three tiers: the GitHub API (usingGITHUB_TOKENorGH_TOKENwhen present), thecorex.sluisr.com/release.jsonCDN, and thereleases/latestweb redirect, which uses no API quota. The GitHub tags fallback was removed. - Release pipeline: Release notes now include an Installation & Upgrade section, and the checksum table uses aligned columns.
glob: Results are sorted newest first, 100 are shown, up to 20,000 are collected, and the complete list is saved to a file when it does not fit. Invalid patterns report an error.read_file: Lines over 2,000 characters are truncated and output is paged at 100 KB. Files that are not valid UTF-8 report a clear error.write_file: Keeps CRLF line endings when overwriting a file that uses them.edit: Reports real line numbers and says when the match only held ignoring leading or trailing whitespace. Replacement indentation is adjusted to the matched block.apply_patch: Tracks the line offset accumulated by earlier hunks, keeps the file's original context lines, limits whitespace fuzz to within 100 lines of the expected position, and no longer mistakes+++/---content lines for file headers.- MCP tools: Results flagged
isErrorare reported as tool errors, and JSON-RPC errors without an id are no longer swallowed. dynamicreasoning mode: Useslowfor turns that only answer a tool result andhighotherwise, independent of per-model settings.mediumis no longer offered for DeepSeek, which rejects it.- Gemini conversation history: Consecutive assistant messages left after collapsing unsigned tool turns are merged.
- Forensic and subagent logs: Plain ASCII layout, without box-drawing characters or symbols.
- Reasoning cache: Keys include the tool call id.
- Local LLM:
max_tokensraised from 2,048 to 4,096,reasoning_contentis streamed as reasoning, and HTTP errors show the server's message. - Release profile:
opt-levelis now"s"(size) instead of3. - Dependencies: Added
htmd,encoding_rs,markup5ever_rcdomandlibc; removedtracing-subscriberandshell-words;chronoandzipuse minimal features.
Security
- Edits require a prior read:
edit,apply_patchand overwriting withwrite_fileare refused for a file the model has not read in the session, or that changed on disk since it was read. New files are created with an atomic no-overwrite operation, so a file that appeared in the meantime is never replaced. - Reads outside the workspace ask first:
read_file,read_image,grep_search,globandlist_directoryneed approval for paths outside the workspace; an "always allow" decision is stored per tool. - More protected write paths:
.git/config,.git/info/attributes,.ssh/config,.cargo/config(.toml),~/.config/systemd/user/and.gitmodules. - Shell command safety: Environment assignments before a command are only ignored for a short allowlist (locale, terminal, pager variables and a trusted
PATH);LD_*,GIT_*,BASH_ENV,NODE_OPTIONS,PYTHONPATHand similar are rejected. Commands given with an explicit path are not auto-approved. Abbreviated long flags (--outfor--output) and clustered short flags (-ro) are detected forsort,rg,gitandtar,psis restricted so it cannot print process environments, and a working directory outside the workspace requires approval. - Subagents no longer run unattended with full privileges: They previously ran with auto-approve on and inherited the sudo password. They now run with auto-approve off and no sudo password, and any action that would need user approval is denied. Scout and Researcher stay read-only, Worker is explicitly granted file editing, and sudo, commands that touch credentials, protected config or hook paths or destructive targets (
rm -rf /,mkfs,dd if=,reboot,shutdown), and working directories outside the workspace are refused. - Fleet command classification: Command wrappers (
env,sudo, `nohu...
v0.7.0 — Fleet SSH Console (cxs), Forensic Audit, File Locks & DeepSeek Search/Fetch
Release v0.7.0
Added
Fleet & SysAdmin Multi-Server Orchestration (crates/corex-fleet, cxs)
- Direct Interactive Fleet TUI Launch (
cxs,cx --fleet): Invocations without subcommands launch directly into the live dual-pane SysAdmin console (AI agent chat on the left, live SSH terminal and node telemetry on the right). - Headless Automation CLI: Preserved scripting subcommands (
cxs status,cxs ping,cxs top,cxs telemetry,cxs run,cxs broadcast). - Interactive Remote PTY (
vt100) &/fleet wide: Native PTY terminal session with wide 3-column layout (chat | terminal | telemetry), asynchronous node polling (up to 8 in parallel), andtake_dirty()atomic flag rendering eliminating idle 60 FPS redraws. - Mandatory Sudo Escalation Guards: Enforced interactive confirmation prompts for any fleet command requiring
sudo: trueornode.sudo, wrapped in POSIXsudo -n -- sh -c '<cmd>'withshell_quote_singleescaping. - OpenSSH-Compliant Config Parser (
~/.ssh/config): SupportsKey=Valuesyntax, multiple host aliases, ignores non-hostMatchblocks, respects first-match-wins, expands~/paths, and enforces0600private file permissions. - Multi-Distro Resilient Telemetry Probing: Section-delimited parsing (
===CX_*===) withLC_ALL=C, supporting Docker overlay, ZFS, and LVM root partitions with CPU core detection.
DeepSeek Ecosystem & Native Search / Fetch Protocol
- DeepSeek Native Search & Fetch API Integration (
crates/corex-tools/src/web.rs): Direct integration with DeepSeek's officialPOST https://api.deepseek.com/v1/tools/searchandPOST https://api.deepseek.com/v1/tools/fetchendpoints for autonomous web research, markdown scraping, and query operator filtering (site:,lang:,after:,before:,-"..."). - DeepSeek-V4.1-Flash-1017 Model Engine Support: Added first-class recognition, CLI parsing (
cx -m deepseek-v4.1-flash-1017), and status display for DeepSeek's newly released model ("wish-driven programming", faster task completion, lower latency).
Security & Sandbox Hardening
- Forensic Audit Logging & 7-Day Auto-Retention (
corex-core::forensic): IntegratedForensicLoggerrecording structured audit trails to~/.corex/logs/corex-forensic-YYYY-MM-DD.logand.corex/forensic.log, capturing every tool call, shell command, file change, and LLM exchange with millisecond timestamps and 7-day retention cleanup. - Per-Path Advisory Concurrency Locking (
corex-core::file_lock): ImplementedPathGuardand per-path advisory sidecar file locking (~/.corex/locks/<hash>.lock) using FNV-1a hashing to eliminate silent lost updates across concurrent Tokio background tasks and multiple Corex processes. - Secret Leak Prevention (
Config::strip_secrets): Stripsprovider_api_keysandmcp_serversalongsideapi_keybefore persisting workspace.corex/settings.json, preventing accidental repository credential leaks. - DeepSeek API Key Isolation (
Config::endpoint):self.api_keyis strictly isolated and never forwarded as fallback to third-party endpoints unless the base URL explicitly matches. - Universal SSRF Guarding on Provider Endpoints: All resolution branches enforce
validate_base_url(&p.base_url).is_ok(), blocking insecure HTTP schemes on non-loopback hosts and embedded credentials. - HTTP Redirect Anti-SSRF Validation (
web.rs): Replaced automatic redirects with manual 5-hop redirect following, resolving DNS and validating against private IP ranges and wildcard DNS rebinders (*.nip.io,*.sslip.io,*.xip.io). - Ephemeral Sudo Credential Guard (
AskpassGuard): Enforces RAII cleanup of.askpass_credimmediately upon tool completion, timeout, or backgrounding, securing/tmp/corex-askpass-<uid>with0700permissions. - Shell Sandbox Obfuscation Defense: Blocks variable expansion (
$VAR), quote-wrapped flags (e.g.find . '-delete'), and sensitive path wildcards (cat ~/.ssh/id_*) across all shell executions, even when matchingallowed_commands. - Cancellation-Safe Bounded MCP Transport (
mcp.rs): Replaced unbounded reader with 16 MiB line-bounded reader, routed child stderr toStdio::null()to eliminate 64 KB pipe deadlocks, and sanitized environment variables passed to child MCP processes. - Fail-Closed SHA-256 Update Verification (
update.rs): Rejects updates if.sha256signature is missing, invalid, or mismatched, with a 200 MiB decompression bomb limit (MAX_EXTRACTED_BINARY_BYTES).
Performance, Memory (RAM) & Token Management
-
Visible Viewport Chat Rendering ($O(\text{viewport})$): Replaced full conversation cloning at 60 FPS with segmented index tracking (
SelectionLines), rendering only lines visible in the viewport. -
Streaming Markdown Cache (
streaming_md_cache): Caches partial markdown structures during token streaming, eliminating re-parsing from byte 0 on non-growing frames. -
Local LLM Context Shielding (
local_client.rs): Routes local models through preventative tool truncation, automated context compaction (compact_messages), and emergency history capping (24,000 tokens), preventingcontext_length_exceededcrashes inllama-serverand Ollama. -
Deterministic Background & Subagent Log Truncation: Bounded system event messages (
TASK_DONE,SUBAGENT_DONE) to 8,000 characters while retaining the last 12 KB in memory and full forensic traces on disk. -
FIM Bounded Context Windowing (
/fim): Enforces 2 MB metadata file limits and extracts a ~24 KB bidirectional context window around<FIM_HOLE>. -
Accurate Token Estimation: Refined token calculation heuristic to
s.len().div_ceil(3)and includedm.tool_callstokens to prevent prompt overflows. -
Prompt Builder TTL Cache: Caches on-disk skill lookups and memory rules for 15 seconds (
cached_skills_and_memory), eliminating redundant synchronous filesystem calls. -
Deterministic Reasoning Cache (
reasoning_cache.rs): Persists up to 100 entries with SHA-256 key hashing and FIFO eviction to~/.corex/reasoning_cache.json.
TUI, UX & Visual Identity Redesign
- Discrete Terminal Mint User Badge (
[You]): ReplacedYou:with a sleek badge in terminal mint green (#82D7A0) with dark gray brackets and auto-aligned 8-column multiline indentation. - Collapsible Reasoning Badge (
[• Thought · 2.3s]): Replaced geometric headers with a clean badge displaying real-time millisecond elapsed timer, toggled viaCtrl+T. - Multi-Line Wrapped Command Approval Boxes (
diff_view.rs): Confirmation boxes now wrap long commands and complex flag pipelines (format_boxed_wrapped) preserving all paths and flags without...truncation. - Sequential Step-by-Step Tool Approval Modal: Presents multi-tool batches individually (
[1 of N]) with options[y] allow this change,[a] allow all remaining,[n] deny, and[w] deny with feedback. - Compact Status Bar Layout: Replaced redundant badges with an ultra-compact center telemetry indicator (
1 task · 2 agents). - Global & Project Personality Guidelines: Automatically discovers and injects persistent instructions from
~/.corex/SYSTEM.md,~/.corex/COREX.md,./.corex/SYSTEM.md,./COREX.md, and./AGENTS.md. - Embedded Procedural Skills (
corex-config,corex-fleet): Added first-class built-in skills with instantaneous fallback. - Shell Autocompletions: Bundled updated completion scripts for Zsh and Bash supporting
cxs,--fleet, and--fetch, with automatic.zcompdumpcache refresh.
Fixed
- Fleet TUI Direct Invocation: Fixed issue where
cxsorcx --fleetexited immediately to bash with statusOk(())by properly initializingFleetDialogStateand entering SysAdmin mode on empty argument invocations. - Data Race / Undefined Behavior Elimination: Removed unsafe
std::env::set_varcalls in multithreaded runtime during config loading and/keyupdates. - 100% CPU Background Channel Busy Loop: Fixed
select!loop busy polling when child process stdin closes. - Grep Empty Query Display (
grep ""): Resolved discrepancy between tool schema (pattern/dir_path) and renderer (query/path). - UTF-8 Slicing Panics: Replaced raw byte slicing with
safe_truncate_stracrossjson_repair.rs,session.rs, and email markdown parsers. - Nested Truncated JSON Repair: Fixed stream truncation parser so inner braces do not cause premature closure.
- Symlink Workspace Escape Shield: Canonized paths and ancestors to ensure symlinks cannot escape workspace boundaries.
- Selective Safe Command Validation: Permitted read-only inspection commands (
hostnamectl,systemctl status/--failed,lsblk,lscpu,dmesg,vmstat,echo) with discard redirections (2>/dev/null,2>&1), while strictly preserving confirmation for destructive actions (systemctl restart/stop/kill). - Subagent ID Collision Prevention: Fixed bit-shift zeroing bug in
rand_u32with atomic sequence counters. - URL Balance Query: Stripped
/v1suffix when querying/user/balance.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| macOS Apple Silicon | corex-v0.7.0-aarch64-apple-darwin.tar.gz |
0f6ac6e561fa40d9b8282bbc6e1ca113277713e8523b27f093c4e7756ceae7a4 |
| Android Termux | corex-v0.7.0-aarch64-linux-android.tar.gz |
98a1fd35b133dead927604e9738a300dd5f4fe59cd3dda907cc2648689218b41 |
| Linux ARM64 | corex-v0.7.0-aarch64-unknown-linux-gnu.tar.gz |
afb8f4a256f77368929f5f363287a5cc8f191a5237eeae309d6aabfc0b6b43e5 |
| macOS Intel | corex-v0.7.0-x86_64-apple-darwin.tar.gz |
afbc5f3f45fc4f68d38e34f90f395d5fe286bdc059e9f8f3206c8db7b0fe5d80 |
| Windows x86_64 | corex-v0.7.0-x86_64-pc-windows-msvc.zip |
6e89f1ef29a3e14055365db76d7ff192337aba1d9d3a7458cb62311788c107b6 |
| Linux x86_64 | corex-v0.7.0-x86_64-unknown-linux-gnu.tar.gz |
`eed7b... |
v0.6.3 — Geometric Emblem Logo, Focus Guard URL Clicks & Visual Polish
Release v0.6.3
Fixed
- Terminal Window Focus & Ghost Click Protection: Resolved issue where focusing or activating the terminal window via mouse click inadvertently opened hyperlinks. Added a 400ms
FocusGainedguard and an 800ms startup grace period to strictly discard background focus clicks. - Detached URL Launcher (Zero Dependency): Removed the external
opencrate dependency in favor of native asynchronous detached process spawning (xdg-open,gio,open,powershell), completely isolating the terminal event loop from browser launch latency. - Rapid-Click Hyperlink Debouncing: Prevented multiple browser tabs from spawning upon double or rapid clicking with a 1.5s per-URL and 3.0s global debounce window.
- Conflicting Multiplexer Shortcuts: Cleaned up legacy
Alt+Downbindings that conflicted with terminal multiplexers (e.g.tmuxpane navigation).
Added
- Geometric "C" Emblem & Minimalist Static Logo: Redesigned the primary banner with an elegant geometric chevron emblem (
◢◤and◥◣) in solid satin titanium gray, accompanied by a clean, static satin-whiteCorextitle without distracting letter-shimmer animations, structured across an unbroken 2-line layout on both desktop and mobile terminals. - Uncluttered Markdown Headers: Stripped decorative geometric glyphs (
◈,◆,▸) from markdown headersh1–h3, introduced nativeh4styling, and normalized body block indentation to a clean 2 spaces. - Matte Satin Status & Telemetry Bar: Refined bottom-right model indicator and reasoning telemetry with a subdued satin-gray palette, replacing harsh neon colors with soft pastel tones.
- Smart Return-to-Bottom on
Esc: While scrolled up inspecting conversation history or reports, pressingEscimmediately snaps the view to the bottom of the feed while preserving all drafted prompt text in the composer. Double-tappingEscwithin 500ms when at the bottom continues to clear the prompt. - Auto-Scroll on Message Send: Pressing
Enterto submit a message (or auto-dequeuing queued turns) immediately snaps the viewport to the bottom so streaming AI tokens and user prompts are never obscured. - Native
EndKey Navigation: PressingEnd(orFn+Right) while scrolled up navigates directly to the bottom of the feed and advances the prompt cursor. - Comprehensive UX Test Coverage: Added exhaustive test suites verifying focus guards, URL click hit-testing, selection boundaries, draft preservation, and multi-state
Escnavigation.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| macOS Apple Silicon | corex-v0.6.3-aarch64-apple-darwin.tar.gz |
aa234319801a53a0e8e9babd5d45a757ab307c670f49fcae72f6f3cb731242e7 |
| Android Termux | corex-v0.6.3-aarch64-linux-android.tar.gz |
483729bdc47404b4f3d2d16a6f2ffe26abc312694b6062564f0ba9fa9e3c494e |
| Linux ARM64 | corex-v0.6.3-aarch64-unknown-linux-gnu.tar.gz |
d56c1928cccedd9e0b2490466ecc891c964dc9d55de9a1c3354429715cfee440 |
| macOS Intel | corex-v0.6.3-x86_64-apple-darwin.tar.gz |
6c67dbae3b5df923685c24d1efa12be6fb46c89c932a3044f7404d5f5e223a11 |
| Windows x86_64 | corex-v0.6.3-x86_64-pc-windows-msvc.zip |
7a949dc7dc08befd06cb667f1ccc184fd53a3e35993a3f7a1a9f705d83199a8d |
| Linux x86_64 | corex-v0.6.3-x86_64-unknown-linux-gnu.tar.gz |
9d3312f076a77dd8973c3d246f831fc515fbeff1eeab92fe182c9fba58489a24 |
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashFrom Source via Cargo / Crates.io
cargo install corex-cli --lockedVia Nix Flake
nix run github:sluisr/corexv0.6.2 — Strict URL Hit-Testing, Inline User Dialog & Global Chevron
Release v0.6.2
Fixed
- Strict Visual URL Click Hit-Testing: Fixed false-positive where clicking anywhere on a line containing a URL (table borders, descriptions, or whitespace) erroneously launched the browser via
open::that(). Hit-testing now uses exact visual display columns (UnicodeWidthChar), opening links only when clicked directly on the URL text. - Uncluttered Question Prompt Border: Removed awkward bracketed title tags (
─[ Pregunta TUI ]─) and redundant bullet circles (●and○), providing an unbroken, clean horizontal border matching the composer design.
Added
- Inline Bottom-Anchored User Dialog (
ask_user): Replaced centered floating popups with an elegant, non-intrusive selector integrated into the bottom composer slot. Conversation history remains 100% visible, sharp, and readable above the question. - Fast 1-Key Numeric Selection & Scrolling: Immediate option selection via number keys (
1–9) andPageUp/PageDownchat history scrolling while deciding responses. - Unified Minimalist Chevron (
›): Replaced heavy❯glyphs across all menus, drawers, and modal prompts (model_dialog,session_dialog,auth_dialog,slash_commands,sudo_dialog,diff_view, anduser_dialog) with the sleek chevron›. - Automated Release Notes Pipeline: Updated release workflow to automatically parse and publish
CHANGELOG.mdrelease notes directly to GitHub Releases alongside canonical SHA-256 asset digests.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| macOS Apple Silicon | corex-v0.6.2-aarch64-apple-darwin.tar.gz |
4b68254f0d32533d7e610845c9f69d1b310a36bcb43957fd19e77c167ce6afb4 |
| Android Termux | corex-v0.6.2-aarch64-linux-android.tar.gz |
8b486b3de9b8db5b4b6f845cedf40b3ef373a82af52585dbd8eca9e2a809a8f6 |
| Linux ARM64 | corex-v0.6.2-aarch64-unknown-linux-gnu.tar.gz |
0bc08ff40530407673b9612312311147c7b69433dda42c5dc98348af085a279e |
| macOS Intel | corex-v0.6.2-x86_64-apple-darwin.tar.gz |
fc263a4db03bae3457ffd87bcd606fe078443b7f68154de6bba635a12b53bd30 |
| Windows x86_64 | corex-v0.6.2-x86_64-pc-windows-msvc.zip |
a51b2fd2d2dd8b11a958d7224d03b93357ae7c0bef66337093f1d8c18fa20b5a |
| Linux x86_64 | corex-v0.6.2-x86_64-unknown-linux-gnu.tar.gz |
c406fa1b1a5a39c25ddf5d7dc57f6bca4c01d2bb47960afd80958dac5008a489 |
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashFrom Source via Cargo / Crates.io
cargo install corex-cli --lockedVia Nix Flake
nix run github:sluisr/corexv0.6.1 — Smart Scroll Lock, Multi-Line Tables & Embedded Skills
Corex v0.6.1 focuses on TUI layout resilience, intelligent auto-scroll management during reasoning streams, zero-latency embedded procedural skills, technical chrome minimalization, and native terminal hyperlink navigation.
Key Features & Improvements
1. Smart Scroll Lock & Jump-to-Bottom
- Uninterrupted Reading During Streaming: When scrolling up to read earlier responses while the AI is streaming tokens, auto-scroll locks in place without forcefully yanking the viewport down.
- Instant Snap-to-Bottom Shortcuts: Pressing
Space(when composer input is empty),End,Esc, or scrolling down immediately returns to the bottom and re-enables auto-scroll. - Subtle Visual Feedback: Soft-tinted border indicator on the composer while reading scrolled-up history.
2. Dynamic Multi-Line Table Word-Wrapping (wrap_cell_spans)
- Zero Data Loss: Eliminated single-line truncation with
…. Wide descriptions, long URLs, and package names automatically wrap across multiple lines within the same table row. - Geometric Grid Alignment: Automatically balances column widths and padding to preserve strict vertical border alignments (
│).
3. Embedded Built-in Skills (0.001ms Latency)
- Zero-Dependency Fallback: All 8 foundational procedural skills (
corex-about,corex-fim,corex-local-llm,corex-mcp-setup,corex-session-management,corex-slash-commands,corex-troubleshooting,corex-yolo-mode) are compiled directly into the binary with zero-cost fallback in empty or air-gapped workspaces. - Clean Tool Execution Logs: Suppressed noisy raw Markdown dumps in the chat feed when procedural skills (
activate_skill) are loaded.
4. Technical Chrome & Link Deduplication
- Clean Technical Chrome: Replaced decorative emojis across tool call banners and action spans with minimal technical indicators (
›,✓,✕). - Clean Link Deduplication: Redundant Markdown links duplicating their URL target (e.g.
[sluisr.com](https://sluisr.com)) automatically collapse into clean, styled hyperlinks. - Official Identity: Corrected official author YouTube channel to
@sluisr_.
Canonical Release Checksums (SHA-256)
| Platform | Archive File | SHA-256 Checksum |
|---|---|---|
| Linux x86_64 | corex-v0.6.1-x86_64-unknown-linux-gnu.tar.gz |
0e4536443ea068499f1777bae4b084f01626115dc426f61d0ee1ecf714a5e403 |
| Linux ARM64 | corex-v0.6.1-aarch64-unknown-linux-gnu.tar.gz |
555df3e62fa6bcd975c2acf3a538b48ad7417e127d3923d50af495a4255f814b |
| macOS Apple Silicon | corex-v0.6.1-aarch64-apple-darwin.tar.gz |
f433afde797e2e2a30fe1d7af066f064ab8901e2bfab73e353c5f64a7403fd53 |
| macOS Intel | corex-v0.6.1-x86_64-apple-darwin.tar.gz |
601af613721231fb2b380ff294444b39e4d0f34786574e6b23d3001d8a072578 |
| Android Termux | corex-v0.6.1-aarch64-linux-android.tar.gz |
5a68f8f7a294dca5dcb9704d2957354ea1d78d266e08ea4937542ac9cbe45169 |
| Windows x86_64 | corex-v0.6.1-x86_64-pc-windows-msvc.zip |
1bd75df5e31643b86662e0e694db139eaaa01eb4fa64c5e2524ea2e6f296b0f0 |
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashv0.6.0 — Autonomous Subagents, In-Place Self-Updater, Shell Autocompletions & Modular TUI
Corex v0.6.0 is a major milestone release introducing an autonomous multi-agent coordination engine with specialized subagent actors, in-place atomic self-updating, complete native shell autocompletions for all major shells, full Linux ARM64 support, resilient JSON repair parsing, and a modular architecture refactoring of the TUI.
Key Features & Architectural Improvements
1. Autonomous Multi-Agent Coordination Engine (Subagents)
- Specialized Actor Roles: Introduced
SubagentRolewith 4 specialized roles tailored for software engineering workflows:Scout: Read-only repository exploration and symbol finding at zero cost before cloud reasoning.Tester: Automated background test runner, linter verification, and compiler diagnostics in an isolated sandbox.Researcher: Documentation reader, API specification extractor, and external reference finder.Worker: General-purpose autonomous subtask executor.
- Isolated Context Boundaries: Subagents execute with dedicated isolated context memory, preventing context window bloat and prompt token exhaustion in the primary orchestrator session.
- Native Runtime Tools: Added
delegate_subagent(synchronous or background delegation) andmanage_subagents(list,status,cancel) directly exposed to the reasoning model. - Reactive Wakeup: Background subagents automatically notify the lead orchestrator upon completion without polling overhead.
2. In-Place Atomic Self-Updater (cx update / cx --upgrade / /update apply)
- Frictionless Binary Upgrades: Upgrade Corex directly from the CLI or TUI without requiring external package managers (
cargoornpm). - Cross-Platform Architecture Target Detection: Native detection for Linux x86_64, Linux ARM64, macOS Apple Silicon / Intel, Windows x86_64, and Android Termux.
- Cryptographic Signature Validation: Downloads and cryptographically verifies release payload integrity against published SHA-256 digests (
sha2). - Atomic In-Place Replacement: Replaces running binaries via filesystem rename semantics (
fs::rename), cleanly circumventing LinuxETXTBSY("Text file busy") and Windows file locking. - Interactive TUI Support: Run
/update apply(or/update force) directly inside conversation sessions to update in-place.
3. Complete Shell Autocompletions (clap_complete)
- Multi-Shell Support: Added
clap_completegenerating contextual shell autocompletion scripts for Bash, Zsh, Fish, PowerShell, and Elvish. - CLI Flag & Commands: Dedicated
--completions <shell>argument andcx completions <shell>command autocompleting flags, options, and descriptions. - Automated Installer Hook:
install.shnow automatically detects and installs completions into/usr/local/share/zsh/site-functions/_cx,/etc/bash_completion.d/cx, and~/.config/fish/completions/cx.fish.
4. Modular Architectural Overhaul of corex-tui
- Decoupled Architecture: Refactored the legacy ~5,870 LOC monolithic
app.rsinto specialized submodules undercrates/corex-tui/src/app/:mod.rs: App core lifecycle, session state, and slash command dispatcher.event_loop.rs: Async multithreaded event loop, channels, keyboard, mouse, and streaming.render.rs: Responsive Ratatui rendering pipelines, viewports, borders, and feeds.formatting.rs: Markdown renderer, syntax highlights, and visual badges.mobile.rs: Touch keyboard and portrait viewport adaptation for mobile Termux.state.rs: Reactive state, selection tracking, and command history.terminal.rs: Terminal raw mode and alternate screen setup/teardown.tests.rs: Comprehensive UI regression test suite.
5. Native Linux ARM64 (aarch64-unknown-linux-gnu) Support
- Full Architecture Parity: Added dedicated
aarch64-unknown-linux-gnutarget to release CI workflows, bringing first-class precompiled support for Raspberry Pi 4/5 64-bit, AWS Graviton, Hetzner ARM, Oracle Cloud ARM, and Docker ARM64. - Termux Separation: Clean distinction between native Linux ARM64 (
gnu) and Android Termux (aarch64-linux-android) across all installer scripts.
6. Resilient JSON Repair Engine & Unified Multi-Provider Tool Calling
parse_lenient_json: Fault-tolerant streaming parser repairing unescaped quotes, Markdown codeblock wrappers, trailing commas, single-quoted JSON, nested stringified arguments, and truncated SSE streams.- Provider Replay Test Suite: Verified end-to-end against DeepSeek V4.1, Claude 3.7 Sonnet, Google Gemini 3.x thought signatures, Ollama local models, and OpenAI parallel tool execution.
7. Interactive MCP Server Management (/mcp)
- Interactive Server Catalog: Added
/mcp catalog,/mcp add <catalog_id|custom>, and/mcp remove <name>to browse and connect external Model Context Protocol servers directly inside the TUI.
8. Security & Distribution
- Steganographic Watermark: Embedded XOR-encrypted authorship signature validation into the binary core.
- Nix Flake: Added declarative
flake.nixfor zero-install execution vianix run github:sluisr/corex. - Memory Compaction: Automatic free page release via glibc
malloc_trim(0)on Linux after high-token reasoning turns.
Installation & Upgrade
Via In-Place Self-Updater
cx updateVia npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux, macOS, Android Termux)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bashFrom Source via Cargo / Crates.io
cargo install corex-cli --lockedVia Nix Flake
nix run github:sluisr/corexv0.5.0 — Multi-Provider Protocols, Gemini Thought Signatures & Mobile UX
Corex v0.5.0 introduces comprehensive multi-provider protocol support across industry-standard AI platforms, deep integration with Google Gemini's native tool calling and thought signatures, responsive mobile viewport optimization for Android Termux, and dynamic automated checksum verification.
Key Features & Architectural Improvements
1. Multi-Provider Protocol Ecosystem
- Native Protocol Adapters: Decoupled backend architecture to natively speak distinct provider wire protocols without lossy middleman translation:
- Anthropic Claude: Dedicated
/v1/messagesServer-Sent Events (SSE) adapter with bidirectional tool execution schemas (tool_useandtool_result). - Google Gemini (AI Studio): First-class
/v1beta/openaiintegration supportinggemini-3.5-flash-lite,gemini-2.5-flash, andgemini-3.8-flash. - OpenAI Reasoning Engine: Comprehensive support for GPT-4o and reasoning architectures (
o1,o3-mini), including automated parameter sanitization (reasoning_effortmapping and temperature stripping). - Ecosystem Partners: Turnkey configurations for GitHub Models (
Azure AI Inference), Groq (high-throughput low-latency inference), OpenRouter, and Mistral AI.
- Anthropic Claude: Dedicated
- Isolated Multi-Provider Key Persistence: Multi-tenant credential management in
~/.corex/settings.json, enabling independent API key persistence across providers without configuration clobbering.
2. Gemini 3.x Streaming & Thought Signature Lifecycle
- Delta Tool Chunk Parsing: Enhanced streaming parser resilience to gracefully handle tool call chunks missing positional
indexparameters. - Google Thought Signatures: Full state preservation of mandatory
thought_signaturefields across multi-turn tool execution cycles, eliminating upstream HTTP 400 rejection errors. - Payload Sanitization: Automatic historical turn sanitization to eliminate legacy compatibility fields when interacting with Gemini APIs.
3. Mobile Vertical & Termux Responsive UX
- Touch-to-Keyboard in Android Termux: Automatic detection of portrait mobile viewports disables terminal mouse reporting by default, ensuring tap interactions open the software keyboard immediately.
- Adaptive Layout Engine: Dynamic UI restructuring on narrow terminal screens (< 68 columns):
- Responsive Header: Condensed 3-line ASCII brand banner.
- Two-Column Status Matrix: Split status row displaying active model telemetry and session context without horizontal clipping.
- Stacked Full-Width Modals: Vertical reorganization of
/model,/resume, and authentication dialogs for seamless mobile ergonomics.
4. Automated Cryptographic Verification & Dynamic NPM Pipeline
- Zero-Touch Asset Signatures: Fully automated GitHub Actions release pipeline computing and publishing standalone
.sha256checksum assets for all target architectures (Linux x86_64, macOS Apple Silicon / Intel, Windows x86_64, Android aarch64). - Dynamic Checksum Verification: The
@sluisr/corexbootstrap installer dynamically retrieves and validates cryptographic digests directly from GitHub Releases, guaranteeing binary integrity without hardcoded hash overhead.
5. Context-Driven Non-Intrusive Authentication
- Deferred Authentication Flow: Eliminated mandatory startup auth modal prompts. Corex boots cleanly to the interactive prompt and contextually prompts for credentials only when dispatching queries to an unconfigured provider.
Installation & Distribution
Via npm
npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corexPre-compiled Binary (Linux & macOS)
curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | shFrom Source via Cargo
cargo install --git https://github.com/sluisr/corex.git --force