返回顶部
s

smalltalkSmalltalk交互

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.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.7.0
安全检测
已通过
2,197
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

smalltalk

Smalltalk 技能

通过 MCP 执行 Smalltalk 代码并浏览实时 Squeak/Cuis 镜像。

前置条件

首先获取 ClaudeSmalltalk 仓库:

bash
git clone https://github.com/CorporateSmalltalkConsultingLtd/ClaudeSmalltalk.git

该仓库包含:

  • - Squeak 的 MCP 服务器代码(MCP-Server-Squeak.st)
  • 设置文档(SQUEAK-SETUP.md、CLAWDBOT-SETUP.md)
  • 本 Clawdbot 技能(clawdbot/)

设置

  1. 1. 设置带有 MCP 服务器的 Squeak — 参见 SQUEAK-SETUP.md
  2. 配置 Clawdbot — 参见 CLAWDBOT-SETUP.md

用法

bash

检查设置


python3 smalltalk.py --check

评估代码

python3 smalltalk.py evaluate 3 factorial python3 smalltalk.py evaluate Date today

浏览类

python3 smalltalk.py browse OrderedCollection

查看方法源码(实例侧)

python3 smalltalk.py method-source String asUppercase

查看方法源码(类侧)

python3 smalltalk.py method-source MCPServer class version python3 smalltalk.py method-source MCPServer version --class-side

列出类(可选前缀过滤)

python3 smalltalk.py list-classes Collection

获取类层次结构

python3 smalltalk.py hierarchy OrderedCollection

获取子类

python3 smalltalk.py subclasses Collection

列出所有类别

python3 smalltalk.py list-categories

列出某个类别中的类

python3 smalltalk.py classes-in-category Collections-Sequenceable

定义新类

python3 smalltalk.py define-class Object subclass: #Counter instanceVariableNames: count classVariableNames: poolDictionaries: category: MyApp

定义方法

python3 smalltalk.py define-method Counter increment count := (count ifNil: [0]) + 1. ^ count

删除方法

python3 smalltalk.py delete-method Counter increment

删除类

python3 smalltalk.py delete-class Counter

运行模式

游乐场模式(默认)

使用原始镜像,临时性。守护进程停止时更改将被丢弃。 用户说:加载 Smalltalk 技能或调用 Smalltalk——无需特殊标志。

bash

启动游乐场守护进程


nohup python3 smalltalk-daemon.py start > /tmp/daemon.log 2>&1 &

开发模式

用户提供自己的镜像/更改文件对。更改在会话间持久保存。 用户说:以开发模式加载 Smalltalk 技能,使用 ~/MyProject.image

bash

使用自定义镜像启动开发守护进程


nohup python3 smalltalk-daemon.py start --dev --image ~/MyProject.image > /tmp/daemon.log 2>&1 &

开发模式设置 SMALLTALKDEVMODE=1,使 MCP 服务器保留 .changes 文件
(而不是重定向到 /dev/null)。提供的镜像必须在其旁边有匹配的
.changes 文件。

常用命令

bash

检查状态

python3 smalltalk.py --daemon-status

停止守护进程

python3 smalltalk-daemon.py stop

以开发模式重启

python3 smalltalk-daemon.py restart --dev --image ~/MyProject.image

命令

命令描述
--check验证 VM/镜像路径和依赖项
--daemon-status
检查守护进程是否在运行 | | --debug | 调试挂起系统(发送 SIGUSR1,捕获堆栈跟踪) | | evaluate <代码> | 执行 Smalltalk 代码,返回结果 | | browse <类> | 获取类元数据(超类、实例变量、实例方法和类方法) | | method-source <类> <选择器> [--class-side] | 查看方法源码(支持类 class语法或--class-side标志) | | define-class <定义> | 创建或修改类 | | define-method <类> <源码> | 添加或更新方法 | | delete-method <类> <选择器> | 删除方法 | | delete-class <类> | 删除类 | | list-classes [前缀] | 列出类,可选过滤 | | hierarchy <类> | 获取超类链 | | subclasses <类> | 获取直接子类 | | list-categories | 列出所有系统类别 | | classes-in-category <类别> | 列出某个类别中的类 | | explain <代码> | 解释 Smalltalk 代码(需要ANTHROPICAPIKEY或OPENAIAPIKEY) | | explain-method <类> <选择器> [--class-side] [--source <代码>] | 从镜像中获取方法并解释(或使用--source/--source-file/--source-stdin绕过守护进程) | | audit-comment <类> <选择器> [--class-side] [--source <代码>] | 审计方法注释与实现(或使用--source/--source-file/--source-stdin绕过守护进程) | | audit-class <类> | 审计类中的所有方法(实例侧 + 类侧) | | generate-sunit <目标> [--force] [--class-name <名称>] | 为方法生成 SUnit 测试并归档到镜像中 |

环境变量

变量描述
SQUEAKVMPATHSqueak/Cuis VM 可执行文件路径
SQUEAKIMAGEPATH
带有 MCP 服务器的 Smalltalk 镜像路径 | | ANTHROPICAPIKEY | Anthropic Claude 的 API 密钥(LLM 工具首选) | | ANTHROPIC_MODEL | Anthropic 模型(默认:claude-opus-4-20250514) | | OPENAIAPIKEY | OpenAI 的 API 密钥(LLM 工具备用) | | OPENAI_MODEL | OpenAI 模型(默认:gpt-4o) | | LLM_PROVIDER | 强制指定 LLM 提供商:anthropic 或 openai(未设置时自动检测) |

与 Claude Code 配合使用(MCP 模式)

当 Claude Code 通过 MCP 连接到实时 Smalltalk 镜像时,explain-method 和 audit-comment 可以使用预获取的源代码,而无需运行中的守护进程。使用 --source、--source-file 或 --source-stdin 直接传递方法源码:

bash

内联源码(通过 MCP 获取,在命令行传递)


python3 smalltalk.py explain-method SmallInteger + --source + aNumber ^ super + aNumber

从文件读取源码

python3 smalltalk.py audit-comment Integer factorial --source-file /tmp/factorial.st

通过标准输入传递源码

echo printString ^ self printStringLimitedTo: 50000 | python3 smalltalk.py explain-method Object printString --source-stdin

这三个源码标志互斥。当未提供任何标志时,将像以前一样使用守护进程。

生成 SUnit 测试

generate-sunit 命令使用 LLM 为 Smalltalk 方法生成 SUnit 测试用例,并将其直接归档到运行中的镜像:

bash

为单个方法生成测试


python3 smalltalk.py generate-sunit String>>asUppercase

为多个方法生成测试

python3 smalltalk.py generate-sunit Random>>next Random>>nextInt: Random>>seed:

为整个类生成测试(所有实例方法)

python3 smalltalk.py generate-sunit OrderedCollection

为类侧方法生成测试

python3 smalltalk.py generate-sunit Date class>>today

自定义测试类名称

python3 smalltalk.py generate-sunit String>>asUppercase --class-name MyStringTests

覆盖现有测试类

python3 smalltalk.py generate-sunit String>>asUppercase --force

运行生成的测试

python3 smalltalk.py evaluate StringGeneratedTest buildSuite run printString

生成的 TestCase

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 smalltalk-1776386828 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 smalltalk-1776386828 技能

通过命令行安装

skillhub install smalltalk-1776386828

下载

⬇ 下载 smalltalk v1.7.0(免费)

文件大小: 28.35 KB | 发布时间: 2026-4-17 14:40

v1.7.0 最新 2026-4-17 14:40
**Dev mode, daemon support, and LLM code explanation/testing tools added.**

- Added support for persistent dev mode with user-supplied images and changes file.
- Introduced background daemon (`smalltalk-daemon.py`) for playground and dev workflows.
- Expanded CLI with commands for explaining code and methods, LLM-aided comment audit, class audit, and automated SUnit test generation.
- New environment variables and CLI flags for Anthropic/OpenAI LLM configuration.
- Improved method source handling, now supporting class-side methods with new syntax/flag.
- Added new documentation sections for modes, commands, and LLM-enabled workflows.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部