smalltalk
⚠Review·Scanned 2/18/2026
This skill provides a CLI (smalltalk.py) to control Squeak/Cuis images over MCP (evaluate code, browse classes, define methods). It launches local binaries via subprocess.Popen (e.g., cmd = ["xvfb-run","-a", self.vm_path, self.image_path, "--mcp"]) and instructs git clone https://github.com/CorporateSmalltalkConsultingLtd/ClaudeSmalltalk.git.
from clawhub.ai·v3a423e5·19.4 KB·0 installs
Scanned from 1.0.1 at 3a423e5 · Transparency log ↗
$ vett add clawhub.ai/johnmci/smalltalkReview findings below
Smalltalk Skill
Execute Smalltalk code and browse live Squeak/Cuis images via MCP.
Prerequisites
Get the ClaudeSmalltalk repo first:
git clone https://github.com/CorporateSmalltalkConsultingLtd/ClaudeSmalltalk.git
This repo contains:
- MCP server code for Squeak (
MCP-Server-Squeak.st) - Setup documentation (
SQUEAK-SETUP.md,CLAWDBOT-SETUP.md) - This Clawdbot skill (
clawdbot/)
Setup
- Set up Squeak with MCP server — see SQUEAK-SETUP.md
- Configure Clawdbot — see CLAWDBOT-SETUP.md
Usage
# Check setup
python3 smalltalk.py --check
# Evaluate code
python3 smalltalk.py evaluate "3 factorial"
python3 smalltalk.py evaluate "Date today"
# Browse a class
python3 smalltalk.py browse OrderedCollection
# View method source
python3 smalltalk.py method-source String asUppercase
# List classes (with optional prefix filter)
python3 smalltalk.py list-classes Collection
# Get class hierarchy
python3 smalltalk.py hierarchy OrderedCollection
# Get subclasses
python3 smalltalk.py subclasses Collection
# List all categories
python3 smalltalk.py list-categories
# List classes in a category
python3 smalltalk.py classes-in-category "Collections-Sequenceable"
# Define a new class
python3 smalltalk.py define-class "Object subclass: #Counter instanceVariableNames: 'count' classVariableNames: '' poolDictionaries: '' category: 'MyApp'"
# Define a method
python3 smalltalk.py define-method Counter "increment
count := (count ifNil: [0]) + 1.
^ count"
# Delete a method
python3 smalltalk.py delete-method Counter increment
# Delete a class
python3 smalltalk.py delete-class Counter
Commands
| Command | Description |
|---|---|
--check | Verify VM/image paths and dependencies |
--debug | Debug hung system (sends SIGUSR1, captures stack trace) |
evaluate <code> | Execute Smalltalk code, return result |
browse <class> | Get class metadata (superclass, ivars, methods) |
method-source <class> <selector> | View method source code |
define-class <definition> | Create or modify a class |
define-method <class> <source> | Add or update a method |
delete-method <class> <selector> | Remove a method |
delete-class <class> | Remove a class |
list-classes [prefix] | List classes, optionally filtered |
hierarchy <class> | Get superclass chain |
subclasses <class> | Get immediate subclasses |
list-categories | List all system categories |
classes-in-category <cat> | List classes in a category |
Environment Variables
| Variable | Description |
|---|---|
SQUEAK_VM_PATH | Path to Squeak/Cuis VM executable |
SQUEAK_IMAGE_PATH | Path to Smalltalk image with MCP server |
Notes
- Requires xvfb for headless operation on Linux servers
- Uses Squeak 6.0 MCP server (GUI stays responsive if display available)
saveImageintentionally excluded for safety