Haleclipse / CometixCode
git clone https://github.com/Haleclipse/CometixCode.git
An unofficial Rust reimplementation of Anthropic's Claude Code terminal UI, built on iocraft
+1
stars, 24h · #9,197
+~7
stars, 7 days · #9,845
+~30
stars, 30 days · #15,791
639
★ total · +1% this week
40
forks · 11 open issues
Star history (as recorded here)
LanguageRust
LicenseAGPL-3.0
Created2026-09-20 (1mo ago)
Last push7d ago
Watchers2
OwnerUser
Links
README excerpt
CometixCode English | 简体中文 A terminal-based AI coding assistant, written in Rust as a 1:1 reimplementation of Anthropic's Claude Code. > **Unofficial project, not affiliated with Anthropic.** > This is an independent reimplementation built by reading the published > Claude Code CLI. "Claude" and "Claude Code" are trademarks of Anthropic, PBC. > Nothing here is endorsed by or supported by Anthropic. ## What this is Claude Code's terminal UI is TypeScript on React + Ink. CometixCode reproduces it in Rust on iocraft, a React-style retained-mode TUI framework that is the structural counterpart of Ink — components, hooks, declarative elements. The port follows the original file by file rather than reinventing the architecture: a TypeScript component maps to a Rust component, a hook to a hook, and deliberate deviations are recorded in the source where they happen. It builds against [CometixTUI], a fork of iocraft carrying the primitives this port needs (row-level diffing, event propagation, SIGCONT self-healing, IME cursor, bracketed paste, grid layout). It is a work in progress. Large parts of the interactive loop, tool execution, permissions, MCP and slash commands are implemented; other areas are partial. ## Sponsors CometixCode × Infistar.cc | High-Availability AI API Stable routing | 10% rates · Transparent · Failover Top models | ChatGPT · Claude · Gemini · Kimi · GLM · DeepSeek Multimodal | Text · Image · Video · Embedding / Rerank CometixCode users: bonus credits via the exclusive link . ## Building ### Prerequisites **Rust 1.88+** (edition 2024). Nothing else — no system libraries, no `pkg-config`. ### Build and run [code] The binary is `cometix`. ### Cross-compiling for Windows [code] A mingw-w64 toolchain has to be on `PATH`: four dependencies compile C or assembly (`onig_sys`, `ring`, `tree-sitter`, `tree-sitter-bash`). They link statically, so the resulting `.exe` needs no DLLs alongside it. ## ripgrep File search shells out to `rg`. Claude Code ships a packaged ripgrep inside its npm package and executes that path; CometixCode keeps the same shape — the binary is an external asset, never compiled into the executable. Resolution order: 1. `vendor/ripgrep/ - /rg` next to the executable (release archives) 2. `vendor/ripgrep/ - /rg` in the source tree (development) 3. the host's `rg` on `PATH` So either drop a pinned ripgrep under `vendor/ripgrep/`, or just have `rg` installed. `/doctor` reports which one is in use. Setting `USE_BUILTIN_RIPGREP=0` forces the host binary. ## Testing [code] `cargo test` is **not** a valid gate for this crate. It runs the whole suite as threads in one process, and this codebase has process-wide state (env vars, `OnceLock` caches) that leaks between tests as a result. `just test` runs under `cargo-nextest`, which gives each test its own process, and pins the host state a test would otherwise inherit. The justfile header explains the measurements behind that. ## Community ## Acknowledgements - **[Cl