Check logo

Check

OrganizationPopular
VibiumDev
check

Independently check application acceptance criteria in a live browser or saved recording with the Vibium CLI. Use for a formal verification step in the development loop, with PASS, FAIL, or INCONCLUSIVE and recorded evidence.

Overview

PublisherVibiumDev
Repositoryvibium
Skill namecheck
Stars
2.9K
Forks
186
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by VibiumDev on GitHub. Read the source before you install it.

Installation

Install the Check AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/VibiumDev/vibium.git /tmp/vibium
mkdir -p .claude/skills
cp -r /tmp/vibium/skills/check .claude/skills/check
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Check in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Check on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Check is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Check with Vibium

Use vibium check "<claim>" to hand a specific acceptance claim to a fresh verifier context. The coding agent builds and fixes the application; Vibium's verifier investigates the running behavior with constrained browser tools. Your own browser inspection does not substitute for this invocation.

Setup

Use the project's configured Vibium binary. Otherwise try vibium, ./clicker/bin/vibium, then ./node_modules/.bin/vibium. Confirm vibium check --help works. Local Chrome is the tested baseline for live checks. For initial live setup, run vibium ready browser --json with the selected engine/channel. It inspects browser and driver files without launching them or touching the current browser; launch and BiDi connectivity remain untested. Follow its install/fix guidance if needed. Saved-input checks do not require a browser; skip browser readiness for them.

For OpenAI, export VIBIUM_AI_PROVIDER=openai, VIBIUM_AI_MODEL, and OPENAI_API_KEY. For xAI, select xai and export XAI_API_KEY (for example --model grok-4). For Anthropic, select anthropic and export ANTHROPIC_API_KEY; for Google, select google and export GOOGLE_API_KEY. Set a model available to that provider. Leave VIBIUM_AI_REASONING_EFFORT unset for Anthropic/Google. local uses the compatible adapter, defaults to http://127.0.0.1:8080/v1, and requires no key. Never manage or install a model runtime as part of Check.

An OpenAI-compatible service uses VIBIUM_AI_PROVIDER=openai-compatible and VIBIUM_AI_BASE_URL. Use the project's existing configuration. Vibium loads ~/.config/vibium/ai.env for empty AI variables; nonempty process environment still wins. If none exists, tell the user to run vibium config init and fill in that file — do not write credentials to it yourself. Never print or log credentials. Do not choose another provider or model to work around a missing configuration without the user's direction.

After loading settings, run vibium ready ai --json during initial setup or when provider configuration changes. Exit 0 and result.ready: true mean the configuration and provider tool round-trip passed; exit 1 includes failed checks and fixes. It makes up to two small model requests and does not launch or change a browser. It does not check the application or replace Check. Resolve reported setup problems before the browser workflow; do not rerun it before every claim when the configuration is unchanged.

Run accomplishes a browser goal; its completed result does not replace a Check verdict. Check never inherits Run's conversation. For guidance on Run and general browser automation, use the browser skill if installed.

For a user-requested provider comparison or eval, pass --provider, --model, --base-url, and --reasoning-effort per invocation. Pass the same overrides to vibium ready ai. Changing provider clears the inherited model, endpoint, and effort, so supply a model and any custom endpoint explicitly. Same-provider calls keep unspecified defaults; use --base-url "" or --reasoning-effort "" to reset them. Credentials stay in the runtime environment. Overrides do not change later calls or weaken Check's independence.

Development loop

  1. Turn the requested behavior into a concrete, observable claim. Keep the acceptance condition faithful to the request. For example: “Changing the timezone persists after refresh.” State any boundaries needed for the task, such as inspecting a cart without proceeding to checkout. If several independent behaviors matter, check them separately.
  2. Run the application and exercise the relevant flow through the existing Vibium CLI. Use go, map, find, click, and fill; inspect fresh refs after page changes. Reuse the current browser, page, and --session or VIBIUM_SESSION throughout setup and verification. Create a named session only when starting a new isolated test, not when verifying existing state.
  3. Record the flow. If the user already has a recording active, keep it active. Otherwise start one with vibium record start (the default filename is unique) and stop/save the recording you started after verification, even when the check fails. Do not stop someone else's browser or recording.
  4. Run vibium check --json "<claim>" in that same session. The command starts a fresh verifier conversation; do not send the builder transcript, source code, or a suggested verdict. It may operate the page to test the claim. Let it finish before continuing browser work.
  5. Read the JSON result and report the actual verdict, concise evidence, and recording path. The Check group contains verifier-driven child actions. A passed check applies to the stated claim and observed session.
  6. When a check fails and fixing the application is within the user's task, investigate the evidence, fix the cause, and rerun the original claim. Preserve the earlier result. Do not weaken the claim or retry unchanged behavior until a model happens to pass it. For INCONCLUSIVE, address the missing evidence or report the limitation. Stop when the requested claims pass or a concrete blocker requires user input.

Browser cleanup

Check preserves an existing browser session. If it starts a browser itself, it closes that browser after saving any requested recording, on all verdicts and execution errors. Use --keep-open when a standalone check should leave the browser available for inspection or more work. Do not assume it stays open just because --output saved a recording. --keep-open is live-only and cannot be combined with --input.

Recording and report flags

Use -o verification.zip to record the verification run automatically when no recording is active. It includes video when supported (Firefox 154+), finalized before browser cleanup. With an active recording, it exports the whole current chunk through Check without stopping or resetting it; the export excludes continuous video. Choose a new path different from the active recording's output. Use --report verdict.json for a separate JSON verdict; --json still controls stdout. Files are not overwritten, and available recording evidence is saved even if the verifier encounters an operational error.

When asked to verify saved evidence, use vibium check -i record.zip "<claim>" instead of the live browser steps above. --input accepts Vibium recordings and compatible Playwright version 8 traces. Inspect the actual evidence behind earlier verdicts; do not treat an embedded PASS as proof. Report that the result concerns the recorded run. --input cannot be combined with --output; use --report to save this verdict. --record and --trace are not input flags.

Result contract

Successful execution returns:

json
{"ok":true,"result":{"status":"passed","claim":"…","summary":"…","evidence":[{"type":"observation","summary":"…"}]}}

result.status is passed, failed, or inconclusive, displayed as PASS, FAIL, or INCONCLUSIVE. All three verdicts have CLI exit code zero. A script that gates completion must inspect result.status; exit zero alone is not a pass. Provider, configuration, and browser execution failures are errors, not FAIL verdicts. Report them separately and retain available evidence.

For browser automation, exploration, and recording, use the browser skill if installed. It supplies a broader CLI reference; this skill can run on its own using vibium <command> --help when needed.

Frequently asked questions

What does the Check AI skill do?

Independently check application acceptance criteria in a live browser or saved recording with the Vibium CLI. Use for a formal verification step in the development loop, with PASS, FAIL, or INCONCLUSIVE and recorded evidence.

Why use Check on TypingMind?

Because you install it once and use it with any model. Check is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Check in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/VibiumDev/vibium/tree/main/skills/check. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Check?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Check?

As many as you like. As long as a model supports skills, you can use Check with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Check AI skill free?

Yes. It is published on GitHub by VibiumDev under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇