dub — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dub (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.

Create, manage, and analyze short links from chat -- shorten URLs, track clicks, manage custom domains, and organize links with tags. Powered by ClawLink for hosted OAuth.
| Step 1: Install | Step 2: Pair Account | Step 3: Connect Dub |
|---|---|---|
![]() | ![]() | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Dub |
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Dub API │
│ (User Chat) │ │ (OAuth) │ │ │
└─────────────────┘ └──────────────┘ └──────────────────┘openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart// 1. Create a short link
clawlink_call_tool({ tool: "dub_upsert_link", parameters: { url: "https://example.com/long-page", domain: "dg.gg" } })
// 2. List your links
clawlink_call_tool({ tool: "dub_get_links", parameters: {} })
// 3. Get link analytics
clawlink_call_tool({ tool: "dub_get_link_info", parameters: { linkId: "link_123" } })ClawLink manages OAuth tokens -- no API keys required. Connect Dub at claw-link.dev/dashboard?add=dub.
// List connections
clawlink_list_integrations()
// Verify
clawlink_call_tool({ tool: "dub_get_workspace", parameters: {} })| Tool | Description | Mode |
|---|---|---|
dub_upsert_link | Create or update a short link (upsert by domain+key) | Write |
dub_get_link_info | Get details for a specific short link | Read |
dub_get_links | List links with filtering by domain, tags, folder, search | Read |
dub_get_links_count | Get count of links matching filters | Read |
dub_bulk_update_links | Update multiple links at once by IDs | Write |
dub_bulk_delete_links | Delete up to 100 links at once (non-existing IDs ignored) | Write |
| Tool | Description | Mode |
|---|---|---|
dub_create_domain | Add a custom domain to workspace | Write |
dub_update_domain | Update domain configuration (redirects, deep linking) | Write |
dub_delete_domain | Permanently remove a domain from workspace | Write |
dub_list_domains | List all domains for workspace | Read |
| Tool | Description | Mode |
|---|---|---|
dub_create_tag | Create a new tag for organizing links | Write |
dub_update_tag | Update tag name or color | Write |
dub_delete_tag | Delete a tag permanently | Write |
dub_get_tags | List tags with pagination and search | Read |
| Tool | Description | Mode |
|---|---|---|
dub_get_workspace | Get workspace details, plan, usage limits | Read |
dub_update_workspace | Update workspace name, slug, logo, settings | Write |
| Tool | Description | Mode |
|---|---|---|
dub_track_open | Track a deep link open event | Write |
// Create a short link
const link = await clawlink_call_tool({
tool: "dub_upsert_link",
parameters: {
url: "https://example.com/landing-page",
domain: "dg.gg",
key: "my-campaign",
title: "Summer Campaign"
}
});
// List all links tagged "marketing"
const links = await clawlink_call_tool({
tool: "dub_get_links",
parameters: { tagIds: ["tag_123"] }
});// Create a tag
await clawlink_call_tool({
tool: "dub_create_tag",
parameters: { name: "newsletter", color: "#3B82F6" }
});
// List domains
const domains = await clawlink_call_tool({
tool: "dub_list_domains",
parameters: {}
});// Bulk delete old links
await clawlink_call_tool({
tool: "dub_bulk_delete_links",
parameters: { linkIds: ["link_1", "link_2", "link_3"] }
});
// Get link count
const count = await clawlink_call_tool({
tool: "dub_get_links_count",
parameters: { domain: "dg.gg" }
});clawlink_list_integrations to confirm dub is connected.clawlink_list_tools --integration dub to see the live catalog.clawlink_search_tools({ query: "link", integration: "dub" }) to find specific tools.READ (safe): get_links → get_link_info → list_domains → get_tags
WRITE (confirm): upsert_link → create_domain → create_tag → update_workspace
DELETE (high): bulk_delete_links → delete_domain → delete_tag| Status / Error | Meaning |
|---|---|
| 401 Unauthorized | OAuth token expired -- reconnect at dashboard |
| 403 Forbidden | Insufficient workspace permissions |
| 404 Not Found | Link, domain, or tag ID does not exist |
| 409 Conflict | Domain already exists or link key is taken |
| 429 Rate Limited | Too many requests -- apply backoff |
clawlink_list_integrations to confirm pairingdub_list_domains to confirm domain IDsPowered by [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=dub) -- an integration hub for OpenClaw

~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.