starknet.js SDK Reference
internet-court/internet-court-skill
Reference for building Starknet apps with starknet.js v9: providers, accounts, contract calls, fee estimation, wallet integration and paymaster flows.
Set up local development workflow for Gamma API integration.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace gamma-local-dev-loop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/gamma-local-dev-loop .claude/skills/gamma-local-dev-loop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gamma-local-dev-loop" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loop into .claude/skills/gamma-local-dev-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-local-dev-loop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace gamma-local-dev-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/gamma-local-dev-loop .agents/skills/gamma-local-dev-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gamma-local-dev-loop" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loop into .agents/skills/gamma-local-dev-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-local-dev-loop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace gamma-local-dev-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/gamma-local-dev-loop .cursor/skills/gamma-local-dev-loop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gamma-local-dev-loop" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loop into .cursor/skills/gamma-local-dev-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-local-dev-loop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jeremylongshore/tons-of-skills-marketplace.git --path skills/.curated/gamma-local-dev-loop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace gamma-local-dev-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/gamma-local-dev-loop .gemini/skills/gamma-local-dev-loop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gamma-local-dev-loop" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loop into .gemini/skills/gamma-local-dev-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-local-dev-loop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jeremylongshore/tons-of-skills-marketplace gamma-local-dev-loopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/gamma-local-dev-loop .github/skills/gamma-local-dev-loop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gamma-local-dev-loop" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loop into .github/skills/gamma-local-dev-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-local-dev-loop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace gamma-local-dev-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/gamma-local-dev-loop .opencode/skills/gamma-local-dev-loop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gamma-local-dev-loop" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/gamma-local-dev-loop into .opencode/skills/gamma-local-dev-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-local-dev-loop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gamma-local-dev-loopSet up local development workflow for Gamma API integration.
Gamma Local Dev Loop is an agent skill from jeremylongshore/tons-of-skills-marketplace. Set up local development workflow for Gamma API integration. Use when building automation scripts, testing API calls locally, or configuring a dev environment with mock responses. Trigger: "gamma local dev", "gamma development setup", "gamma test locally", "gamma mock API", "gamma dev workflow".
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code
It sits in Backend & APIs, covering Third-party API integration. It works with npm and Node.js. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 80f86df. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBash(curl:*)Bash(node:*)Bash(npm:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmtsxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
public-api.gamma.appgamma.appexport.gamma.appAlso links to:
developers.gamma.appFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GAMMA_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
Gamma Local Dev Loop loads about 1.9k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 236 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
- `GAMMA_API_KEY` in `.env`├── .env # GAMMA_API_KEY (gitignored)EY required` | Missing env var | Add to `.env` or export |Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit 80f86df, republished under its MIT licence (© jeremylongshore). 236 words, ~1,914 tokens.
.claude/skills/gamma-local-dev-loop/SKILL.md (or your agent's skills folder).Create a local validation receipt with fixture version, schema result, owner, and redacted failure reference. Never commit private presentations, viewer data, or secrets.
Run offline tests using fictional presentation fixtures, verify logs are redacted and no production credential is required, then remove temporary artifacts after validation.
Set up an efficient local development workflow for Gamma API integrations. Since Gamma is a REST API with no SDK, the dev loop centers on HTTP request/response testing, mock servers for offline development, and a reusable client wrapper.
gamma-install-auth setuptsx for TypeScript executionGAMMA_API_KEY in .envgamma-integration/
├── src/
│ ├── client.ts # Reusable Gamma API client
│ ├── generate.ts # Generation workflows
│ └── poll.ts # Polling helper
├── test/
│ ├── mock-server.ts # Local mock for offline dev
│ └── integration.test.ts
├── .env # GAMMA_API_KEY (gitignored)
├── .env.example # Template without secrets
├── package.json
└── tsconfig.json// src/client.ts
import "dotenv/config";
const GAMMA_BASE = "https://public-api.gamma.app/v1.0";
export interface GammaClient {
generate(body: GenerateRequest): Promise<GenerateResponse>;
poll(generationId: string): Promise<PollResponse>;
listThemes(): Promise<Theme[]>;
listFolders(): Promise<Folder[]>;
}
export function createClient(apiKey?: string, baseUrl?: string): GammaClient {
const key = apiKey ?? process.env.GAMMA_API_KEY;
if (!key) throw new Error("GAMMA_API_KEY required");
const base = baseUrl ?? GAMMA_BASE;
const headers = { "X-API-KEY": key, "Content-Type": "application/json" };
async function request(method: string, path: string, body?: unknown) {
const res = await fetch(`${base}${path}`, {
method,
headers,
body: body ? JSON.stringify(body) : undefined,
});
if (!res.ok) {
const text = await res.text();
throw new Error(`Gamma ${res.status}: ${text}`);
}
return res.json();
}
return {
generate: (body) => request("POST", "/generations", body),
poll: (id) => request("GET", `/generations/${id}`),
listThemes: () => request("GET", "/themes"),
listFolders: () => request("GET", "/folders"),
};
}// src/poll.ts
import type { GammaClient } from "./client";
export async function waitForCompletion(
client: GammaClient,
generationId: string,
opts = { intervalMs: 5000, timeoutMs: 120000 }
) {
const deadline = Date.now() + opts.timeoutMs;
while (Date.now() < deadline) {
const result = await client.poll(generationId);
if (result.status === "completed") return result;
if (result.status === "failed") throw new Error(`Generation failed: ${result.error}`);
await new Promise((r) => setTimeout(r, opts.intervalMs));
}
throw new Error(`Poll timeout after ${opts.timeoutMs}ms`);
}// test/mock-server.ts
import http from "node:http";
const MOCK_PORT = 9876;
const generations = new Map<string, { status: string; tick: number }>();
const server = http.createServer((req, res) => {
res.setHeader("Content-Type", "application/json");
// POST /v1.0/generations
if (req.method === "POST" && req.url === "/v1.0/generations") {
const id = `mock_${Date.now()}`;
generations.set(id, { status: "in_progress", tick: 0 });
res.end(JSON.stringify({ generationId: id }));
return;
}
// GET /v1.0/generations/:id — completes after 3 polls
const pollMatch = req.url?.match(/\/v1\.0\/generations\/(.+)/);
if (req.method === "GET" && pollMatch) {
const gen = generations.get(pollMatch[1]);
if (!gen) { res.writeHead(404); res.end("{}"); return; }
gen.tick++;
if (gen.tick >= 3) gen.status = "completed";
res.end(JSON.stringify({
generationId: pollMatch[1],
status: gen.status,
...(gen.status === "completed" && {
gammaUrl: `https://gamma.app/docs/mock-${pollMatch[1]}`,
exportUrl: `https://export.gamma.app/mock.pdf`,
creditsUsed: 10,
}),
}));
return;
}
// GET /v1.0/themes
if (req.url === "/v1.0/themes") {
res.end(JSON.stringify([
{ id: "theme_1", name: "Professional" },
{ id: "theme_2", name: "Modern" },
]));
return;
}
// GET /v1.0/folders
if (req.url === "/v1.0/folders") {
res.end(JSON.stringify([{ id: "folder_1", name: "Test Folder" }]));
return;
}
res.writeHead(404);
res.end("{}");
});
server.listen(MOCK_PORT, () => console.log(`Mock Gamma API on :${MOCK_PORT}`));{
"scripts": {
"dev:mock": "tsx test/mock-server.ts",
"dev:generate": "tsx src/generate.ts",
"test": "vitest run",
"test:integration": "GAMMA_BASE=http://localhost:9876/v1.0 vitest run test/integration"
}
}// test/integration.test.ts
import { describe, it, expect } from "vitest";
import { createClient } from "../src/client";
import { waitForCompletion } from "../src/poll";
const BASE = process.env.GAMMA_BASE ?? "http://localhost:9876/v1.0";
describe("Gamma API", () => {
const client = createClient("test-key", BASE);
it("generates and polls to completion", async () => {
const { generationId } = await client.generate({
content: "Test presentation",
outputFormat: "presentation",
});
expect(generationId).toBeTruthy();
const result = await waitForCompletion(client, generationId);
expect(result.status).toBe("completed");
expect(result.gammaUrl).toContain("gamma.app");
});
it("lists workspace themes", async () => {
const themes = await client.listThemes();
expect(themes.length).toBeGreaterThan(0);
});
});| Activity | Command | Hits Live API? |
|---|---|---|
| Start mock server | npm run dev:mock | No |
| Generate (mock) | GAMMA_BASE=http://localhost:9876/v1.0 npm run dev:generate | No |
| Run tests | npm test (uses mock) | No |
| Live API test | GAMMA_API_KEY=gma_... tsx src/generate.ts | Yes |
| Issue | Cause | Fix |
|---|---|---|
GAMMA_API_KEY required | Missing env var | Add to .env or export |
| Mock returns 404 | Wrong mock port/path | Verify GAMMA_BASE points to mock |
| Poll timeout locally | Mock tick count too high | Reduce tick threshold |
fetch is not defined | Node.js < 18 | Upgrade to Node.js 18+ |
Proceed to gamma-sdk-patterns for reusable API wrapper patterns.
© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/.curated/gamma-local-dev-loop of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit 80f86df
Gamma Local Dev Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gamma Local Dev Loop this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.9k | Automated safety check: Notes | MIT | |
| starknet.js SDK Referenceinternet-court/internet-court-skill | 6.5k | 1 repos | ~3.5k | Automated safety check: Notes | Apache-2.0 | |
| Tiger Brokers TypeScript SDKqusong0627/QuantMind | 1.7k | — | ~939 | Automated safety check: Pass | MIT | |
| ToolJet Marketplace Plugin BuilderToolJet/ToolJet | 41k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Compileapache/skywalking-nodejs | 180 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| OpenAPI CLI CallerEvilFreelancer/openapi-to-cli | 265 | — | ~879 | Automated safety check: Pass | MIT |
internet-court/internet-court-skill
Reference for building Starknet apps with starknet.js v9: providers, accounts, contract calls, fee estimation, wallet integration and paymaster flows.
qusong0627/QuantMind
Reference skill for the Tiger Brokers OpenAPI TypeScript SDK: setup, market data, trading, account queries, options and real-time push subscriptions.
ToolJet/ToolJet
Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.
apache/skywalking-nodejs
Compile / build / type-check the skywalking-nodejs agent. An agent skill from apache/skywalking-nodejs.
EvilFreelancer/openapi-to-cli
Turns an OpenAPI, Swagger or OpenRPC spec into CLI commands the agent can search and call, with no MCP server or code generation.
PayRam/payram-mcp
Adds crypto checkout to a web app with PayRam: create a payment from your backend, send the customer to the payment page, then confirm the result.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Categories
Set up local development workflow for Gamma API integration. Gamma Local Dev Loop is an agent skill from jeremylongshore/tons-of-skills-marketplace. Set up local development workflow for Gamma API integration.
Gamma Local Dev Loop fits situations like: building automation scripts; testing API calls locally; configuring a dev environment with mock responses.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a claude-code`. Or copy the skill folder (skills/.curated/gamma-local-dev-loop in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/gamma-local-dev-loop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a codex`. Or copy the skill folder (skills/.curated/gamma-local-dev-loop in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/gamma-local-dev-loop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill gamma-local-dev-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gamma-local-dev-loop, .gemini/skills/gamma-local-dev-loop, .github/skills/gamma-local-dev-loop and .opencode/skills/gamma-local-dev-loop in your project.
Going by SKILL.md and its folder, Gamma Local Dev Loop needs the command-line tools its instructions call (npm and tsx) and credentials named GAMMA_API_KEY. Our summary lists: Node.js; A credential in GAMMA_API_KEY. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(curl:*), Bash(node:*), Bash(npm:*). Compatibility (from SKILL.md): Designed for Claude Code.
SKILL.md names 4 domains. In commands or code: public-api.gamma.app, gamma.app and export.gamma.app; the agent is likely to contact these when it follows the instructions. As links in the text: developers.gamma.app. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Gamma Local Dev Loop is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Gamma Local Dev Loop: starknet.js SDK Reference (internet-court/internet-court-skill, 6.5k stars), Tiger Brokers TypeScript SDK (qusong0627/QuantMind, 1.7k stars), ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars) and Compile (apache/skywalking-nodejs, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,825 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 9, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.