Agent Browser
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
Keep watch on competitors (and, where sources allow, industry people) on a schedule and report only real changes.
$ npx skills add HybridAIOne/hybridclaw --skill competitor-monitoring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HybridAIOne/hybridclaw competitor-monitoring --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/HybridAIOne/hybridclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/community-skills/competitor-monitoring .claude/skills/competitor-monitoring && 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 "competitor-monitoring" agent skill from https://github.com/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoring into .claude/skills/competitor-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-monitoring", 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/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoringType 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 HybridAIOne/hybridclaw --skill competitor-monitoring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HybridAIOne/hybridclaw competitor-monitoring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HybridAIOne/hybridclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/community-skills/competitor-monitoring .agents/skills/competitor-monitoring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "competitor-monitoring" agent skill from https://github.com/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoring into .agents/skills/competitor-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-monitoring", 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 HybridAIOne/hybridclaw --skill competitor-monitoring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HybridAIOne/hybridclaw competitor-monitoring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HybridAIOne/hybridclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/community-skills/competitor-monitoring .cursor/skills/competitor-monitoring && 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 "competitor-monitoring" agent skill from https://github.com/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoring into .cursor/skills/competitor-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-monitoring", 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/HybridAIOne/hybridclaw.git --path community-skills/competitor-monitoring--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 HybridAIOne/hybridclaw --skill competitor-monitoring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HybridAIOne/hybridclaw competitor-monitoring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HybridAIOne/hybridclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/community-skills/competitor-monitoring .gemini/skills/competitor-monitoring && 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 "competitor-monitoring" agent skill from https://github.com/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoring into .gemini/skills/competitor-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-monitoring", 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 HybridAIOne/hybridclaw competitor-monitoringInstalls 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 HybridAIOne/hybridclaw --skill competitor-monitoring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HybridAIOne/hybridclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/community-skills/competitor-monitoring .github/skills/competitor-monitoring && 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 "competitor-monitoring" agent skill from https://github.com/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoring into .github/skills/competitor-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-monitoring", 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 HybridAIOne/hybridclaw --skill competitor-monitoring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HybridAIOne/hybridclaw competitor-monitoring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HybridAIOne/hybridclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/community-skills/competitor-monitoring .opencode/skills/competitor-monitoring && 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 "competitor-monitoring" agent skill from https://github.com/HybridAIOne/hybridclaw/tree/main/community-skills/competitor-monitoring into .opencode/skills/competitor-monitoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-monitoring", 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.
competitor-monitoringKeep watch on competitors (and, where sources allow, industry people) on a schedule and report only real changes.
Competitor Monitoring is an agent skill from HybridAIOne/hybridclaw. Keep watch on competitors (and, where sources allow, industry people) on a schedule and report only real changes. Use when someone wants a competitor monitored, asks what a watched company has been doing, wants to change or stop a watch — and always when a scheduled run tells you to. Triggers include "watch", "keep an eye on", "monitor competitor", "what is the competition doing", "what changed at X", "stop watching", and their German equivalents ("beobachte", "behalte im Auge", "was macht der Wettbewerb").
Its SKILL.md is about 3.1k 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 Productivity & Automation. The repository describes itself as: Enterprise-ready self-hosted AI assistant runtime with sandboxed execution, secure credentials, approvals, and memory. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8162701. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
allianz.deFrom 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.
Competitor Monitoring loads about 3.1k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 1,521 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 HybridAIOne/hybridclaw at commit 8162701, republished under its MIT licence (© HybridAIOne). 1,521 words, ~3,071 tokens.
.claude/skills/competitor-monitoring/SKILL.md (or your agent's skills folder).You watch competitors for a salesperson. They read the result in an app, not
in the chat — the Sales Companion iOS app parses a fenced watch block from
your daily memory note. Your job is not to write a nice report but to detect
reliably what changed since the last run, and to leave out everything else.
Keep the tone factual. No "exciting", no "interestingly". A salesperson reads this in twenty seconds in the morning. Write names, titles and details in the user's language.
| What | Where | How |
|---|---|---|
| Schedule | one cron task per target | cron add / update / remove — chat only |
| Watchlist | watch/targets.json in the workspace | read / write |
| Comparison state | watch/<target-id>.json in the workspace | read / write |
| Result for the app | today's daily note | memory with action: "append", target: "daily" |
watch/targets.json is the watchlist. Scheduled runs cannot call cron
at all — the tool is blocked there — so they can only know the full list from
this file. Change it in the same step as the cron task, every time:
{"targets": [
{"id": "<target-id>", "name": "<display name>", "kind": "company",
"focus": "<what to watch>", "schedule": "<e.g. täglich 07:30>",
"url": "<website>", "task_id": <number from cron add>}
]}This and every other <…> shape in this file is a template: fill in
real values from the user's request, watch/targets.json or this run. Never
write a template, or an example company name from this file, into any file.
task_id is the number cron add reports ("Scheduled … task #42 …"); pass
it as taskId to update and remove.
Why these stores: the memory tool may only write today's daily note, and
only memory files are synced to the platform, where the app reads them. A
workspace file never reaches the app, so it holds your own state.
This happens in a chat with the user, where cron is available.
Clarify who and what to look for. If the focus is missing, ask exactly once ("What should I watch at Allianz — prices, products, people?"). If the website is missing, look it up yourself; do not ask.
Derive a stable id from the name: lowercase ASCII, hyphens, no
umlauts — allianz-de, barmenia, jane-doe. If watch/targets.json
already has it, update that watch instead of adding a second one.
Create the cron task:
cron action=add
cron="<minute> <hour> * * *"
tz="<user's IANA time zone>"
channel="<the user's email address>"
prompt="Competitor monitoring: use the competitor-monitoring skill,
read its SKILL.md and follow it. Target: <target-id>
(<display name>, <website>), kind=<company|person>,
focus: <what to watch>."tz with the user's IANA time zone so the run keeps its local time
across daylight-saving changes. If you do not know it, ask; for a
German-speaking user, Europe/Berlin is the usual answer.channel is required when the request comes from a web chat
session: the tool refuses to schedule there, because the output of a task
created without a delivery channel would be discarded. Use the user's
email address or another configured messaging target. If none is known,
say so plainly instead of trying without one.Add the target with its task_id to watch/targets.json (create the file
if it is missing).
Do not create watch/<id>.json. The first scheduled run records the
baseline; a file created now would only be empty.
Write the result block right away (section C) with the updated list and
"findings": []. Otherwise the new target only appears in the app after
the first scheduled run.
Confirm in one sentence: "I'm watching Allianz from tomorrow morning, focus pet insurance."
Changing a watch (time, focus): cron action=update taskId=<task_id>
from watch/targets.json, then update the entry there. Never add a second
task for the same target.
Removing a watch: cron action=remove taskId=<task_id>, remove the
entry from watch/targets.json, delete watch/<id>.json, write the block
again.
You receive the task's prompt. cron is not available here; do not try it.
Work strictly in this order:
Read the watchlist and the previous state. read watch/targets.json
and read watch/<id>.json. If the state file is missing or its
snapshots are empty, this is a baseline run: fetch the sources, save
them as the state (step 6) and report nothing as a finding — there is
nothing to compare against yet. Still write the block with
"findings": [].
Fetch the current state. Use several sources, not just one:
web_search with freshness: "week" on company name plus focusweb_fetch on the pages that belong to the focus (pricing, product,
press pages) — they are listed in the state under snapshotskind=person, also search name plus role. Social activity is only
partly visible with the available tools, so rely on interviews, talks,
press releases and job changes.Compare. For each source: did the substance change? Ignore counters, dates, cookie banners, ordering and rewording that does not change meaning.
Judge. A finding only counts if it falls into one of these categories. Use the category names as given; the app shows them as labels.
category | Example |
|---|---|
Preis (price) | plan more expensive, new discount, tiers changed |
Produkt (product) | new product, benefit dropped, terms changed |
Partnerschaft (partnership) | cooperation, reseller, integration |
Finanzierung (funding) | funding round, acquisition, sale |
Personal (people) | change in management or sales leadership |
Stellen (hiring) | notable job ads that reveal a direction |
Everything else — guide articles, blog posts, social chatter, redesigns,
anniversaries — is severity: "minor" or does not belong in the block at
all. severity: "significant" is only for what the salesperson must know
today because it changes a conversation; only significant triggers a
notification on their phone. When in doubt, minor: a phone that buzzes
too often gets muted.
Deduplicate. Give every finding a fingerprint: category, source URL
and the new value in a few words — Preis|https://allianz.de/preise|Premium 27,90 €. If the state's reported map already has that fingerprint, the
change was reported before: drop it from this run. Otherwise assign a new
id (see section C).
Write the result block first (section C). Only if the memory append
succeeded, go on to step 7. If it fails — for example because today's note
is full — stop and leave the state untouched, so the next run finds the
same changes again instead of losing them. Reply with the failure line
(step 8).
Then update the state. write watch/<id>.json:
{"target": "<target-id>",
"snapshots": {
"<source url>": {"fetched_at": "<ISO time>", "summary": "<short>",
"key_facts": {"<fact>": "<value>"}}},
"reported": {
"<fingerprint>": {"id": "<finding id>", "first_seen": "<YYYY-MM-DD>"}}}Keep summary short — this file is your memory, not an archive. Drop
reported entries older than 30 days; the app only sees about two weeks
of notes anyway.
Reply with a short digest. Your final reply is delivered to the task's channel — usually the user's inbox — after every run, so it must be readable at a glance. Plain text in the user's language, no preamble, no JSON, no tables, no sign-off. Exactly one of these shapes:
<Name>: <finding title> — <source url><Name>: <n> kleinere Änderungen, Details in der App.<Name>: nichts Neues.<Name>: Beobachtung läuft, Ausgangsstand gespeichert.<Name>: Lauf fehlgeschlagen — <reason in a few words>.If you find nothing, write the block anyway, with "findings": []. The app
tells "nothing happened" apart from "the run did not take place".
The app reads only this block. Append it with memory
(action: "append", target: "daily") to the end of today's daily note.
The shape — a template, not data. Every <…> is replaced with real values;
the block you write must be valid JSON with no < or > left in it:
```watch
{
"targets": [
{"id": "<target-id>", "name": "<display name>", "kind": "<company|person>",
"focus": "<what is watched>", "schedule": "<human-readable, local time>",
"url": "<website>"}
],
"findings": [
{"id": "<finding id>", "target": "<target-id>",
"date": "<YYYY-MM-DD>", "severity": "<significant|minor>", "category": "<category>",
"title": "<one line, user's language>",
"detail": "<at most two sentences>",
"source": "<page where you saw it>"}
]
}
```Write only what is real. targets comes from watch/targets.json;
findings only from changes you saw in this run (or []). A block that
repeats this template's placeholders, or invents a company that is not on
the watchlist, puts false alerts on the user's phone.
Rules that are not negotiable:
targets always holds the complete list from watch/targets.json —
not just this run's target — without the internal task_id. The app takes
the list from the newest note; an incomplete list makes targets disappear.kind is company or person. schedule is a human-readable
label in the user's language and local time ("täglich 07:30"), not the cron
expression.id is assigned once and never changes. Scheme:
<target>-<first-seen date>-<running number>, recorded in the state's
reported map under the finding's fingerprint. Never derive an id from
today's date for a change that was already reported — the app remembers
announced ids and would notify twice.detail stays within two sentences. Daily notes are truncated at
20,000 characters when synced and the space is shared; long explanations
belong in watch/<id>.json, not here.source is the page where you saw it, not the homepage. No verifiable
source, no finding.© HybridAIOne, 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 community-skills/competitor-monitoring of HybridAIOne/hybridclaw.
Open the folder on GitHubat commit 8162701
Competitor Monitoring 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 |
|---|---|---|---|---|---|---|
| Competitor Monitoring this skillHybridAIOne/hybridclaw | 159 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Agent Browserquran/quran.com-frontend-next | 1.9k | 40 repos | ~3.3k | Automated safety check: Pass | None | |
| Dependency Watchtelegramdesktop/tdesktop | 33k | 1 repos | ~2.2k | Automated safety check: Pass | GPL-3.0 | |
| Perform Tasktelegramdesktop/tdesktop | 33k | 2 repos | ~3k | Automated safety check: Pass | GPL-3.0 | |
| Brave Searchbadlogic/pi-skills | 2.6k | 5 repos | ~592 | Automated safety check: Pass | MIT | |
| Garden Inboxpaperclipai/paperclip | 100k | — | ~1.1k | Automated safety check: Pass | MIT |
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
telegramdesktop/tdesktop
Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks.
telegramdesktop/tdesktop
Resolve, start or resume, implement, review, test, and publish exactly one existing ai-tdesktop task by short slug or full dated id, including rare blocked retries and split-required results.
badlogic/pi-skills
Web search and content extraction via Brave Search API. An agent skill from badlogic/pi-skills.
paperclipai/paperclip
Scan a Paperclip user's Mine inbox, classify reversible archive candidates, request checkbox confirmation, and archive only accepted selections.
telegramdesktop/tdesktop
Continue autonomous Telegram Desktop development from the shared ai-tdesktop repository.
HybridAIOne/hybridclaw
Use Hermes3000 to plan, draft, revise, save, check consistency, and export long-form manuscripts through the Hermes3000 AI writing portal API.
HybridAIOne/hybridclaw
Plan, script, render, and stitch Manim Community Edition videos in Python.
HybridAIOne/hybridclaw
Create and update SKILL.md-based skills with strong trigger metadata, lean docs, and reliable init, validate, package, and publish workflows.
HybridAIOne/hybridclaw
Create, edit, inspect, and analyze .xlsx spreadsheets and Excel workbooks.
HybridAIOne/hybridclaw
Create and revise editable .excalidraw diagrams as Excalidraw JSON for architecture diagrams, flowcharts, sequence diagrams, concept maps, and other hand-drawn explainers.
HybridAIOne/hybridclaw
Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.
Categories
Keep watch on competitors (and, where sources allow, industry people) on a schedule and report only real changes. Competitor Monitoring is an agent skill from HybridAIOne/hybridclaw. Keep watch on competitors (and, where sources allow, industry people) on a schedule and report only real changes.
Competitor Monitoring fits situations like: someone wants a competitor monitored; asks what a watched company has been doing; wants to change; stop a watch — and always when a scheduled run tells you to.
Run `npx skills add HybridAIOne/hybridclaw --skill competitor-monitoring -a claude-code`. Or copy the skill folder (community-skills/competitor-monitoring in HybridAIOne/hybridclaw) into .claude/skills/competitor-monitoring in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HybridAIOne/hybridclaw --skill competitor-monitoring -a codex`. Or copy the skill folder (community-skills/competitor-monitoring in HybridAIOne/hybridclaw) into .agents/skills/competitor-monitoring 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 HybridAIOne/hybridclaw --skill competitor-monitoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/competitor-monitoring, .gemini/skills/competitor-monitoring, .github/skills/competitor-monitoring and .opencode/skills/competitor-monitoring in your project.
SKILL.md names no scripts, command-line tools or credentials: Competitor Monitoring is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: allianz.de. 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.
Competitor Monitoring 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.1k tokens (SKILL.md is roughly 12k 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 Competitor Monitoring: Agent Browser (quran/quran.com-frontend-next, 1.9k stars), Dependency Watch (telegramdesktop/tdesktop, 33k stars), Perform Task (telegramdesktop/tdesktop, 33k stars) and Brave Search (badlogic/pi-skills, 2.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HybridAIOne (a GitHub organization) maintains it in HybridAIOne/hybridclaw, which has 159 GitHub stars. The repository holds 72 skills in this directory. The repository was last updated on October 9, 2026.
Source: HybridAIOne/hybridclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.