A native Anthropic API chat client for classic Mac OS 9 (PowerPC).
Clawssic runs as a Platinum-era Mac app and talks to the Anthropic API over TLS 1.3 via Certainly. It supports tool-calling, including a run_applescript tool that gives the model enough leverage to drive the Finder and most scriptable classic-Mac apps.
src/— the Clawssic chat client (Retro68 / GCC 12, C99) plus the sources for the scriptrunner helper app that Clawssic finds by creator codeCwSR(the "Classic Control Agent") for Apple Event dispatch. See classic-control for the host-side MCP bridge that talks to the same helper.data/prompts/— per-app system prompts (Finder, AppleWorks, FileMaker, CodeWarrior)data/System Prompt— base system prompt wired into Clawssic at runtimeprompts/— prompts for host-side Claude Code usagedocs/— design specs and implementation plans
- Retro68 toolchain on
PATH(GCC 12 PowerPC cross-compiler) - Certainly cloned somewhere CMake can find it (sibling directory works)
- CMake 3.12+
- A Mac OS 9 VM (SheepShaver or QEMU) or a real PowerMac
- CodeWarrior Pro 7 on OS 9 to build the scriptrunner helper (a few calls into the OS 9 toolbox aren't reachable from Retro68-built code)
mkdir -p build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$RETRO68/cmake/retroppc.toolchain.cmake ..
cmake --build . --target Clawssic_APPL
The build produces build/Clawssic.bin and build/Clawssic.dsk.
The scriptrunner helper is a small CodeWarrior-compiled app that lives alongside Clawssic on OS 9. Clawssic finds it by creator code CwSR and sends misc/dosc Apple Events to execute AppleScript against whatever app the model is targeting.
Sources in this repo:
src/script_runner.c— main helper appsrc/sr_file_tools.c,src/sr_screenshot.c— file I/O and screen-capture toolssrc/tcp_server.c,src/json_lite.c— TCP listener and JSON protocol used by the host-side classic-control MCP bridge
In CodeWarrior on OS 9:
- Create a new Classic Toolbox project
- Add the five source files above
- Set output file creator to
CwSR, type toAPPL - Build
The same helper serves both Clawssic (via Apple Events) and classic-control (via TCP).
Retro68's .dsk has no partition map, so Mac OS 9 won't mount it directly. To deploy:
- Quit the VM
- Convert qcow2 to raw:
qemu-img convert -O raw vm.qcow2 vm.raw - Mount on macOS:
hdiutil attach -imagekey diskimage-class=CRawDiskImage vm.raw - Copy
build/Clawssic.bin+data/contents to the mounted disk'sClawssic/folder hdiutil detach, convert back to qcow2, relaunch- In OS 9, decode
Clawssic.binvia StuffIt Expander
On first launch, Clawssic reads Clawssic Prefs (a plain text file next to the app) for configuration:
api_key=sk-ant-YOUR-KEY-HERE
model=claude-sonnet-4-6
max_tokens=32000
system_prompt_file=Clawssic:Prompts:Finder.txt
The prefs file stays on the VM — Clawssic never phones home for credentials.
- certainly — the TLS 1.2/1.3 library Clawssic uses for HTTPS
- classic-control — MCP server that lets Claude Code on a modern Mac drive the same scriptrunner helper
Personal side project. It runs. Not production-grade; see Certainly's security notes before pointing this at anything that matters.
MIT — see LICENSE.