Skip to content

Releases

CC CPP – Release

Choose a tag to compare

@mhdimo mhdimo released this 05 Nov 16:52
v0.1.0
f25c158

A C++20 rewrite of the Claude Code CLI, built on
ai-sdk-cpp and
FTXUI.

The port follows the reference implementation closely: the same tools, the
same messages, the same colours and the same terminal layout.

The program is run as cc++. The archive holds the program for
aarch64-apple-darwin; scripts/install.sh puts it where the native
installer of the reference puts it — the binary in
~/.local/share/claude/versions/<version> and a symlink in ~/.local/bin.

The notes of the release

  • The first release of the port: the whole CLI, the tools, the panels of
    the menus, the full-screen layout and the shell of the session.
  • The session runs its own shell, so that cd in one command is felt by
    the next one; the folder of the shell is taken back when it walks out of
    the folder of the session.
  • The context of the session is the size of the last call of the model, and
    the session compacts itself when the context is nearly full.
  • The output of a tool is written to the transcript whole, when the tool
    ends — it is never streamed as it arrives.
  • The panels of the plugins, of the servers of MCP and of the settings are
    the panels of the reference.
  • The install script puts the program where the native installer of the
    reference puts it: ~/.local/share/claude/versions/<version> and a
    symlink in ~/.local/bin.

Installing

scripts/package.sh                       # writes dist/claude-code-cpp-<version>-<arch>.tar.gz
scripts/install.sh ~/.local/bin/cc++     # puts it where the reference puts it

~/.local/bin has to be in your PATH.

Building from the source

cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j$(sysctl -n hw.ncpu)
./build/tests/claude_code_tests
python3 tests/golden_screens.py

The build fetches ai-sdk-cpp, Catch2 and FTXUI with FetchContent.

Reading the source

The TypeScript source of the reference is the authority for the port:
the same tool names, the same input schemas, the same result strings and
the same wording. Where the reference's exact wording cannot be recovered
from the source, the port writes an equivalent and says so in the summary
of the change.

CLAUDE.md says how the work is done here, and CONTRIBUTING.md says how
to take part in it.