Annotate Paper
54yyyu/zotero-mcp
Read the open paper and write study annotations into its PDF with zotero-cli - a context box on the title, a four-part summary on the abstract, role-coded abstract highlights, one box per figure…
Render pixel-accurate ChatGPT mobile (iOS) screen mockups in light mode from a thread JSON.
$ npx skills add gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gooseworks-ai/goose-skills create-chatgpt-mockup --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/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ads/packs/video-ad-formats/create-chatgpt-mockup .claude/skills/create-chatgpt-mockup && 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 "create-chatgpt-mockup" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockup into .claude/skills/create-chatgpt-mockup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-chatgpt-mockup", 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/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockupType 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 gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gooseworks-ai/goose-skills create-chatgpt-mockup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ads/packs/video-ad-formats/create-chatgpt-mockup .agents/skills/create-chatgpt-mockup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-chatgpt-mockup" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockup into .agents/skills/create-chatgpt-mockup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-chatgpt-mockup", 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 gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gooseworks-ai/goose-skills create-chatgpt-mockup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ads/packs/video-ad-formats/create-chatgpt-mockup .cursor/skills/create-chatgpt-mockup && 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 "create-chatgpt-mockup" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockup into .cursor/skills/create-chatgpt-mockup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-chatgpt-mockup", 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/gooseworks-ai/goose-skills.git --path skills/ads/packs/video-ad-formats/create-chatgpt-mockup--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 gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gooseworks-ai/goose-skills create-chatgpt-mockup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ads/packs/video-ad-formats/create-chatgpt-mockup .gemini/skills/create-chatgpt-mockup && 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 "create-chatgpt-mockup" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockup into .gemini/skills/create-chatgpt-mockup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-chatgpt-mockup", 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 gooseworks-ai/goose-skills create-chatgpt-mockupInstalls 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 gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ads/packs/video-ad-formats/create-chatgpt-mockup .github/skills/create-chatgpt-mockup && 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 "create-chatgpt-mockup" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockup into .github/skills/create-chatgpt-mockup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-chatgpt-mockup", 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 gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gooseworks-ai/goose-skills create-chatgpt-mockup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ads/packs/video-ad-formats/create-chatgpt-mockup .opencode/skills/create-chatgpt-mockup && 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 "create-chatgpt-mockup" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/packs/video-ad-formats/create-chatgpt-mockup into .opencode/skills/create-chatgpt-mockup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-chatgpt-mockup", 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.
create-chatgpt-mockupRender pixel-accurate ChatGPT mobile (iOS) screen mockups in light mode from a thread JSON.
Create Chatgpt Mockup is an agent skill from gooseworks-ai/goose-skills. Render pixel-accurate ChatGPT mobile (iOS) screen mockups in light mode from a thread JSON. Supports user text bubbles, user image attachments, assistant markdown prose, citation chips, the OpenAI spiral logo, the Apps-SDK GPT chip in the composer, and three header styles (model-tag, plain title, "Get Plus"). Fixed 9:16 viewport. Outputs HTML + PNG.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 25 other files (for example `examples/01-sunscreen-image.json`, `examples/02-sleep-apnea-long.json` and `examples/03-poem-iphone-mac.json`).
It sits in Research & Science, covering Citation management. It works with OpenAI and iOS. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodenpmnpxbashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Create Chatgpt Mockup loads about 3.7k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 1,770 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 found no risky patterns in SKILL.md.
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 gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,770 words, ~3,736 tokens.
.claude/skills/create-chatgpt-mockup/SKILL.md (or your agent's skills folder). This skill also uses 21 other files; get the full folder from GitHub.Superseded: the video kit now does this with the phone-chat part, version 1.1.4, in the parts folder of this repository. Every phone-chat style is a style file that draws the same screen frame by frame from the plan's scenes, with the original sounds, in the kit's browser. This atom stays, unchanged in behaviour, for skills outside the kit until they move; its scripts still run.
Generate single-frame ChatGPT mobile screens that read as real iOS captures — accurate header chrome, user/assistant message styling, composer pill, status bar, and the OpenAI spiral mark. Designed for use inside ad creatives, social posts, video storyboards, and product mockups.
If you need an animated, video-recorded chat reveal (bubbles popping over time, SFX, music bed, end card), use the molecule skills/molecules/create-chatgpt-video-ad. This atom only produces a single still frame.
Compose a thread.json matching the schema below, then pass it to render.js.
{
"statusBar": {
"time": "9:41",
"dnd": false
},
"header": {
"style": "model-tag",
"title": "ChatGPT",
"model": "5.1",
"rightIcons": ["personPlus", "dottedCircle"]
},
"messages": [
{ "type": "user-image", "src": "assets/photo.jpg", "aspect": "square" },
{ "type": "user-text", "text": "Make this face sunscreen better" },
{
"type": "assistant",
"title": "Optional H1 with spiral logo",
"feedback": true,
"text": "Markdown-ish prose. **bold**, *italic*, ## H2, * bullet, 1. ordered, [[cite:Source +1]], [[icon:💡]] inline-icon."
}
],
"composer": {
"placeholder": "Ask anything",
"text": "Typed text to show with caret",
"cursor": true,
"streaming": false,
"chip": { "name": "SeatGeek" }
}
}statusBar
time — string shown top-left (e.g. "9:41", "08:18").dnd — when true, renders a small moon glyph next to the time (matches iOS Focus-on indicator).header.style — one of:
"model-tag" — ≡ ChatGPT 5.1 ▾ ●● — used when a specific model is active."title-only" — ≡ ChatGPT › ●● — the plain in-chat header."plain-title" — ≡ Get Plus ✦ ●● — for the upsell/empty-state title.header.rightIcons — array of icon keys, rendered left-to-right on the right side. Available: "personPlus", "dottedCircle", "edit", "more". Default is ["personPlus", "dottedCircle"] for model-tag, ["edit"] for title-only.
messages[] — one of:
{ "type": "user-image", "src": <path>, "aspect": "square"? } — relative src paths resolve against the thread.json directory.{ "type": "user-text", "text": <string> } — right-aligned soft-gray bubble.{ "type": "assistant", "text": <markdown>, "title"?: <string>, "feedback"?: <bool> } — left-aligned plain prose. If title is set, an OpenAI spiral logo + bold title is rendered above the body. feedback: false hides the thumbs-up/down chips.Assistant text markdown — supported syntax:
**bold**, *italic*# H1, ## H2, ### H3* item / - item bullet lists1. item ordered lists--- horizontal rule[[cite:Some Source +1]] — pill citation chip[[icon:💡]] — inline emoji prefix (kept un-escaped)\n → soft line break (<br>); double \n\n → new paragraphcomposer
placeholder — shown when text is empty (default "Ask anything").text — typed-in text. When present, the send button activates (black bg).cursor — whether to render the blinking caret after text (default true).streaming — when true, replaces the send arrow with a stop square (matches "response generating" state).chip — optional GPT chip in the composer. chip.name is the GPT name. Sets placeholder to "Ask ChatGPT" if you don't override it.node render.js --thread examples/01-sunscreen-image.json
node render.js --thread my-thread.json --output ./exports --name nightly| Flag | Effect |
|---|---|
--thread <path> | (required) JSON file matching the schema above |
--output <dir> | parent dir for the dated output folder; default ./chatgpt-mockup-exports/ |
--name <slug> | override the output folder slug |
<output>/<YYYY-MM-DD>-<slug>/
index.html # standalone HTML (CSS inlined)
screenshot.png # 2250 × 4002 PNG (DPR 3, 9:16)
thread.json # copy of the input for reproducibilitythread.json matching the schema above.node render.js --thread <path>.templates/chat.css and re-render.cd create-chatgpt-mockup
npm install
npx playwright install chromium5.1, 5.2) sits inline with ChatGPT and its chevron — no wrapping.#F4F4F4), border-radius: 28px, max-width 78% of stage.28px corner radius and sit right-aligned above the text bubble.1px border #E5E5E5, send button is 44 × 44 round.composer.text is set: send button is solid black with a white up-arrow. Caret sits right after the last character of typed text.composer.streaming: true: send button shows a black square stop icon.[[cite:Foo +1]] is in the assistant text, it renders as a pill chip inline at the end of the sentence.| Symptom | Cause | Fix |
|---|---|---|
Thread file not found | Wrong path or running from a different cwd | Use absolute paths or run from the skill directory |
| Image attachment shows broken-image glyph | src is relative but the renderer couldn't resolve it | render.js resolves relative src against the thread.json's directory — make sure the asset exists at that path |
| Send button stays light gray after typing | composer.text is empty string "" instead of unset | Either omit text entirely or set it to a real string |
Caret renders as a stray | separated from the text | Caret span is being treated as a flex child | The CSS rule for .composer .input uses inline content flow — do not switch it to display: flex |
| Streamed list-item words render with no spaces ("Howconversationswork") | .word { display: inline-block } collapses inter-span text-node whitespace inside <div> parents (works fine inside <p>) | Use display: inline for .word — modern browsers honor filter: blur() + opacity transitions on inline elements too |
| Bullets visible while list-item text is still hidden during streaming | CSS list-style markers are browser-painted; the word-stream wrapper only sees text nodes | The atom auto-converts <ul><li>X</li></ul> to <div class="md-list"><div class="md-li">• X</div></div> when stream: true — keep that pass; don't regress it. Any new markdown that emits browser-painted glyphs (::marker, quotes, counter-content) needs the same text-conversion treatment. |
Markdown --- doesn't render an <hr> | The --- line isn't on a line by itself, or the surrounding text didn't end its paragraph | Surround --- with blank lines on both sides |
| Stanzas of a poem joined into single paragraphs | Lines separated by single \n get joined as a single paragraph but with <br> between them — this is the intended behavior. If you want stanza breaks, use \n\n between stanzas. | |
| Header right cluster overlaps the model tag on long titles | Title text is too wide for the centered slot | Shorten header.title, drop the model tag, or switch header.style to "title-only" |
| File | Purpose |
|---|---|
render.js | CLI entry — parses flags, generates HTML, takes screenshot, writes outputs |
generate.js | Thread JSON → standalone HTML page (markdown-ish parser inside) |
screenshot.js | HTML → PNG via Playwright (chromium headless) at fixed 750×1334 / DPR 3 |
templates/chat.css | All visual styling |
templates/icons.js | Inline SVG icons (hamburger, chevrons, spiral logo, mic, plus, send arrow, stop square, signal/wifi/battery, thumbs up/down) |
examples/*.json | 6 reference threads exercising every variant |
examples/assets/ | Placeholder image assets used by image examples |
tests/run-all.sh | Render every example into tests/output/ for visual review |
generate.js#renderMarkdown if a brief requires more.Run bash tests/run-all.sh and open the PNGs in tests/output/, then confirm:
examples/*.json produce an index.html + screenshot.png + thread.json triplet; render.js exits 0.screenshot.png is 2250 × 4872 (the .stage is 750 × 1624 and screenshot.js captures at deviceScaleFactor: 3). A wrong size means the stage box or DPR changed.statusBar.dnd: true (see 02-sleep-apnea-long.json, 05-seatgeek-gpt-chip.json) a moon glyph renders next to the time.model-tag shows ChatGPT 5.1 ▾ (01-sunscreen-image.json, 06-short-howto.json); title-only shows the plain title + right chevron (02, 03, 05); plain-title shows the upsell title with no chevron (04-empty-typing.json). The center cluster never wraps and the right icons never overlap it.#F4F4F4, 28px radius). A user-image (see 01-sunscreen-image.json) renders the attachment right-aligned, same 28px corners, above the text bubble.## headings, bullet and ordered lists (06-short-howto.json), --- horizontal rules and the [[cite:…]] pill chip (02-sleep-apnea-long.json), an [[icon:💡]] inline prefix, and title as bold heading text (03-poem-iphone-mac.json, 05-seatgeek-gpt-chip.json). feedback: false hides the thumbs chips.messages is empty (04-empty-typing.json) the centered OpenAI spiral hero renders instead of a conversation.999px) bar with +, input, mic, and a round 44×44 send button. With composer.text set (04-empty-typing.json) the send button is solid black and a caret follows the typed text. With streaming: true (02, 03) the send button shows the black stop square. With composer.chip (05-seatgeek-gpt-chip.json) the Apps-SDK GPT chip renders inside the composer above the input row.| Symptom | Likely cause | What to do |
|---|---|---|
Thread file not found: … then exit 1 | --thread path is wrong or the cwd is not the skill dir | Pass an absolute path or cd into the skill directory first (render.js resolves the path against cwd) |
Error: playwright not installed | npm install never ran in the skill dir | Run npm install, then npx playwright install chromium (see Setup) |
Run hangs ~15s then page.goto … timeout | screenshot.js is waiting on networkidle for an asset that never loads (e.g. a remote/http image src) | Use a local relative src that resolves under the thread.json dir, or an inline SVG asset like examples/assets/sunscreen-sky.svg |
| Image attachment shows the broken-image glyph | user-image.src is relative but the file is missing on disk | render.js rewrites a relative src to file://<threadDir>/<src>; make sure the asset actually exists there |
| Send button stays gray after setting text | composer.text is "" (empty string) rather than a real value | Set composer.text to a non-empty string, or omit it to keep the placeholder state |
| PNG comes out the wrong size | .stage width/height in templates/chat.css or DEVICE_SCALE/VIEWPORT in screenshot.js was changed | Keep .stage at 750 × 1624 and deviceScaleFactor at 3 so output stays 2250 × 4872 |
| Header right icons overlap the model tag on a long title | header.title is too wide for the centered slot | Shorten the title, drop the model tag, or switch header.style to "title-only" |
[[cite:…]] or [[icon:…]] prints literally instead of rendering | The marker is mistyped (missing double brackets / colon) | Match the exact [[cite:Source +1]] / [[icon:💡]] form parsed by formatInline in generate.js |
Markdown --- shows as text, not an <hr> | The --- line is not on its own line between blank lines | Put a blank line above and below the ---, as in 02-sleep-apnea-long.json |
© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 21 other files in skills/ads/packs/video-ad-formats/create-chatgpt-mockup of gooseworks-ai/goose-skills.
Open the folder on GitHubat commit c650c6d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.
Create Chatgpt Mockup 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 |
|---|---|---|---|---|---|---|
| Create Chatgpt Mockup this skillgooseworks-ai/goose-skills | 1.2k | 1 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Annotate Paper54yyyu/zotero-mcp | 5.3k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Autonomous Researchfedericodeponte/opendraft | 507 | — | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Academic Integrity Rewritelin1111-1/academic-integrity-rewrite | 102 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Survey Generatorrohitg00/pro-workflow | 2.9k | — | ~1.6k | Automated safety check: Pass | None | |
| CLI Anything ZoteroPiaoyangGuohai1/cli-anything-zotero | 138 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 |
54yyyu/zotero-mcp
Read the open paper and write study annotations into its PDF with zotero-cli - a context box on the title, a four-part summary on the abstract, role-coded abstract highlights, one box per figure…
federicodeponte/opendraft
An 18-agent pipeline that turns one topic line into a drafted research paper, literature review, or thesis chapter.
lin1111-1/academic-integrity-rewrite
Revise Chinese or English academic writing for lower unnecessary textual overlap while preserving meaning, evidence, numbers, equations, terminology, and citations.
rohitg00/pro-workflow
Compile a structured literature survey on any AI/ML topic. An agent skill from rohitg00/pro-workflow.
PiaoyangGuohai1/cli-anything-zotero
Full-featured CLI for Zotero reference management. An agent skill from PiaoyangGuohai1/cli-anything-zotero.
MrGeDiao/paper-reading-zh
中文论文深读、总结/TL;DR、工程拆解、按论文实现/复现、比较与证据审计。用户给出论文 PDF、链接、标题、摘要、正文或图表,或明确要读论文时使用。只有论文锚点且无附言时澄清阅读目标;只有阅读意图时问哪篇。已有论文时,“看看这篇”直接深读。不用于仅翻译、解释单个术语、生成 BibTeX、找或下载论文。
gooseworks-ai/goose-skills
Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
gooseworks-ai/goose-skills
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
gooseworks-ai/goose-skills
Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.
gooseworks-ai/goose-skills
Find leads by scraping engagers from a competitor's top LinkedIn posts.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
Categories
Render pixel-accurate ChatGPT mobile (iOS) screen mockups in light mode from a thread JSON. Create Chatgpt Mockup is an agent skill from gooseworks-ai/goose-skills. Render pixel-accurate ChatGPT mobile (iOS) screen mockups in light mode from a thread JSON.
Create Chatgpt Mockup fits situations like: tasks that involve Citation management.
Run `npx skills add gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a claude-code`. Or copy the skill folder (skills/ads/packs/video-ad-formats/create-chatgpt-mockup in gooseworks-ai/goose-skills) into .claude/skills/create-chatgpt-mockup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a codex`. Or copy the skill folder (skills/ads/packs/video-ad-formats/create-chatgpt-mockup in gooseworks-ai/goose-skills) into .agents/skills/create-chatgpt-mockup 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 gooseworks-ai/goose-skills --skill create-chatgpt-mockup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-chatgpt-mockup, .gemini/skills/create-chatgpt-mockup, .github/skills/create-chatgpt-mockup and .opencode/skills/create-chatgpt-mockup in your project.
Going by SKILL.md and its folder, Create Chatgpt Mockup needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, npm, npx and bash). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Create Chatgpt Mockup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k 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 Create Chatgpt Mockup: Annotate Paper (54yyyu/zotero-mcp, 5.3k stars), Autonomous Research (federicodeponte/opendraft, 507 stars), Academic Integrity Rewrite (lin1111-1/academic-integrity-rewrite, 102 stars) and Survey Generator (rohitg00/pro-workflow, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.