Yaak Changelog
mountain-loop/yaak
Create or edit Yaak changelogs. An agent skill from mountain-loop/yaak.
Check the latest xtekky/gpt4free releases for provider additions/changes and decide whether Open Screenshot Generator's AI providers need the same.
$ npx skills add dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator gpt4free-provider-sync --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/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/gpt4free-provider-sync .claude/skills/gpt4free-provider-sync && 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 "gpt4free-provider-sync" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-sync into .claude/skills/gpt4free-provider-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpt4free-provider-sync", 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/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-syncType 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 dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator gpt4free-provider-sync --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/gpt4free-provider-sync .agents/skills/gpt4free-provider-sync && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gpt4free-provider-sync" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-sync into .agents/skills/gpt4free-provider-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpt4free-provider-sync", 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 dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator gpt4free-provider-sync --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/gpt4free-provider-sync .cursor/skills/gpt4free-provider-sync && 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 "gpt4free-provider-sync" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-sync into .cursor/skills/gpt4free-provider-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpt4free-provider-sync", 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/dotnetdreamer/open-screenshot-generator.git --path .claude/skills/gpt4free-provider-sync--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 dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator gpt4free-provider-sync --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/gpt4free-provider-sync .gemini/skills/gpt4free-provider-sync && 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 "gpt4free-provider-sync" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-sync into .gemini/skills/gpt4free-provider-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpt4free-provider-sync", 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 dotnetdreamer/open-screenshot-generator gpt4free-provider-syncInstalls 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 dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/gpt4free-provider-sync .github/skills/gpt4free-provider-sync && 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 "gpt4free-provider-sync" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-sync into .github/skills/gpt4free-provider-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpt4free-provider-sync", 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 dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator gpt4free-provider-sync --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/gpt4free-provider-sync .opencode/skills/gpt4free-provider-sync && 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 "gpt4free-provider-sync" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/.claude/skills/gpt4free-provider-sync into .opencode/skills/gpt4free-provider-sync/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gpt4free-provider-sync", 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.
gpt4free-provider-syncCheck the latest xtekky/gpt4free releases for provider additions/changes and decide whether Open Screenshot Generator's AI providers need the same.
Gpt4free Provider Sync is an agent skill from dotnetdreamer/open-screenshot-generator. Check the latest xtekky/gpt4free releases for provider additions/changes and decide whether Open Screenshot Generator's AI providers need the same. Use when asked to "check gpt4free", "see what providers gpt4free added/changed", sync/compare our providers against gpt4free, or add a new web AI provider. Also holds the full checklist for wiring a new browser (webview) provider end to end.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Changelog and release notes. It works with Tauri. The repository describes itself as: Open source Canva with CLI/GUI, AI Agent, MCP for App Store and Play Store screenshots. Free alternative to AppScreens, AppLaunchpad and Previewed. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 556578e. 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.
Shell commands in SKILL.md call:
npmFrom 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:
api.github.comraw.githubusercontent.comFrom 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.
Gpt4free Provider Sync loads about 2.3k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 1,007 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 dotnetdreamer/open-screenshot-generator at commit 556578e, republished under its MIT licence (© dotnetdreamer). 1,007 words, ~2,319 tokens.
.claude/skills/gpt4free-provider-sync/SKILL.md (or your agent's skills folder).Our AI providers are "inspired by" xtekky/gpt4free. Periodically the user wants to know what gpt4free changed provider-wise in its recent releases, and whether we should mirror it. This skill is the repeatable procedure plus the wiring checklist for adding a provider.
Standing rule from the user: present the analysis and get their confirmation BEFORE changing any code. They confirm the analysis first, then decide what (if anything) to build.
gpt4free's GitHub Releases carry no prose, just a "Full Changelog" link. Do NOT trust a WebFetch of the releases page for provider detail, and the HTML compare page often answers "This comparison is taking too long to generate." Use the compare API instead.
https://api.github.com/repos/xtekky/gpt4free/releases?per_page=6 -> read each tag_name.tags[3], head = tags[0], so
https://api.github.com/repos/xtekky/gpt4free/compare/<tags[3]>...<tags[0]>
(e.g. v7.8.1...v7.8.4 covers v7.8.2, v7.8.3, v7.8.4).files[]: each { filename, status }. Filter to paths containing Provider (g4f/Provider/...). status is added / removed / renamed / modified. added/removed provider files are the signal that a provider was introduced or dropped; renamed (e.g. a single Foo.py becoming a foo/ package) is usually just a refactor of the same service.commits[].commit.message: quote provider-naming messages ("Delete old GLM", "Add X", etc.).files looks truncated (GitHub caps compare at ~300 files, and total_commits is large), fall back to per-file history under g4f/Provider/.https://raw.githubusercontent.com/xtekky/gpt4free/main/g4f/models.py.We only have two, and most gpt4free churn touches neither.
WEB_ADAPTERS + the WebProviderId union). These drive a logged-in site's chat UI in a hidden Tauri window. This is gpt4free's needs_auth / nodriver "chromium" equivalent. Current set: claude, chatgpt, gemini, copilot, deepseek, qwen, perplexity, glm.gpt4free ships dozens of providers; the majority are reverse-engineered free HTTP endpoints that break the moment a vendor patches their site. We deliberately do not mirror those (see the freeProviders.ts header comment). Only act on:
needs_auth providers), orIgnore, and say so explicitly in the analysis: router/loader refactors, disk-cache/FileStorage infra, captcha-bypass tweaks, lazy-loading, build/test fixes, and the constant churn of throwaway free-API providers (Blackbox, DeepInfra, PuterJS, etc.).
Write the verdict per surface: "none of the changed files touch a site we drive; nothing to port" is the common and correct outcome. A provider gpt4free merely reorganized (like GLM's file->package move in v7.8.x) is not new; call it out but do not treat it as a keep-up item.
Learned adding GLM (chat.z.ai). Miss one and it half-breaks silently.
WebProviderId union AND an entry to WEB_ADAPTERS. This one file is the source of truth: the UI picker, host routing (adapterForHost), WEB_PROVIDERS, and extensionMatchPatterns() all derive from it. Selectors always rot, so provide layered lists and mark tested: false. For loggedOut, prefer a stable sign-in testid/anchor; avoid a generic a[href*="login"] (false-positives lock signed-in users out). Note whether the site allows anonymous/guest use.("<id>", "<fresh-chat-url>") to the PROVIDERS array. The desktop window opens from THIS map, not from webAdapters. Omitting it makes the window fail with "unknown provider".extension/src/adapters/<id>.ts - one line: registerAdapter('<id>'); (copy any sibling).https://<host>/* to BOTH host_permissions and web_accessible_resources[0].matches (and the description provider list).build:extension - append extension/src/adapters/<id>.ts. The esbuild input list is explicit, not a glob, so a new adapter file is otherwise never built.https://<host>/* to remote.urls. This is the one that fails SILENTLY. The injected agent reports back over Tauri events (core:event:allow-emit), and Tauri only allows emit from remote origins on this whitelist. Miss it and the agent installs, boots, and drives the page but every event is dropped by the ACL (the agent's send() swallows the emit error), so the shell sees NOTHING: no ready, so the queued job never dispatches, and the run just hangs. Symptom when testing: agentInstalled: true on the page but zero abs-web-event. Capabilities are compiled into the exe by tauri-build, so this needs a rebuild.Nothing else in the UI needs touching: WebSessionModePanel.tsx renders straight from WEB_PROVIDER_IDS (a new provider shows with a "not tested" badge automatically), and PROMPT_BUDGETS in AgentStartScreen.tsx is a Partial map (only ChatGPT has a hard cap; an absent provider falls back to the full prompt, which is fine).
npm run build:assistant-agent # rebundles the injected agent (webAssistantAgent.ts). It is include_str!'d into the exe at COMPILE time, so a running tauri:dev never picks up selector edits until a rebuild.
npm run build:extension # confirms the new adapter file compiles into dist/adapters/<id>.js
npm run typecheck # 3 pre-existing errors are known/unrelated: CanvasArea.tsx:296, TextElement.tsx:91, TextElement.tsx:117. Your change must add zero new ones.New adapters are best-effort until selectors are verified against the live site. Live-testing recipe (scratch Tauri instance, copied profile, CDP harness, op-log forensics) is in the tauri-desktop-integration memory; the embedded-webview architecture and the hard-won login/iframe correctness rules are in embedded-webview-account-mode.
A reasoning model shows a "thinking" placeholder for many seconds before its answer. waitForReply's only guard against returning early is the streaming (stop-button) selector — if it's dead/guessed, the text-settle heuristic (1.2s) returns the stable "thinking" placeholder as the answer and the plan parser rejects it. Since these sites often have no stable CSS stop button, add a per-adapter isGenerating?: () => boolean hook (reads the live "Thinking…/Skip"-style control by text; CSS can't match text) — it's OR'd into waitForReply's streaming check. Capture the in-progress control live (CDP button-dump while it generates) rather than guessing. Also: these models can't fetch the hosted catalog (reply CANNOT_FETCH), and some (GLM) emit a junk JSON skeleton alongside the sentinel — the AgentStartScreen URL branch caches 'fail' on the sentinel regardless of junk JSON and uses extractJsonCandidates + token-match (not first-only extractJson), so verify a new reasoning provider's can't-fetch verdict actually caches (else every run re-pays the URL round-trip).
© dotnetdreamer, 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 .claude/skills/gpt4free-provider-sync of dotnetdreamer/open-screenshot-generator.
Open the folder on GitHubat commit 556578e
Gpt4free Provider Sync 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 |
|---|---|---|---|---|---|---|
| Gpt4free Provider Sync this skilldotnetdreamer/open-screenshot-generator | 126 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Yaak Changelogmountain-loop/yaak | 19k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Release Generate Release Notesmountain-loop/yaak | 19k | — | ~548 | Automated safety check: Pass | MIT | |
| Cline Desktop App Releasecline/cline | 70k | — | ~4.5k | Automated safety check: Pass | Apache-2.0 | |
| Cut Releasedelexw/claude-code-trace | 376 | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Store Submitzhitongblog/solomd | 1.2k | — | ~1.7k | Automated safety check: Notes | MIT |
mountain-loop/yaak
Create or edit Yaak changelogs. An agent skill from mountain-loop/yaak.
mountain-loop/yaak
Generate Yaak release notes from git history and PR metadata, including feedback links and full changelog compare links.
cline/cline
Covers preparing, tagging and publishing a Cline desktop app release on the stable, beta or nightly channel through the desktop-publish GitHub workflow.
delexw/claude-code-trace
Cuts a new versioned release of claude-code-trace end-to-end without asking any questions.
zhitongblog/solomd
Publish a SoloMD release to the stores that have no usable submission API — Google Play Console and Microsoft Partner Center — by driving them through the local Unzoo Browser REST API.
GOODBOY008/r-shell
Release a new r-shell version and create a published GitHub release with contributor credits.
dotnetdreamer/open-screenshot-generator
Builds an App Store App Preview video (and a Play Store or landing page promo cut) from a screen recording of the app, using the open-screenshot-generator CLI (osg video): it starts from one of 20…
dotnetdreamer/open-screenshot-generator
Drive Open Screenshot Generator headlessly (puppeteer-core + Edge) to take UI screenshots, add palette elements, upload device screenshots, export artboard PNGs, and regenerate the 3D device…
dotnetdreamer/open-screenshot-generator
Drives the live Open Screenshot Generator editor tool by tool over MCP, using osg mcp to expose the design tools (artboards, elements, backgrounds, fonts, the asset libraries, templates, App Preview…
dotnetdreamer/open-screenshot-generator
Add properly licensed Adobe Stock photos to the Images palette library (e.g.
dotnetdreamer/open-screenshot-generator
Checks that rendered store assets will actually be accepted, and then ships them, using the open-screenshot-generator CLI: osg verify audits the produced PNGs and MP4s against App Store and Google…
dotnetdreamer/open-screenshot-generator
Ships one screenshot design in many App Store and Play Store languages using the open-screenshot-generator CLI (osg localize): it adds store locales to an existing project, writes per language copy…
Works with
Categories
Check the latest xtekky/gpt4free releases for provider additions/changes and decide whether Open Screenshot Generator's AI providers need the same. Gpt4free Provider Sync is an agent skill from dotnetdreamer/open-screenshot-generator. Check the latest xtekky/gpt4free releases for provider additions/changes and decide whether Open Screenshot Generator's AI providers need the same.
Gpt4free Provider Sync fits situations like: asked to check gpt4free; see what providers gpt4free added/changed; sync/compare our providers against gpt4free; add a new web AI provider.
Run `npx skills add dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a claude-code`. Or copy the skill folder (.claude/skills/gpt4free-provider-sync in dotnetdreamer/open-screenshot-generator) into .claude/skills/gpt4free-provider-sync in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a codex`. Or copy the skill folder (.claude/skills/gpt4free-provider-sync in dotnetdreamer/open-screenshot-generator) into .agents/skills/gpt4free-provider-sync 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 dotnetdreamer/open-screenshot-generator --skill gpt4free-provider-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gpt4free-provider-sync, .gemini/skills/gpt4free-provider-sync, .github/skills/gpt4free-provider-sync and .opencode/skills/gpt4free-provider-sync in your project.
Going by SKILL.md and its folder, Gpt4free Provider Sync needs the command-line tools its instructions call (npm). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: api.github.com and raw.githubusercontent.com; the agent is likely to contact these when it follows the instructions. 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.
Gpt4free Provider Sync is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k 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 Gpt4free Provider Sync: Yaak Changelog (mountain-loop/yaak, 19k stars), Release Generate Release Notes (mountain-loop/yaak, 19k stars), Cline Desktop App Release (cline/cline, 70k stars) and Cut Release (delexw/claude-code-trace, 376 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dotnetdreamer (a GitHub user) maintains it in dotnetdreamer/open-screenshot-generator, which has 126 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 7, 2026.
Source: dotnetdreamer/open-screenshot-generator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.