Guidance for Claude Code when working on this repository.
main: Stable releases only. Do not commit directly.dev: Active development. All work here.
- NEVER bump version numbers unless explicitly asked
- NEVER commit changes unless explicitly asked
- NEVER read git-ignored files unless explicitly asked
- NEVER use emojis in documentation
- Use
git ls-tree -r HEADto find project files - Use portable shebangs -
#!/usr/bin/env bash,#!/usr/bin/env python3, etc.
supex/
├── driver/ # Python MCP driver + CLI
│ └── src/supex_driver/
│ ├── cli/ # CLI commands
│ ├── connection/ # SketchUp socket connection
│ └── mcp/ # MCP server
├── runtime/ # Ruby SketchUp extension
│ └── src/
│ ├── supex_runtime.rb # Extension entry point
│ └── supex_runtime/ # Extension modules
├── docs/ # Documentation
│ └── agents/ # Agent prompts (symlinked as supex-docs/)
├── docgen/ # SketchUp API doc generator
├── stdlib/ # Standard library (Ruby helpers)
├── scripts/ # Development scripts
└── examples/ # Example projects (orphan branches)
MCP-based platform connecting AI agents to SketchUp:
- Python MCP Driver (
driver/) - FastMCP server exposing tools to AI - Ruby Runtime (
runtime/) - SketchUp extension executing commands - Socket Communication - TCP on localhost:9876 (default)
# Launch SketchUp with extension
./scripts/launch-sketchup.sh
# CLI commands
./supex status
./supex info
./supex reload
# Run tests
cd driver && uv run pytest tests/
# Build production .rbz
cd runtime && bundle exec rake buildDriver (Python):
driver/src/supex_driver/mcp/server.py- MCP server and toolsdriver/src/supex_driver/connection/connection.py- Socket connectiondriver/src/supex_driver/cli/main.py- CLI implementation
Runtime (Ruby):
runtime/src/supex_runtime.rb- Extension loaderruntime/src/supex_runtime/main.rb- Main extension code
Scripts:
scripts/launch-sketchup.sh- Development launchermcp- MCP server entry pointsupex- CLI entry point
User projects symlink docs/agents/ as supex-docs/ in their project root. Therefore:
- Files in
docs/agents/(prompt.md, workflow.md, etc.) should reference paths assupex-docs/... - The exception is
README.mdwhich usesdocs/agents/because it describes this repository's structure for human readers, not agent consumption