smalltalk
Interact with live Smalltalk image (Cuis or Squeak). Use for evaluating Smalltalk code, browsing classes, viewing method source, defining classes/methods, querying hierarchy and categories.
Install
mkdir -p .claude/skills/smalltalk && curl -L -o skill.zip "https://mcp.directory/api/skills/download/5055" && unzip -o skill.zip -d .claude/skills/smalltalk && rm skill.zipInstalls to .claude/skills/smalltalk
About this skill
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 (instance side)
python3 smalltalk.py method-source String asUppercase
# View method source (class side)
python3 smalltalk.py method-source "MCPServer class" version
python3 smalltalk.py method-source MCPServer version --class-side
# 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
Operating Modes
Playground (Default)
Stock image, ephemeral. Changes are discarded when daemon stops. User says: "load Smalltalk skill" or "invoke Smalltalk" — no special flags.
# Start playground daemon
nohup python3 smalltalk-daemon.py start > /tmp/daemon.log 2>&1 &
Dev Mode
User supplies their own image/changes pair. Changes persist across sessions. User says: "load Smalltalk skill in dev mode with ~/MyProject.image"
# Start dev daemon with custom image
nohup python3 smalltalk-daemon.py start --dev --image ~/MyProject.image > /tmp/daemon.log 2>&1 &
Dev mode sets SMALLTALK_DEV_MODE=1 so the MCP server keeps the .changes file
(instead of redirecting to /dev/null). The supplied image must have a matching
.changes file alongside it.
Common Commands
# Check status
python3 smalltalk.py --daemon-status
# Stop daemon
python3 smalltalk-daemon.py stop
# Restart in dev mode
python3 smalltalk-daemon.py restart --dev --image ~/MyProject.image
Commands
| Command | Description |
|---|---|
--check | Verify VM/image paths and dependencies |
--daemon-status | Check if daemon is running |
--debug | Debug hung system (sends SIGUSR1, captures stack trace) |
evaluate <code> | Execute Smalltalk code, return result |
browse <class> | Get class metadata (superclass, ivars, instance methods and classMethods) |
method-source <class> <selector> [--class-side] | View method source code (supports "Class class" syntax or --class-side flag) |
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 |
explain <code> | Explain Smalltalk code (requires ANTHROPIC_API_KEY or OPENAI_API_KEY) |
explain-method <class> <sel> [--class-side] [--source <code>] | Fetch method from image and explain it (or use --source/--source-file/--source-stdin to bypass daemon) |
audit-comment <class> <sel> [--class-side] [--source <code>] | Audit method comment vs implementation (or use --source/--source-file/--source-stdin to bypass daemon) |
audit-class <class> | Audit all methods in a class (instance + class side) |
generate-sunit <targets> [--force] [--class-name <name>] | Generate SUnit tests for methods and file into image |
Environment Variables
| Variable | Description |
|---|---|
SQUEAK_VM_PATH | Path to Squeak/Cuis VM executable |
SQUEAK_IMAGE_PATH | Path to Smalltalk image with MCP server |
ANTHROPIC_API_KEY | API key for Anthropic Claude (preferred for LLM tools) |
ANTHROPIC_MODEL | Anthropic model (default: claude-opus-4-20250514) |
OPENAI_API_KEY | API key for OpenAI (fallback for LLM tools) |
OPENAI_MODEL | OpenAI model (default: gpt-4o) |
LLM_PROVIDER | Force LLM provider: anthropic or openai (auto-detected if not set) |
Using with Claude Code (MCP mode)
When Claude Code has a live Smalltalk image connected via MCP, explain-method and audit-comment can use pre-fetched source code instead of requiring a running daemon. Use --source, --source-file, or --source-stdin to pass the method source directly:
# Inline source (fetched via MCP, passed on command line)
python3 smalltalk.py explain-method SmallInteger + --source "+ aNumber <primitive: 1> ^ super + aNumber"
# Source from a file
python3 smalltalk.py audit-comment Integer factorial --source-file /tmp/factorial.st
# Source piped via stdin
echo "printString ^ self printStringLimitedTo: 50000" | python3 smalltalk.py explain-method Object printString --source-stdin
The three source flags are mutually exclusive. When none is provided, the daemon is used as before.
Generating SUnit Tests
The generate-sunit command uses an LLM to generate SUnit test cases for Smalltalk methods and files them directly into the running image:
# Generate tests for a single method
python3 smalltalk.py generate-sunit "String>>asUppercase"
# Generate tests for multiple methods
python3 smalltalk.py generate-sunit "Random>>next" "Random>>nextInt:" "Random>>seed:"
# Generate tests for an entire class (all instance methods)
python3 smalltalk.py generate-sunit "OrderedCollection"
# Generate tests for class-side methods
python3 smalltalk.py generate-sunit "Date class>>today"
# Custom test class name
python3 smalltalk.py generate-sunit "String>>asUppercase" --class-name MyStringTests
# Overwrite existing test class
python3 smalltalk.py generate-sunit "String>>asUppercase" --force
# Run the generated tests
python3 smalltalk.py evaluate "StringGeneratedTest buildSuite run printString"
The generated TestCase uses standard SUnit assertions (assert:, assert:equals:, deny:, should:raise:) and is filed into a GeneratedSUnit-* category.
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- MCPServer version 7+ required (v7 adds class-side method support)
- Playground mode: ephemeral, .changes → /dev/null
- Dev mode: persistent, .changes kept, requires
--dev --image PATH
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversEnhance software testing with Playwright MCP: Fast, reliable browser automation, an innovative alternative to Selenium s
Empower AI with the Exa MCP Server—an AI research tool for real-time web search, academic data, and smarter, up-to-date
Interactive MCP server for collecting user feedback and executing commands during AI-assisted development. Features a we
Integrate seamlessly with the Mux Video and Data Platform for easy video uploads, live stream control, analytics, and pe
Capture live webcam images or screenshots easily. Supports screenshot on Mac, screen snip on Mac, and screenshot screen
Create interactive visualizations and charts with VChart, a powerful data analysis tool and pie chart maker for flexible
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.