Skip to content

Releases: sluisr/corex

v0.8.3 — API Key Replacement, Termux Touch Scrolling & zip 9.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 08:33

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 /help described 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, E in /model replaces the key of the highlighted provider, a 401 tells you to run /key, and saving a DeepSeek key warns when COREX_API_KEY or DEEPSEEK_API_KEY holds a different one, since the environment overrides settings.json on 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=0 or F2 turns it off for good; the pace-based detection (COREX_TOUCH_SCROLL_MS, 0 disables it) stays as the fallback while it is off.
  • /keyboard on Android / Termux: It ran termux-keyboard, a command termux-api does 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 update on Android / Termux: It answered "Auto-update is not supported on this platform". The Termux build targets Android, where Rust's target_os is android, not linux, so the platform check found no match; the Termux branch inside the Linux case never ran in the published binary. It now resolves to the aarch64-linux-android release archive.
  • Links did not open on Android / Termux: Opening a link only knew xdg-open, open and rundll32, so on Android it did nothing. It now uses termux-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 of DeepSeek-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

  • zip 2.4.2 to 9.1.0: Fixes RUSTSEC-2026-0367, 0368 and 0369, which concern ZipArchive::extract() (symbolic links pointing outside the destination and SUID/SGID bits preserved on extraction). Corex never called extract(): 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 are paste (unmaintained) and two soundness notes on lru, both pulled in by ratatui.


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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

From Source via Cargo / Crates.io

cargo install corex-cli --locked

Via Nix Flake

nix run github:sluisr/corex

v0.8.2 — Web Fetch Without Prompts, Updater Fix & TLS Dependency Updates

Choose a tag to compare

@github-actions github-actions released this 25 Oct 00:00

Release v0.8.2

Fixed

  • cx update reporting "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's release.json is 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_fetch no 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. Any web_fetch rules saved in allowed_commands are now ignored.

Security

  • Dependency updates: rustls 0.23.43 to 0.23.46, rustls-webpki 0.103.15 to 0.103.16, webpki-roots 1.0.9 to 1.0.11 and tokio 1.53.1 to 1.54.1, fixing the RustSec advisories reported by the dependency audit for the TLS stack. The advisories for zip 2.4.2 (RUSTSEC-2026-0367, 0368 and 0369) concern extract(), which Corex does not call, and remain until zip can 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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

From Source via Cargo / Crates.io

cargo install corex-cli --locked

Via Nix Flake

nix run github:sluisr/corex

v0.8.1 — Clipboard Image Paste, Minimal Exit Summary & Approval Dialog Fix

Choose a tag to compare

@github-actions github-actions released this 24 Oct 23:17

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+V pastes its text as usual.
  • The tag behaves as one piece: It moves, and is deleted, as a whole with the arrow keys, Backspace and Delete, 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) or xclip (X11), and macOS through pngpaste when 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 /compact summaries.

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 or NO_COLOR is 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_fetch to a host not yet allowed. The search itself never needed it.
  • Empty [You] row: The internal message that carries the images loaded by read_image is 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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

From Source via Cargo / Crates.io

cargo install corex-cli --locked

Via Nix Flake

nix run github:sluisr/corex

v0.8.0 — Claude 5.x, Output Spill & Context Pruning, Read-Before-Edit Safety & Sandboxed Subagents

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:38

Release v0.8.0

Added

Anthropic (Claude) Provider

  • Claude 5.x model catalog: claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5 and claude-fable-5-1 replace 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 as adaptive for Claude 4.6+/5.x and as a fixed budget_tokens budget for 3.7 and 4.0–4.5. temperature is omitted where the API rejects it (4.7+), output_config.effort is mapped from the reasoning setting (including xhigh), and max_tokens follows 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_thinking and signature_delta are 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_control of type ephemeral; cache_read_input_tokens and cache_creation_input_tokens are counted in prompt usage and cache hit statistics.
  • Images in user messages are sent as native image blocks (base64 data: 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_tokens and model_context_window_exceeded stop 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 single user message after all tool responses of the turn, a shape every provider accepts. read_file points binary images to it. Subagents do not get this tool.
  • Multi-query web_search: A new queries argument 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 a status filter.

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 with read_file. Reading spilled files needs no confirmation.
  • Deterministic pruning before summarizing (context_prune.rs): Before /compact or 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, assistant tool-call / tool response 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. Enter still queues.
  • Take back pending messages: Esc takes 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+Up and Ctrl+N / Alt+Down navigate the prompt history.
  • Light and dark themes: The palette is picked automatically (COREX_THEME=light|dark wins, otherwise COLORFGBG), 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+O hint 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 (using GITHUB_TOKEN or GH_TOKEN when present), the corex.sluisr.com/release.json CDN, and the releases/latest web 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 isError are reported as tool errors, and JSON-RPC errors without an id are no longer swallowed.
  • dynamic reasoning mode: Uses low for turns that only answer a tool result and high otherwise, independent of per-model settings. medium is 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_tokens raised from 2,048 to 4,096, reasoning_content is streamed as reasoning, and HTTP errors show the server's message.
  • Release profile: opt-level is now "s" (size) instead of 3.
  • Dependencies: Added htmd, encoding_rs, markup5ever_rcdom and libc; removed tracing-subscriber and shell-words; chrono and zip use minimal features.

Security

  • Edits require a prior read: edit, apply_patch and overwriting with write_file are 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, glob and list_directory need 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, PYTHONPATH and similar are rejected. Commands given with an explicit path are not auto-approved. Abbreviated long flags (--out for --output) and clustered short flags (-ro) are detected for sort, rg, git and tar, ps is 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...
Read more

v0.7.0 — Fleet SSH Console (cxs), Forensic Audit, File Locks & DeepSeek Search/Fetch

Choose a tag to compare

@github-actions github-actions released this 17 Oct 15:47

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), and take_dirty() atomic flag rendering eliminating idle 60 FPS redraws.
  • Mandatory Sudo Escalation Guards: Enforced interactive confirmation prompts for any fleet command requiring sudo: true or node.sudo, wrapped in POSIX sudo -n -- sh -c '<cmd>' with shell_quote_single escaping.
  • OpenSSH-Compliant Config Parser (~/.ssh/config): Supports Key=Value syntax, multiple host aliases, ignores non-host Match blocks, respects first-match-wins, expands ~/ paths, and enforces 0600 private file permissions.
  • Multi-Distro Resilient Telemetry Probing: Section-delimited parsing (===CX_*===) with LC_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 official POST https://api.deepseek.com/v1/tools/search and POST https://api.deepseek.com/v1/tools/fetch endpoints 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): Integrated ForensicLogger recording structured audit trails to ~/.corex/logs/corex-forensic-YYYY-MM-DD.log and .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): Implemented PathGuard and 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): Strips provider_api_keys and mcp_servers alongside api_key before persisting workspace .corex/settings.json, preventing accidental repository credential leaks.
  • DeepSeek API Key Isolation (Config::endpoint): self.api_key is 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_cred immediately upon tool completion, timeout, or backgrounding, securing /tmp/corex-askpass-<uid> with 0700 permissions.
  • 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 matching allowed_commands.
  • Cancellation-Safe Bounded MCP Transport (mcp.rs): Replaced unbounded reader with 16 MiB line-bounded reader, routed child stderr to Stdio::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 .sha256 signature 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), preventing context_length_exceeded crashes in llama-server and 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 included m.tool_calls tokens 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]): Replaced You: 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 via Ctrl+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 .zcompdump cache refresh.

Fixed

  • Fleet TUI Direct Invocation: Fixed issue where cxs or cx --fleet exited immediately to bash with status Ok(()) by properly initializing FleetDialogState and entering SysAdmin mode on empty argument invocations.
  • Data Race / Undefined Behavior Elimination: Removed unsafe std::env::set_var calls in multithreaded runtime during config loading and /key updates.
  • 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_str across json_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_u32 with atomic sequence counters.
  • URL Balance Query: Stripped /v1 suffix 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...
Read more

v0.6.3 — Geometric Emblem Logo, Focus Guard URL Clicks & Visual Polish

Choose a tag to compare

@github-actions github-actions released this 13 Oct 22:45

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 FocusGained guard and an 800ms startup grace period to strictly discard background focus clicks.
  • Detached URL Launcher (Zero Dependency): Removed the external open crate 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+Down bindings that conflicted with terminal multiplexers (e.g. tmux pane 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-white Corex title 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 headers h1–h3, introduced native h4 styling, 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, pressing Esc immediately snaps the view to the bottom of the feed while preserving all drafted prompt text in the composer. Double-tapping Esc within 500ms when at the bottom continues to clear the prompt.
  • Auto-Scroll on Message Send: Pressing Enter to 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 End Key Navigation: Pressing End (or Fn+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 Esc navigation.

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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

From Source via Cargo / Crates.io

cargo install corex-cli --locked

Via Nix Flake

nix run github:sluisr/corex

v0.6.2 — Strict URL Hit-Testing, Inline User Dialog & Global Chevron

Choose a tag to compare

@github-actions github-actions released this 13 Oct 18:50

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) and PageUp/PageDown chat 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, and user_dialog) with the sleek chevron ›.
  • Automated Release Notes Pipeline: Updated release workflow to automatically parse and publish CHANGELOG.md release 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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

From Source via Cargo / Crates.io

cargo install corex-cli --locked

Via Nix Flake

nix run github:sluisr/corex

v0.6.1 — Smart Scroll Lock, Multi-Line Tables & Embedded Skills

Choose a tag to compare

@github-actions github-actions released this 13 Oct 17:57

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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

v0.6.0 — Autonomous Subagents, In-Place Self-Updater, Shell Autocompletions & Modular TUI

Choose a tag to compare

@github-actions github-actions released this 13 Oct 11:12

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 SubagentRole with 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) and manage_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 (cargo or npm).
  • 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 Linux ETXTBSY ("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_complete generating contextual shell autocompletion scripts for Bash, Zsh, Fish, PowerShell, and Elvish.
  • CLI Flag & Commands: Dedicated --completions <shell> argument and cx completions <shell> command autocompleting flags, options, and descriptions.
  • Automated Installer Hook: install.sh now 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.rs into specialized submodules under crates/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-gnu target 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.nix for zero-install execution via nix 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 update

Via npm

npm install -g @sluisr/corex
# or run directly:
npx @sluisr/corex

Pre-compiled Binary (Linux, macOS, Android Termux)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | bash

From Source via Cargo / Crates.io

cargo install corex-cli --locked

Via Nix Flake

nix run github:sluisr/corex

v0.5.0 — Multi-Provider Protocols, Gemini Thought Signatures & Mobile UX

Choose a tag to compare

@github-actions github-actions released this 10 Oct 20:25

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/messages Server-Sent Events (SSE) adapter with bidirectional tool execution schemas (tool_use and tool_result).
    • Google Gemini (AI Studio): First-class /v1beta/openai integration supporting gemini-3.5-flash-lite, gemini-2.5-flash, and gemini-3.8-flash.
    • OpenAI Reasoning Engine: Comprehensive support for GPT-4o and reasoning architectures (o1, o3-mini), including automated parameter sanitization (reasoning_effort mapping and temperature stripping).
    • Ecosystem Partners: Turnkey configurations for GitHub Models (Azure AI Inference), Groq (high-throughput low-latency inference), OpenRouter, and Mistral AI.
  • 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 index parameters.
  • Google Thought Signatures: Full state preservation of mandatory thought_signature fields 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 .sha256 checksum assets for all target architectures (Linux x86_64, macOS Apple Silicon / Intel, Windows x86_64, Android aarch64).
  • Dynamic Checksum Verification: The @sluisr/corex bootstrap 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/corex

Pre-compiled Binary (Linux & macOS)

curl -fsSL https://raw.githubusercontent.com/sluisr/corex/main/install.sh | sh

From Source via Cargo

cargo install --git https://github.com/sluisr/corex.git --force