Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计提醒

openprovideropenprovider 搜索

Agent Skill

openprovider 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

4,039

周安装

165

GitHub Stars

公开资料未说明

下载量

1,307
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openprovider(openprovider 搜索)
来源仓库:https://github.com/jpj069/openprovider
安装命令:
openclaw skills install openprovider
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install openprovider

简介

openprovider 用于 OpenProvider 域名注册商和 DNS 管理。

  • 它支持注册、续订、转移和删除域名等操作,适合网站运维场景。
  • 通过 clawhub 安装,命令为 openclaw skills install openprovider,需结合来源仓库和 README 核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 适用于需要自动化域名管理或 DNS 配置的场景。

SKILL.md

name
openprovider
description
>

OpenProvider Skill

OpenProvider (openprovider.eu) is the domain registrar and DNS provider for Atlas Frontline. This skill handles all domain, DNS, SSL, and customer handle operations via the OpenProvider REST API v1beta.

Auth Flow

Always obtain a token before making any API call.

  1. Load credentials: OPENPROVIDER_USERNAME / OPENPROVIDER_PASSWORD (env vars), with legacy fallback from OPENPROVIDER_USER / OPENPROVIDER_PASS, or DB table system_settings (key: integration_credentials_openprovider)
  2. Get token: POST https://api.openprovider.eu/v1beta/auth/login
  3. Use token as Authorization: Bearer {token} header
  4. Token valid for 48h (Atlas caches for 24h)
  5. On HTTP 401: invalidate token → re-authenticate → retry request
# Get token
OP_USER="${OPENPROVIDER_USERNAME:-${OPENPROVIDER_USER:-}}"
OP_PASS="${OPENPROVIDER_PASSWORD:-${OPENPROVIDER_PASS:-}}"
TOKEN=$(curl -s -X POST https://api.openprovider.eu/v1beta/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username": "'"$OP_USER"'", "password": "'"$OP_PASS"'"}' \
  | jq -r '.data.token')

→ Full auth docs: references/auth.md

API Base

SettingValue
Base URLhttps://api.openprovider.eu/v1beta/
AuthBearer Token
Content-Typeapplication/json
Timeout30s
Retries3 (backoff: 1s, 3s, 9s)

Routing Matrix

Use this table to find the right action and reference file:

Domain Operations

RequestEndpointMethodReference
Is domain available? / Check domain/domains/checkPOSTdomains.md
Register / buy domain/domainsPOSTdomains.md
Get domain status/domains/{id}GETdomains.md
List all domains/domainsGETdomains.md
Renew domain/domains/{id}/renewPOSTdomains.md
Update domain settings/domains/{id}PUTdomains.md
Transfer domain/domains/transferPOSTdomains.md
Delete / cancel domain/domains/{id}DELETEdomains.md
Restore domain/domains/{id}/restorePOSTdomains.md

DNS Operations

RequestEndpointMethodReference
Create DNS zone/dns/zonesPOSTdns.md
Get DNS zone/dns/zones/{domain}GETdns.md
Add/remove DNS records/dns/zones/{domain}PUTdns.md
List DNS records/dns/zones/{domain}/recordsGETdns.md
Delete DNS zone/dns/zones/{domain}DELETEdns.md
List all DNS zones/dns/zonesGETdns.md

SSL Operations

RequestEndpointMethodReference
Order SSL certificate/ssl/ordersPOSTssl.md
List SSL certificates/ssl/ordersGETssl.md
Get SSL certificate details/ssl/orders/{id}GETssl.md
Reissue SSL certificate/ssl/orders/{id}/reissuePOSTssl.md
Renew SSL certificate/ssl/orders/{id}/renewPOSTssl.md
Cancel SSL certificate/ssl/orders/{id}DELETEssl.md
List SSL products/prices/ssl/productsGETssl.md

Nameserver Operations

RequestEndpointMethodReference
List NS groups/dns/nameservers/groupsGETnameservers.md
Get NS group details/dns/nameservers/groups/{name}GETnameservers.md
Create NS group/dns/nameservers/groupsPOSTnameservers.md
Update NS group/dns/nameservers/groups/{name}PUTnameservers.md
Delete NS group/dns/nameservers/groups/{name}DELETEnameservers.md

TLD Information

RequestEndpointMethodReference
List all TLDs/tldsGETtlds.md
Get TLD details & prices/tlds/{name}GETtlds.md

Customers & Resellers

RequestEndpointMethodReference
List customers/customersGETcustomers-resellers.md
Get customer/customers/{handle}GETcustomers-resellers.md
Create customer / handle/customersPOSTcustomers-resellers.md
Update customer/customers/{handle}PUTcustomers-resellers.md
Delete customer/customers/{handle}DELETEcustomers-resellers.md
Reseller info/resellers/{id}GETcustomers-resellers.md

Workflow: Register Domain (End-to-End)

Full flow when a user says "register the domain example.com":

  1. Check availabilityPOST /domains/check with with_price: true
  2. Ensure customer handleGET /customers or POST /customers
  3. Register domainPOST /domains with owner_handle, ns_group
  4. Create DNS zonePOST /dns/zones
  5. Set DNS recordsPUT /dns/zones/{domain} (A, MX, SPF, DKIM, DMARC)
  6. Check statusGET /domains/{id}

Workflow: Change DNS Record

  1. Load current recordsGET /dns/zones/{domain}/records
  2. Normalize the record name to zone-relative form
  3. Remove old recordPUT /dns/zones/{domain} with records.remove
  4. Add new recordPUT /dns/zones/{domain} with records.add
  5. Verify the resulting record namesGET /dns/zones/{domain}/records
Important: Do NOT combine remove and add in a single PUT call! Two separate calls required (Error 817).

DNS Record Naming Rule (CRITICAL)

When updating records in zone /dns/zones/{domain}, OpenProvider expects the record name in zone-relative form for subdomains.

Use:

  • phone for phone.example.com in zone example.com
  • _dmarc for _dmarc.example.com in zone example.com
  • www for www.example.com in zone example.com

Do NOT use the full FQDN as name when writing records inside a zone unless you have verified OpenProvider expects it for that exact operation.

If you send phone.example.com as name inside zone example.com, OpenProvider may append the zone again and create the wrong record:

  • intended: phone.example.com
  • accidental result: phone.example.com.example.com

Safe Name Normalization

Before any DNS write:

  1. Identify the zone apex, e.g. example.com
  2. Convert requested host to zone-relative label:

- example.com → apex/root ("" empty string for OpenProvider zone writes, not the full domain, and not @ unless explicitly verified) - phone.example.comphone - _dmarc.example.com_dmarc

  1. Read back the zone records after the write and confirm the final record name is correct

Apex / Root Record Rule (CRITICAL)

For OpenProvider PUT /dns/zones/{domain} writes, the zone apex must be sent as an empty string name:

{
  "name": "",
  "type": "TXT",
  "value": "google-site-verification=...",
  "ttl": 600
}

Do not send the full domain name as name for apex writes inside the zone payload. If you send example.com as name while writing inside zone example.com, OpenProvider may create:

  • intended: example.com
  • accidental result: example.com.example.com

Also do not assume @ works for OpenProvider. It may be rejected as an invalid record name.

Safe DNS Change Pattern

For any add/replace of a record:

  1. Read current zone records
  2. Check whether the target record already exists
  3. If replacing, remove conflicting record first
  4. Add the new record using the zone-relative name
  5. Re-read the zone and verify the exact final FQDN
  6. Optionally check public resolution separately (dig) because provider acceptance ≠ public propagation

MX / Mail Provider Rule (CRITICAL)

For OpenProvider DNS writes, MX records use the field name prio, not priority.

Correct example for a mail subdomain inside zone example.com:

{
  "records": {
    "add": [
      {
        "name": "send",
        "type": "MX",
        "value": "feedback-smtp.eu-west-1.amazonses.com",
        "ttl": 600,
        "prio": 10
      }
    ]
  }
}

Do not use priority in the payload unless you have verified a different endpoint/schema.

For Resend/Amazon SES sender domains, a known-good public result is:

dig +short MX send.example.com
# 10 feedback-smtp.eu-west-1.amazonses.com.

Example

Zone: example.com

Correct add payload for phone.example.com:

{
  "records": {
    "add": [
      {
        "name": "phone",
        "type": "A",
        "value": "46.225.220.40",
        "ttl": 900
      }
    ]
  }
}

Incorrect payload:

{
  "records": {
    "add": [
      {
        "name": "phone.example.com",
        "type": "A",
        "value": "46.225.220.40",
        "ttl": 900
      }
    ]
  }
}

That incorrect payload can create phone.example.com.example.com.

Apex TXT example for example.com:

Correct:

{
  "records": {
    "add": [
      {
        "name": "",
        "type": "TXT",
        "value": "google-site-verification=...",
        "ttl": 600
      }
    ]
  }
}

Incorrect:

{
  "records": {
    "add": [
      {
        "name": "example.com",
        "type": "TXT",
        "value": "google-site-verification=...",
        "ttl": 600
      }
    ]
  }
}

That incorrect payload can create example.com.example.com.

Workflow: Domain Transfer

  1. Get auth code from current registrar (EPP/transfer code)
  2. Ensure customer handlePOST /customers if needed
  3. Initiate transferPOST /domains/transfer with auth_code + owner_handle

Error Handling

All API responses follow this structure:

{"code": 0, "desc": "...", "data": {...}}
  • code: 0 = success
  • code: != 0 = error (details in desc)
  • HTTP 401 = token expired → re-authenticate
  • HTTP 429 = rate limit → wait and retry
  • If env lookup fails, check whether the instance still uses legacy names OPENPROVIDER_USER / OPENPROVIDER_PASS

Common errors:

CodeMeaningSolution
817Duplicate DNS recordRemove existing record first, then add new one
816Validation error / invalid field valueRe-check record schema; for MX use prio instead of priority
801Domain already existsDomain is already registered
899Rate limitReduce batch size, wait
1000Auth failedCheck credentials

→ Full error reference: references/auth.md

Atlas Integration (Context)

OpenProvider is integrated into Atlas via the Frontline module:

  • Service: api/services/frontline/openprovider.ts — API client
  • DNS: api/services/frontline/dns.ts — DNS configuration & verification
  • Handles: api/services/frontline/handles.ts — Workspace handle management
  • Search: api/services/frontline/domain-search.ts — Domain availability search
  • Domains: api/services/frontline/domains.ts — Domain lifecycle
  • Types: shared/types/frontline.ts — TypeScript definitions
  • Credentials: system_settings table, key integration_credentials_openprovider

Key Limits

LimitValue
Domain check batch sizeMax 5 per request
Suggestions per searchMax 20
Token validity48h (cache: 24h)
Request timeout30s
DNS TTL minimum600s
Domain registrations per workspace/dayMax 3 (Atlas limit)

Reference Files

FileContents
references/auth.mdAuthentication, tokens, credentials, error handling
references/domains.mdDomain CRUD, check, transfer, renew, restore
references/dns.mdDNS zones & records (CRUD, patterns, pitfalls)
references/ssl.mdSSL certificates (order, reissue, renew, cancel)
references/nameservers.mdNameserver group management
references/tlds.mdTLD information & pricing
references/customers-resellers.mdCustomer handles & reseller info

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

91.34%
按下载量换算1,194

安全审计

VirusTotal

未展示

ClawScan

可疑

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills