Repository navigation
Releases
CC CPP – Release
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
cdin 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.pyThe 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.