Agent Browser CLI
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
Scaffold and maintain a DiscordPHP-based bot or an API-library-on-DiscordPHP (the DiscordPHP-MTG / DiscordPHP-NHA / DiscordPHP-Sabacc pattern) — client subclass, third-party HTTP layer, Parts…
$ npx skills add discord-php/DiscordPHP --skill discord-php-extension -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install discord-php/DiscordPHP discord-php-extension --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/discord-php/DiscordPHP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/discord-php-extension .claude/skills/discord-php-extension && 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 "discord-php-extension" agent skill from https://github.com/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extension into .claude/skills/discord-php-extension/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord-php-extension", 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/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extensionType 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 discord-php/DiscordPHP --skill discord-php-extension -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install discord-php/DiscordPHP discord-php-extension --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/discord-php/DiscordPHP.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/discord-php-extension .agents/skills/discord-php-extension && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "discord-php-extension" agent skill from https://github.com/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extension into .agents/skills/discord-php-extension/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord-php-extension", 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 discord-php/DiscordPHP --skill discord-php-extension -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install discord-php/DiscordPHP discord-php-extension --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/discord-php/DiscordPHP.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/discord-php-extension .cursor/skills/discord-php-extension && 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 "discord-php-extension" agent skill from https://github.com/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extension into .cursor/skills/discord-php-extension/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord-php-extension", 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/discord-php/DiscordPHP.git --path .github/skills/discord-php-extension--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 discord-php/DiscordPHP --skill discord-php-extension -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install discord-php/DiscordPHP discord-php-extension --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/discord-php/DiscordPHP.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/discord-php-extension .gemini/skills/discord-php-extension && 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 "discord-php-extension" agent skill from https://github.com/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extension into .gemini/skills/discord-php-extension/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord-php-extension", 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 discord-php/DiscordPHP discord-php-extensionInstalls 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 discord-php/DiscordPHP --skill discord-php-extension -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/discord-php/DiscordPHP.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/discord-php-extension .github/skills/discord-php-extension && 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 "discord-php-extension" agent skill from https://github.com/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extension into .github/skills/discord-php-extension/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord-php-extension", 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 discord-php/DiscordPHP --skill discord-php-extension -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install discord-php/DiscordPHP discord-php-extension --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/discord-php/DiscordPHP.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/discord-php-extension .opencode/skills/discord-php-extension && 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 "discord-php-extension" agent skill from https://github.com/discord-php/DiscordPHP/tree/master/.github/skills/discord-php-extension into .opencode/skills/discord-php-extension/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discord-php-extension", 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.
discord-php-extensionScaffold and maintain a DiscordPHP-based bot or an API-library-on-DiscordPHP (the DiscordPHP-MTG / DiscordPHP-NHA / DiscordPHP-Sabacc pattern) — client subclass, third-party HTTP layer, Parts…
Discord Php Extension is an agent skill from discord-php/DiscordPHP. Scaffold and maintain a DiscordPHP-based bot or an API-library-on-DiscordPHP (the DiscordPHP-MTG / DiscordPHP-NHA / DiscordPHP-Sabacc pattern) — client subclass, third-party HTTP layer, Parts, repositories, JSON state store, the init/application-init boot guard, composer path-repo wiring, and the CRLF/diff gotcha. Use when creating a new extension repo or working across the existing ones.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Discord and PHP. The repository describes itself as: An API to interact with the popular messaging app Discord. The licence is MIT.
Read from SKILL.md and the folder at commit 580c66a. 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:
gitcomposerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Discord Php Extension loads about 1.7k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 484 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 discord-php/DiscordPHP at commit 580c66a, republished under its MIT licence (© discord-php). 484 words, ~1,707 tokens.
.claude/skills/discord-php-extension/SKILL.md (or your agent's skills folder).Distilled from the discord-php/DiscordPHP-{MTG,NHA,Sabacc} extensions, which all
follow the same shape: a MessageCommandClient subclass that also speaks to some
third-party REST API and/or persists per-user state.
src/<Ns>/
<Ns>.php MessageCommandClient subclass; wires the HTTP client,
the Client part, and any services (Store, Shop, engine)
Client.php (only if you add repositories) extends
Discord\Parts\User\Client, adds entries to $repositories
Http/
Http.php implements HttpInterface, `use HttpTrait`; points BASE_URL
at the third-party API
Endpoint.php implements EndpointInterface, `use EndpointTrait`; the
route table as `const`s with `:param` placeholders
Request.php extends Discord\Http\Request; overrides getUrl() to
prepend Http::BASE_URL
Repository/ AbstractRepository + one per API resource (optional)
Parts/ one Part subclass per API object; $fillable + get*Attribute()
<Ns>Trait.php pure presentation/helpers (no API, no I/O)
bot.php boot + slash-command registration + component routing
tests/ pure-logic tests; no live gateway
composer.json, .php-cs-fixer.dist.php, pint.json, phpunit.xml, env.exampleKeep game/business logic in a namespace that imports nothing from Discord\ so
it is unit-testable in isolation (see Sabacc\Pazaak).
class Foo extends \Discord\MessageCommandClient
{
protected Http $foo_http;
public function __construct(array $options = [])
{
parent::__construct($options);
$this->foo_http = new Http('', $this->loop, $options['logger'] ?? new NullLogger(), new React($this->loop, $options['socket_options'] ?? []));
// If you added repositories:
$this->client = $this->factory->part(Client::class, (array) $this->client);
}
}MTG passed
'Bot '.$this->token into its Http and leaked the token on every request —
pass '' and only add an Authorization header when a value is actually set.Http logger arg to new NullLogger(), not null (the trait
type-hints LoggerInterface).$options['socket_options'] → new React($this->loop, ...) lets callers set
dns etc.Discord fires both init and application-init; the command tree needs the
application to be ready. Guard so your setup runs exactly once, after both:
$ready = $appReady = false;
$boot = function () use (&$ready, &$appReady, $bot, ...) {
if (! $ready || ! $appReady) return;
$bot->application->commands->freshen()->then($registerCommands);
$bot->listenCommand('foo', fn (Interaction $i) => $commands->dispatch($i));
// component routing, presence, ...
};
$bot->once('init', function () use (&$ready, $boot) { $ready = true; $boot(); });
$bot->once('application-init', function () use (&$appReady, $boot) { $appReady = true; $boot(); });Common client options: 'intents' => Intents::getDefaultIntents(),
'disableVoiceClient' => true (unless you need voice — it still opens the gateway
regardless), 'storeMessages' => true only if you read from the message cache.
For per-user wallets / identities / settings, a flat JSON file is enough (see
NHA\StateStore, Sabacc\Economy\Store):
file_put_contents($path.'.'.getmypid().'.tmp', json_encode(...))
then @rename($tmp, $path). Sweep stale *.tmp on load./var/* + !/var/.gitkeep."require": {
"php": "^8.3",
"team-reflex/discord-php": "dev-master",
"discord-php/http": "dev-master as 10.1.7" // needed: team-reflex/discord-php
}, // dev-master requires http ^10.1.7,
"minimum-stability": "dev", "prefer-stable": true,
"repositories": [ // local dev against sibling checkouts
{ "type": "path", "url": "../DiscordPHP", "options": { "symlink": true } },
{ "type": "path", "url": "../DiscordPHP-Http", "options": { "symlink": true } }
]Run COMPOSER_ROOT_VERSION=dev-main composer install (Composer cannot detect the
root version through the path repos otherwise). composer.lock is gitignored in
these repos.
.php-cs-fixer.dist.php uses ['@auto' => true, 'phpdoc_align' => [...vertical...], 'phpdoc_indent' => true].
pint.json is {"preset": "psr12", "rules": {"declare_strict_types": true}}.
Every file starts with declare(strict_types=1); and the project header comment.
These repos have core.autocrlf=true and no .gitattributes, so php-cs-fixer
writes CRLF on disk and Git normalises to LF on git add. A raw git diff after
running composer cs shows every line changed. Always inspect the real change
set with git diff --cached (after git add) or git diff --cached --stat, not
git diff.
In the core DiscordPHP repo, PHPDoc changes are additive only — add
@property / @param tags, never reword existing prose (it mirrors Discord's
official docs). Extension repos are freer, but still lead with a one-paragraph
class docblock saying what the class is and what it is NOT responsible for.
When a class extends a DiscordPHP part (or any class), narrow each override's
return type to the most specific type it can truly return. PHP return types are
covariant, so Part can become Channel when a Thread is impossible. Make
every path honour it: no return parent::…() with the broader type, and no
hydrating through a TYPES map that holds types outside it. Inherited methods
that can never work in the subclass's context should return
reject(new \BadMethodCallException(…)) rather than fail at Discord. The core
repo's .agents/skills/part-model-maintainer has the full pattern.
© discord-php, 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 .github/skills/discord-php-extension of discord-php/DiscordPHP.
Open the folder on GitHubat commit 580c66a
Discord Php Extension 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 |
|---|---|---|---|---|---|---|
| Discord Php Extension this skilldiscord-php/DiscordPHP | 1.1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Agent Browser CLIvercel-labs/agent-browser | 44k | 24 repos | ~864 | Automated safety check: Pass | Apache-2.0 | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT | |
| Fortify Developmentcoollabsio/coolify | 63k | 4 repos | ~1.9k | Automated safety check: Pass | MIT | |
| MCP Developmentcoollabsio/coolify | 63k | 1 repos | ~949 | Automated safety check: Pass | MIT |
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
vercel-labs/agent-browser
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
discord-php/DiscordPHP
Maintain test and documentation alignment — PHPUnit tests, async testing patterns, PHPDoc contracts, guide pages, and documentation workflow.
discord-php/DiscordPHP
Audit checklist for DiscordPHP bots and API libraries — stop the bot token leaking to third-party APIs or logs, keep secrets out of customids and exception messages, use constant-time comparison and…
discord-php/DiscordPHP
Build DiscordPHP slash commands and message components — global command trees with subcommands, user- AND guild-installable commands usable in DMs / group DMs / guild channels, Components V2…
discord-php/DiscordPHP
Work with DiscordPHP's infrastructure utilities — CacheWrapper, CacheConfig, BigInt, Multipart, Endpoint::bind URL templates, Collection base class, and domain Exceptions.
discord-php/DiscordPHP
Maintain Part domain models — fillable attributes, mutators, typed nested data, save/fetch behavior, permission checks, PHPDoc, and repository bindings.
discord-php/DiscordPHP
Maintain Discord.php runtime bootstrapping, startup options, event loop, gateway connection, reconnection, member chunking, cache configuration, and process lifecycle.
Scaffold and maintain a DiscordPHP-based bot or an API-library-on-DiscordPHP (the DiscordPHP-MTG / DiscordPHP-NHA / DiscordPHP-Sabacc pattern) — client subclass, third-party HTTP layer, Parts…. Discord Php Extension is an agent skill from discord-php/DiscordPHP. Scaffold and maintain a DiscordPHP-based bot or an API-library-on-DiscordPHP (the DiscordPHP-MTG / DiscordPHP-NHA / DiscordPHP-Sabacc pattern) — client subclass, third-party HTTP layer, Parts, repositories, JSON state store, the init/application-init boot guard, composer path-repo wiring, and the CRLF/diff gotcha.
Discord Php Extension fits situations like: creating a new extension repo; working across the existing ones.
Run `npx skills add discord-php/DiscordPHP --skill discord-php-extension -a claude-code`. Or copy the skill folder (.github/skills/discord-php-extension in discord-php/DiscordPHP) into .claude/skills/discord-php-extension in your project. Claude Code loads it when a task matches its description.
Run `npx skills add discord-php/DiscordPHP --skill discord-php-extension -a codex`. Or copy the skill folder (.github/skills/discord-php-extension in discord-php/DiscordPHP) into .agents/skills/discord-php-extension 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 discord-php/DiscordPHP --skill discord-php-extension -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/discord-php-extension, .gemini/skills/discord-php-extension, .github/skills/discord-php-extension and .opencode/skills/discord-php-extension in your project.
Going by SKILL.md and its folder, Discord Php Extension needs the command-line tools its instructions call (git and composer).
SKILL.md contains no URLs. Its commands use git, 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.
Discord Php Extension is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.8k 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 Discord Php Extension: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Configuring Horizon (coollabsio/coolify, 63k stars), Tailwindcss Development (anonaddy/anonaddy, 4.9k stars) and Fortify Development (coollabsio/coolify, 63k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
discord-php (a GitHub organization) maintains it in discord-php/DiscordPHP, which has 1,080 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 6, 2026.
Source: discord-php/DiscordPHP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.