Jasper
Visual Studio Code extension to support GemStone/S IDE
Install / Use
claude mcp add GemTalk -- npx -y github:GemTalk/JasperIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Customer SupportSupported Platforms
Tags
Our assessment of Jasper
Jasper scores 35/100 on our quality scale, 320th of 322 Customer Support skills we index.
Its MCP Server is 134 KB long, written without headings and no code examples: long enough that it reads more like full documentation than a focused instruction file, which agents can find harder to follow.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Jasper compared with similar skills
All 4 of these similar skills score higher than Jasper; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| Jasper (this skill)by GemTalk | 35 | 0 | — | MCP Server |
| Agent-Reachby Panniantong | 100 | 98.2k | 1d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.5k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.4k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 88.1k | today | MCP Server |
Frequently asked questions
- How do I install Jasper?
- Run
claude mcp add GemTalk -- npx -y github:GemTalk/Jasper. The install tabs above show the steps for each supported agent. - Which AI agents does Jasper work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is Jasper safe to use?
- It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is Jasper still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHub{
"name": "gemstone-ide",
"displayName": "Jasper: A GemStone Smalltalk IDE",
"description": "GemStone/S IDE for Visual Studio Code",
"version": "1.15.0",
"publisher": "gemtalksystems",
"license": "MIT",
"author": "James Foster",
"homepage": "https://github.com/GemTalk/Jasper#readme",
"repository": {
"type": "git",
"url": "https://github.com/GemTalk/Jasper"
},
"bugs": {
"url": "https://github.com/GemTalk/Jasper/issues"
},
"engines": {
"vscode": "^1.101.0",
"node": ">=22.15.1"
},
"devEngines": {
"packageManager": {
"name": "npm",
"version": ">=11.16.0",
"onFail": "error"
},
"runtime": {
"name": "node",
"version": "^22.15.1 || ^24.19.0",
"onFail": "error"
}
},
"icon": "resources/gemstone-icon.png",
"categories": [
"Debuggers",
"Programming Languages"
],
"keywords": [
"GemStone",
"Smalltalk",
"Database",
"Object Database",
"IDE"
],
"extensionKind": [
"workspace"
],
"activationEvents": [
"onNotebook:jupyter-notebook",
"onStartupFinished",
"onFileSystem:gemstone",
"workspaceContains:**/rowan/project.ston"
],
"main": "./client/out/extension.js",
"contributes": {
"configurationDefaults": {
"[gemstone-smalltalk]": {
"editor.minimap.enabled": false
},
"[gemstone-method]": {
"editor.minimap.enabled": false
},
"[gemstone-class-comment]": {
"editor.wordWrap": "on",
"editor.minimap.enabled": false
}
},
"languages": [
{
"id": "gemstone-topaz",
"aliases": [
"GemStone (Topaz)",
"Topaz"
],
"extensions": [
".gs",
".tpz"
],
"configuration": "./language-configuration.json"
},
{
"id": "gemstone-tonel",
"aliases": [
"GemStone (Tonel)",
"Tonel"
],
"extensions": [
".st"
],
"configuration": "./language-configuration.json"
},
{
"id": "gemstone-smalltalk",
"aliases": [
"GemStone (Smalltalk)",
"Smalltalk"
],
"extensions": [
".gst"
],
"mimeTypes": [
"text/x-gemstone-smalltalk"
],
"configuration": "./language-configuration.json"
},
{
"id": "gemstone-method",
"aliases": [
"GemStone Method"
],
"configuration": "./language-configuration.json"
},
{
"id": "gemstone-class-comment",
"aliases": [
"GemStone Class Comment"
]
},
{
"id": "ston",
"aliases": [
"STON"
],
"extensions": [
".ston"
],
"configuration": "./ston.language-configuration.json"
}
],
"grammars": [
{
"language": "gemstone-topaz",
"scopeName": "source.gemstone-topaz",
"path": "./syntaxes/gemstone-topaz.tmLanguage.json"
},
{
"language": "gemstone-tonel",
"scopeName": "source.gemstone-tonel",
"path": "./syntaxes/gemstone-tonel.tmLanguage.json"
},
{
"language": "gemstone-smalltalk",
"scopeName": "source.gemstone-smalltalk",
"path": "./syntaxes/gemstone-smalltalk.tmLanguage.json"
},
{
"language": "gemstone-method",
"scopeName": "source.gemstone-method",
"path": "./syntaxes/gemstone-method.tmLanguage.json"
},
{
"language": "ston",
"scopeName": "source.ston",
"path": "./syntaxes/ston.tmLanguage.json"
}
],
"configuration": [
{
"title": "GemStone Search",
"properties": {
"gemstone.omniSearch.ui": {
"type": "string",
"enum": [
"spotter",
"panel"
],
"enumDescriptions": [
"Editor-tab Spotter: a webview in an editor tab with labeled scope tabs, a source-preview pane, own match highlighting, and an always-on case indicator.",
"Bottom-panel view (default): the same webview docked in the panel strip (next to Terminal/Output). Stays out of the way; results open in the editor area above it."
],
"default": "panel",
"markdownDescription": "Which GemStone Search experience to open: the bottom panel view (default) or the editor-tab Spotter."
},
"gemstone.omniSearch.matchMode": {
"type": "string",
"enum": [
"fuzzy",
"substring",
"prefix"
],
"enumDescriptions": [
"Subsequence match: the typed characters appear in order (the Quick-Open feel).",
"The typed text appears as a contiguous run.",
"The result starts with the typed text."
],
"default": "fuzzy",
"markdownDescription": "How your typed query is matched against the names in each category: classes, method selectors, dictionaries, globals and class categories. Source and Literals match on the stone instead (whole method source / literal frames), so this setting does not affect them."
},
"gemstone.omniSearch.caseSensitive": {
"type": "boolean",
"default": false,
"description": "Match case-sensitively. Off by default."
},
"gemstone.omniSearch.categories": {
"type": "array",
"items": {
"type": "string",
"enum": [
"classes",
"methods",
"dictionaries",
"globals",
"source",
"literals",
"categories"
],
"enumDescriptions": [
"Class names.",
"Method selectors (queries the stone as you type).",
"SymbolDictionary names.",
"Global variable names.",
"Full method source (heavyweight; explicit scope only).",
"Methods referencing a literal you type, e.g. #at:put: (heavyweight; explicit scope only).",
"Class category names — not method categories (heavyweight; explicit scope only)."
]
},
"default": [
"classes",
"methods",
"dictionaries",
"globals",
"source",
"literals",
"categories"
],
"markdownDescription": "Which search scopes GemStone Search includes. Narrow a single search on the fly with the scope tabs above the results; the Clear-filter button resets to searching everything. Source (full method-source search), Literals (methods referencing a compilable literal you type, e.g. #at:put:) and Class Categories (class-category names) are heavyweight, so they never run in the default search — pick their tab to use them."
},
"gemstone.omniSearch.maxResultsPerCategory": {
"type": "number",
"default": 20,
"minimum": 1,
"maximum": 200,
"description": "Maximum results shown per category."
},
"gemstone.omniSearch.debounceMs": {
"type": "number",
"default": 120,
"minimum": 0,
"maximum": 2000,
"description": "Delay after a keystroke before searching, in milliseconds (throttles per-keystroke stone queries)."
},
"gemstone.omniSearch.methodMinQueryLength": {
"type": "number",
"default": 2,
"minimum": 1,
"maximum": 10,
"description": "Minimum characters before the Methods category queries the stone (method search hits the stone per keystroke). Raise it if per-keystroke method search feels slow on a large stone; lower it (to 1) to search selectors from the first character."
},
"gemstone.omniSearch.maxServerScan": {
"type": "number",
"default": 200,
"minimum": 20,
"maximum": 20000,
"markdownDescription": "How many matching methods the Methods search brings back from the stone.\n\nThat search walks every selector of every class in your symbol list and keeps the best matches — an exact selector first, then ones starting with your term, then ones merely containing it — so what this limit cuts off is the least relevant tail. It is a limit on the results: when a search is cut off here, no amount of Load more or Load all can reach the matches beyond it — the footer says Methods scan capped at 200 when that happens.\n\nRaise it to cast a wider net on broad terms (add, at:), at the cost of a bigger fetch on every keystroke. Narrowing your search term is usually faster than raising this."
},
"gemstone.omniSearch.referencesInPreview": {
"type": "boolean",
"default": true,
"markdownDescription": "Show a row's references/senders (Alt+Enter or the ↗ button) as a sticky list in the right-hand preview pane, leaving the results list in place — click an entry to open its source. Turn this off to use the classic behavior, where references replace the whole results list (a pivot you back out of with ← / Esc)."
},
"gemstone.omniSearch.previewPane": {
"type": "boolean",
"default": true,
"markdownDescription": "Show the source preview beside the results, filling in as you move down the list. The pane takes about 45% of the width, which the bottom panel — wide but short — can least afford, so turning it off gives that room back to the result labels and also stops the per-row source fetches. This is the value the panel starts with; the ◧ button in the panel switches it for the current session without changing this setting."
},
"gemstone.omniSearch.excludeFromAll": {
"type": "array",
"items": {
"type": "string",
"enum": [
"classes",
"methods",
"dictionaries",
"globals"
]
},
"default": [],
"markdownDescription": "Scopes to leave out of the All search while keeping their own tab, so you can still search them on purpose. Useful for methods, which queries the stone on every keystroke. This is different from #gemstone.omniSearch.categories#, which removes a scope altogether (no tab, no search). Source, Literals and Class Categories are always outside All and so cannot be listed here. This is the value the panel starts with; the Scopes button in the panel changes it for the current session without changing this setting."
}
}
},
{
"title": "GemStone",
"properties": {
"gemstone.stepPoints.display": {
"type": "string",
"enum": [
"off",
"debugging",
"always"
],
"enumDescriptions": [
"Never number step points.",
"Number step points while a debug session is running (default) — they are what you want when reasoning about where execution is, and clutter the rest of the time.",
"Always number step points in GemStone method source."
],
"default": "debugging",
"markdownDescription": "When to number step points in GemStone method source, drawn as inlay hints. Each number is clickable and toggles a breakpoint at that step point. Whatever this is set to, hovering a step point always reports its number; hovering a NUMBER also offers a link that hides them again, and `#gemstone.breakpoints
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
98.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.4kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
88.1k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
