blockrun-debug
Use when the BlockRun MCP server (@blockrun/mcp) is installed but misbehaving — 'Failed to connect', spawn npx ENOENT, blockrun…
Use when generating or editing images via `blockrun_image` — especially with GPT Image 2, Nano Banana, or Grok Imagine for posters, UI mockups, marketing assets, product shots, or anything with on-image text. Turns vague user requests ("make me a cool poster") into structured,
Claude Code
$ npx -y skills add BlockRunAI/blockrun-mcp --skill image-prompting --agent claude-code
Codex
$ npx skills add BlockRunAI/blockrun-mcp --skill image-prompting -a codex -y
Cursor
$ npx skills add BlockRunAI/blockrun-mcp --skill image-prompting -a cursor -y
Gemini CLI
$ npx skills add BlockRunAI/blockrun-mcp --skill image-prompting -a gemini-cli -y
GitHub Copilot
$ npx skills add BlockRunAI/blockrun-mcp --skill image-prompting -a github-copilot -y
OpenCode
$ npx skills add BlockRunAI/blockrun-mcp --skill image-prompting -a opencode -y
Windsurf
$ npx skills add BlockRunAI/blockrun-mcp --skill image-prompting -a windsurf -y
name: image-prompting
description: Use when generating or editing images via `blockrun_image` — especially with GPT Image 2, Nano Banana, or Grok Imagine for posters, UI mockups, marketing assets, product shots, or anything with on-image text. Turns vague user requests ("make me a cool poster") into structured, text-accurate prompts that actually render what you asked for.
triggers:
- "image prompt"
- "make a poster"
- "create poster"
- "ui mockup"
- "marketing asset"
- "product shot"
- "gpt image 2"
- "image with text"
- "typography poster"
- "social asset"
- "generate marketing image"
- "ai poster"Most image failures are prompt failures. This skill gives the MCP agent a repeatable structure for turning any user request into a prompt that renders clean typography, preserves layout on edits, and avoids AI slop. Defaults are tuned for **GPT Image 2** (best legible text), with fallbacks for Nano Banana, Grok Imagine, and CogView.
**Prices:** per image, and they change — look the model up live rather than trusting a number here: `GET https://blockrun.ai/api/v1/models` (Solana: `https://sol.blockrun.ai/api/v1/models`), find the entry whose `id` is the model below, and read `pricing.per_image` plus `pricing.transaction_fee`. That is the base-size rate; the exact amount for your size and quality is quoted in the HTTP 402 challenge before anything is signed. **Size is the biggest lever:** any dimension above 1024 moves GPT Image 2 to the large tier and roughly doubles the price ($0.064 → $0.127). Ask for `1536x1024` only when you need it.
| User wants... | Model | Mode | Size | |---|---|---|---| | Poster / typography-heavy asset | `openai/gpt-image-2` | generate | `1536x1024` or `1024x1536` | | Clean product / UI mockup | `openai/gpt-image-2` | generate | `1024x1024` | | Photoreal / fashion / editorial | `openai/gpt-image-2` or `google/nano-banana-pro` | generate | `1024x1024` | | Pro-level photoreal at Flash speed | `google/nano-banana-2` | generate | `1024x1024` (only size) | | Artistic / stylized / fast | `google/nano-banana` | generate | `1024x1024` | | Cheapest usable draft | `zai/cogview-4` | generate | `1024x1024` | | Widescreen / banner on a budget | `bytedance/seedream-5-pro` | generate | `2048x1024` or `1280x720` | | Premium render or high-precision edit | `openai/gpt-image-2.5-sunburst` (`-flare` generates only, same price) | generate or edit | `1024x1024` | | Stylized Grok render, one step above the base | `xai/grok-imagine-image-2.0` | generate | `1024x1024` (only size) | | Edit an existing image (localized change) | `openai/gpt-image-2` | edit | match source | | Composite from multiple refs | `openai/gpt-image-2` | edit (multi-ref) | match target |
**Valid GPT Image 2 sizes:** `1024x1024` (square), `1536x1024` (landscape ~3:2), `1024x1536` (portrait ~2:3).
Write prompts as **five short blocks separated by blank lines.** This is the single biggest quality lever.
SCENE: where/when/background/environment, one or two lines. SUBJECT: the main focus (who/what), described concretely. DETAILS: materials, texture, lighting, camera angle, composition, mood, lens feel, depth of field, surface condition. Stack concrete nouns. USE CASE: editorial photo / product mockup / poster / UI screen / infographic / concept frame. (This single line tells the model what kind of image to produce.) CONSTRAINTS: what must not drift. "No extra text." "No duplicate elements." "Preserve face." "Legible typography." Repeat these on every edit.
> The fifth slot is where most mediocre prompts fail silently. Describe the idea without bounding it and the model gets inventive in directions you will regret.
1. **Wrap literal text in quotes or ALL CAPS.** `Headline (EXACT TEXT): "Fresh and clean."` 2. **Specify** font style, weight, size, color, placement, letter-spacing. 3. **Treat text as layout, not decoration:** hero vs. sub vs. caption with hierarchy + spacing. 4. **State:** `No extra words. No duplicate text. No watermarks.` 5. **Spell difficult words letter-by-letter** if the model keeps breaking them. 6. **Mark each distinct piece of copy** with its role: `HERO:`, `SUB:`, `BOTTOM-LEFT TAG:`, `TOP BANNER:`.
| Bad (vague / praise-loaded) | Good (concrete visual fact) | |---|---| | "stunning, epic, masterpiece" | "overcast daylight, brushed aluminum, 50mm feel" | | "minimalist brutalist luxury editorial" | "cream background, heavy black condensed sans-serif, asymmetric type block, one hero object, studio tabletop light" | | "it should contain a boarding pass feel" | "a boarding pass lies on the tray, barcode visible, creased corner" | | "beautiful lighting" | "incandescent work lamp spilling warm light onto wet concrete" |
**Rules:**
import os
from pathlib import Path
chain_file = Path.home() / ".blockrun" / ".chain"
chain = chain_file.read_text().strip() if chain_file.exists() else "base"
if chain == "solana":
from blockrun_llm import setup_agent_solana_wallet, ImageClient
setup_agent_solana_wallet()
else:
from blockrun_llm import setup_agent_wallet, ImageClient
setup_agent_wallet()
image = ImageClient()prompt = """ SCENE: A realistic roadside billboard at sunset, empty two-lane highway, soft gradient sky fr
Live data for AI agents — search, research, markets, crypto, X/Twitter. Pay-per-call via x402 micropayments.
Use when the BlockRun MCP server (@blockrun/mcp) is installed but misbehaving — 'Failed to connect', spawn npx ENOENT, blockrun…
Use when asked to install, add, configure, or set up the BlockRun MCP server (@blockrun/mcp) in Claude Code, Claude Desktop,…
Use when the BlockRun MCP server prints 'Update available', when asked to upgrade, update, or pin @blockrun/mcp, when a fix…
Pay-per-call access to AI models, real-time data, media generation and multi-chain RPC over x402 micropayments (USDC on Base,…
Use for any crypto data question — token/coin prices, FX, commodities, stocks, OHLC history, DEX pairs and liquidity, DeFi TVL,…
Use when the user wants typed judgments over their own data from Claude Code — yes/no probabilities, a labelled choice, or a…
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…