A native macOS app for Claude Code — a real Mac client instead of a terminal tab.
You get a proper sidebar of sessions (group them into folders, drag to reorder), a transcript that scrolls instantly even when the conversation gets long, responses that stream in live, and native permission prompts when Claude wants to run something. Built in SwiftUI + AppKit; runs on macOS 14 (Sonoma) and up.
Grab the latest signed, notarized .dmg from the Releases page, open it, and drag CCTerm to your Applications folder.
Prefer to build it yourself? Read on.
You'll need:
- macOS 14+ and Xcode 26.3+ — run
xcodebuild -runFirstLaunchonce after installing. - Go — the bundled
fzfsubmodule is compiled during the build (brew install go). - Bun — used to build the JavaScript bundles (
brew install oven-sh/bun/bun, or see bun.sh).
Clone it (submodules and all):
git clone --recurse-submodules https://github.com/wasd96040501/ccterm.git
cd cctermPoint the build at your signing identity — copy the template and drop in your Apple Developer Team ID (Xcode → Settings → Accounts):
cp macos/Local.xcconfig.template macos/Local.xcconfig
# then edit macos/Local.xcconfig: DEVELOPMENT_TEAM = YOUR_TEAM_IDThen build:
make build # Debug build
make release # Release build
make install # build Release and copy it to /Applications
make clean # wipe build artifactsAlways go through make — don't call the scripts under macos/scripts/ directly. Forgot --recurse-submodules? The first make build initializes submodules for you.
make test-unit # run the unit tests
make test-unit FILTER=<ClassName> # run a single test class
make fmt # format sources (needs `brew install swift-format`)
make logs # tail this build's logs liveRun make fmt before opening a PR. Architecture and conventions live in CLAUDE.md, with more detailed notes in the per-area CLAUDE.md files next to the code they cover.