Great Docs
pymc-labs/pathmc
Generate documentation sites for Python packages with Great Docs.
Capture and visually inspect FreeCCR's PySide6/Qt GUI widgets using screenshots.
$ npx skills add toonoumi/FreeCCR --skill qt-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install toonoumi/FreeCCR qt-testing --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/toonoumi/FreeCCR.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/qt-testing .claude/skills/qt-testing && 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 "qt-testing" agent skill from https://github.com/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testing into .claude/skills/qt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-testing", 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/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testingType 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 toonoumi/FreeCCR --skill qt-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install toonoumi/FreeCCR qt-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/toonoumi/FreeCCR.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/qt-testing .agents/skills/qt-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qt-testing" agent skill from https://github.com/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testing into .agents/skills/qt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-testing", 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 toonoumi/FreeCCR --skill qt-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install toonoumi/FreeCCR qt-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/toonoumi/FreeCCR.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/qt-testing .cursor/skills/qt-testing && 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 "qt-testing" agent skill from https://github.com/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testing into .cursor/skills/qt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-testing", 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/toonoumi/FreeCCR.git --path .claude/skills/qt-testing--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 toonoumi/FreeCCR --skill qt-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install toonoumi/FreeCCR qt-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/toonoumi/FreeCCR.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/qt-testing .gemini/skills/qt-testing && 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 "qt-testing" agent skill from https://github.com/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testing into .gemini/skills/qt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-testing", 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 toonoumi/FreeCCR qt-testingInstalls 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 toonoumi/FreeCCR --skill qt-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/toonoumi/FreeCCR.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/qt-testing .github/skills/qt-testing && 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 "qt-testing" agent skill from https://github.com/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testing into .github/skills/qt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-testing", 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 toonoumi/FreeCCR --skill qt-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install toonoumi/FreeCCR qt-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/toonoumi/FreeCCR.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/qt-testing .opencode/skills/qt-testing && 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 "qt-testing" agent skill from https://github.com/toonoumi/FreeCCR/tree/main/.claude/skills/qt-testing into .opencode/skills/qt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qt-testing", 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.
qt-testingCapture and visually inspect FreeCCR's PySide6/Qt GUI widgets using screenshots.
Qt Testing is an agent skill from toonoumi/FreeCCR. Capture and visually inspect FreeCCR's PySide6/Qt GUI widgets using screenshots. Use when asked to verify GUI rendering, test widget appearance, check layouts, theming/QSS, or visually inspect any FreeCCR widget (image preview, sliders panel, curve editor, thumbnail list, dust panel, export dialog, main window). Enables Claude to "see" the Qt interface by capturing offscreen screenshots and analyzing them with vision.
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/qt_capture.py`).
It sits in Media & Creative, covering Theming and dark mode. It works with Python. The repository describes itself as: Free physics-based film negative converter — batch RAW processing, Free For Everyone. The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit db1b679. 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 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Qt Testing loads about 1.3k tokens when it runs. Until then it costs about 108 tokens; SKILL.md has 265 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); the scripts in this folder are not scanned.
The full file from toonoumi/FreeCCR at commit db1b679, republished under its AGPL-3.0 licence (© toonoumi). 265 words, ~1,339 tokens.
.claude/skills/qt-testing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Capture screenshots of FreeCCR's Qt widgets for visual inspection without displaying windows on screen, then read the image back and critique it.
# Capture any widget
import sys
sys.path.insert(0, ".claude/skills/qt-testing") # so `from scripts.qt_capture import ...` works
from scripts.qt_capture import capture_widget, init_qt, setup_freeccr_path
setup_freeccr_path() # puts repo root + src/ on sys.path
app = init_qt() # creates the QApplication
path = capture_widget(my_widget, "description_here")
# Then read the screenshot with the Read toolRun scripts/qt_capture.py or import helpers from it:
# Standalone self-test (renders a throwaway widget, saves a PNG)
python .claude/skills/qt-testing/scripts/qt_capture.pyHelpers exposed by scripts/qt_capture.py:
setup_freeccr_path() — add the repo root and src/ to sys.path (call before importing FreeCCR modules).init_qt(offscreen=False) — create/return the QApplication. Pass offscreen=True to force the offscreen Qt platform (matches FreeCCR's headless tests); the default Windows platform also works.capture_widget(widget, "desc") — render offscreen and save a PNG, returns the path.capture_and_click(widget, x, y, "desc") — click the child at (x, y), then capture.All screenshots save to: <repo>/scratch/.qt-screenshots/ (git-ignored).
Naming: {YYYY-MM-DD.HH-MM-SS}_{description}.png
capture_widget(widget, "description")Import after setup_freeccr_path(). None require images loaded; the
ccr_backend singleton is created on import.
from core.ccr_backend import ccr_backend # ensures the global singleton exists
from ui.main_window import MainWindow # MainWindow() — full app shell
from widgets.sliders_panel import SlidersPanel # SlidersPanel(None) — Kelvin/tint/exposure controls
from widgets.image_preview import ImagePreview # ImagePreview(None) — central canvas + toolbar
from widgets.curve_editor import CurveEditor # CurveEditor(None) — tone curve tool
from widgets.thumbnail_list import ThumbnailList # ThumbnailList(lambda *a: None) — sidebar (needs a callback)
from widgets.tether_banner import TetherBanner # TetherBanner(None) — tether status strip
# Widgets that need collaborators — pass lightweight stubs:
from widgets.dust_panel import DustRemovalPanel # DustRemovalPanel(main_window, image_preview)
from widgets.export_dialog import ExportSettingsDialog # ExportSettingsDialog() — reads ccr_backend.imagesimport sys
sys.path.insert(0, ".claude/skills/qt-testing")
from scripts.qt_capture import capture_widget, init_qt, setup_freeccr_path
setup_freeccr_path()
app = init_qt()
from core.ccr_backend import ccr_backend # singleton ready
from widgets.sliders_panel import SlidersPanel
panel = SlidersPanel(None)
panel.resize(360, 700) # give it a sensible size before grab()
path = capture_widget(panel, "sliders_panel_default")
print(f"Inspect: {path}")import sys
sys.path.insert(0, ".claude/skills/qt-testing")
from scripts.qt_capture import capture_widget, init_qt, setup_freeccr_path
setup_freeccr_path()
app = init_qt()
from ui.main_window import MainWindow
win = MainWindow()
win.resize(1280, 800)
path = capture_widget(win, "main_window_empty")
win.close()
print(f"Inspect: {path}")To interact with widgets (click buttons, etc.):
# Find widget at coordinates (from vision analysis)
target = widget.childAt(x, y)
# Trigger it directly (not mouse events)
if hasattr(target, 'click'):
target.click()
QApplication.processEvents()
# Capture result
capture_widget(widget, "after_click")Qt.WA_DontShowOnScreen - no window popup.setup_freeccr_path() before importing FreeCCR modules; import ccr_backend first so the singleton exists.resize/setFixedSize) before grab() — an unsized widget may render at its minimum.processEvents() after interactions before capture.childAt(x, y) to map vision coordinates to widgets..click()) work; simulated mouse events don't.DustRemovalPanel requires a main_window and image_preview; pass real instances or minimal stubs exposing the attributes it reads.© toonoumi, AGPL-3.0. 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 1 other file (scripts) in .claude/skills/qt-testing of toonoumi/FreeCCR.
Open the folder on GitHubat commit db1b679
Qt Testing 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 |
|---|---|---|---|---|---|---|
| Qt Testing this skilltoonoumi/FreeCCR | 181 | — | ~1.3k | Automated safety check: Pass | AGPL-3.0 | |
| Great Docspymc-labs/pathmc | 132 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Building Streamlit Custom Components V2iusztinpaul/designing-real-world-ai-agents-workshop | 513 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| UI UX Pro Maxfutureboard/futureboard-studio | 106 | — | ~5.6k | Automated safety check: Pass | MIT | |
| PosterlyChenruishuo/posterly | 415 | — | ~4.6k | Automated safety check: Notes | AGPL-3.0 | |
| Create Remotion GeistMarve10s/Better-Fullstack | 752 | — | ~1.4k | Automated safety check: Pass | MIT |
pymc-labs/pathmc
Generate documentation sites for Python packages with Great Docs.
iusztinpaul/designing-real-world-ai-agents-workshop
Builds bidirectional Streamlit Custom Components v2 (CCv2) using st.components.v2.component.
futureboard/futureboard-studio
Comprehensive design guide for web, mobile, and desktop applications.
Chenruishuo/posterly
Create or revise academic conference posters in HTML/CSS and export print-ready PDFs.
Marve10s/Better-Fullstack
Create Remotion videos using the Geist design system aesthetic.
Kayforkind/reimagine-it
Design Health — runs 19 deterministic quality checks on HTML output.
Works with
Categories
Capture and visually inspect FreeCCR's PySide6/Qt GUI widgets using screenshots. Qt Testing is an agent skill from toonoumi/FreeCCR. Capture and visually inspect FreeCCR's PySide6/Qt GUI widgets using screenshots.
Qt Testing fits situations like: asked to verify GUI rendering; test widget appearance; visually inspect any FreeCCR widget (image preview.
Run `npx skills add toonoumi/FreeCCR --skill qt-testing -a claude-code`. Or copy the skill folder (.claude/skills/qt-testing in toonoumi/FreeCCR) into .claude/skills/qt-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add toonoumi/FreeCCR --skill qt-testing -a codex`. Or copy the skill folder (.claude/skills/qt-testing in toonoumi/FreeCCR) into .agents/skills/qt-testing 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 toonoumi/FreeCCR --skill qt-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qt-testing, .gemini/skills/qt-testing, .github/skills/qt-testing and .opencode/skills/qt-testing in your project.
Going by SKILL.md and its folder, Qt Testing needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Qt Testing is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.4k 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 Qt Testing: Great Docs (pymc-labs/pathmc, 132 stars), Building Streamlit Custom Components V2 (iusztinpaul/designing-real-world-ai-agents-workshop, 513 stars), UI UX Pro Max (futureboard/futureboard-studio, 106 stars) and Posterly (Chenruishuo/posterly, 415 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
toonoumi (a GitHub user) maintains it in toonoumi/FreeCCR, which has 181 GitHub stars. The repository was last updated on October 7, 2026.
Source: toonoumi/FreeCCR on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.