用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Demerzels-lab/elsamultiskillagent --skill gandi命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
The philosophical layer for AI agents.
Agents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.
A relaxing resource-gathering RPG where AI agents collect resources, trade with NPCs, and manage and build their world at their own pace.
基于 SOC 职业分类
正在显示 SKILL.md
| name | gandi |
| description | Manage Gandi domains, DNS, email, and SSL certificates via the Gandi API |
Comprehensive Gandi domain registrar integration for Moltbot.
Status: 🚧 Phase 1 MVP - Basic operations functional
# Create config directory
mkdir -p ~/.config/gandi
# Store your token (replace YOUR_PAT with actual token)
echo "YOUR_PERSONAL_ACCESS_TOKEN" > ~/.config/gandi/api_token
# Secure the file (owner read-only)
chmod 600 ~/.config/gandi/api_token
cd gandi-skill/scripts
node test-auth.js
Expected output:
✅ Authentication successful!
Your organizations:
1. Personal Account (uuid-here)
Type: individual
🎉 You're ready to use the Gandi skill!
node list-domains.js
Output shows:
node list-dns.js example.com
Output shows:
Once configured, you can use natural language:
"List my Gandi domains"
"Show DNS records for example.com"
"When does example.com expire?"
"Is auto-renewal enabled for example.com?"
Check if a specific domain is available for registration:
node check-domain.js example.com
Features:
Example Output:
🔍 Checking availability for: example.com
Domain: example.com
✅ Status: AVAILABLE
💰 Pricing:
1 year: 12.00 EUR (+ 2.40 tax)
2 years: 24.00 EUR (+ 4.80 tax)
📋 Supported Features:
• create
• dnssec
• livedns
🌐 TLD Information:
Extension: com
Find available alternatives with TLD variations and name modifications:
# Check all configured TLDs + variations
node suggest-domains.js example
# Check specific TLDs only
node suggest-domains.js example --tlds com,net,io
# Skip name variations (only check TLDs)
node suggest-domains.js example --no-variations
# Output as JSON
node suggest-domains.js example --json
Name Variation Patterns:
example → ex-ample)example → exmpl)example → get-example, my-example)example → example-app, example-hub)example → example2, example3)Example Output:
🔍 Checking availability for: example
📊 Checking 13 TLDs and generating variations...
═══════════════════════════════════════════════════════
📋 EXACT MATCHES (Different TLDs)
═══════════════════════════════════════════════════════
✅ Available:
example.net 12.00 EUR
example.io 39.00 EUR
example.dev 15.00 EUR
❌ Unavailable:
example.com (unavailable)
example.org (unavailable)
═══════════════════════════════════════════════════════
🎨 NAME VARIATIONS
═══════════════════════════════════════════════════════
Hyphenated:
✅ ex-ample.com 12.00 EUR
Prefix:
✅ get-example.com 12.00 EUR
✅ my-example.com 12.00 EUR
Suffix:
✅ example-app.com 12.00 EUR
✅ example-io.com 12.00 EUR
═══════════════════════════════════════════════════════
📊 SUMMARY: 8 available domains found
═══════════════════════════════════════════════════════
Domain checker configuration is stored in gandi-skill/config/domain-checker-defaults.json.
Structure:
{
"tlds": {
"mode": "extend",
"defaults": ["com", "net", "org", "info", "io", "dev", "app", "ai", "tech"],
"custom": []
},
"variations": {
"enabled": true,
"patterns": ["hyphenated", "abbreviated", "prefix", "suffix", "numbers"],
"prefixes":
Rate Limiting & Limits:
These limits ensure good API citizenship and prevent overwhelming Gandi's API.
TLD Modes:
"extend": Use defaults + custom TLDs (merged list)"replace": Use only custom TLDs (ignore defaults)Gateway Console Integration:
When Gateway Console support is added (#3), configuration will be available at:
skills:
entries:
gandi:
config:
domainChecker:
tlds:
mode: extend
defaults: [...]
custom: [...]
variations:
enabled: true
patterns: [...]
See docs/gateway-config-design.md for complete configuration architecture.
All scripts are in gandi-skill/scripts/:
| Script | Purpose |
|---|---|
test-auth.js | Verify authentication works |
list-domains.js | Show all domains in account |
list-dns.js <domain> | Show DNS records for domain |
check-domain.js <domain> | Check single domain availability + pricing |
suggest-domains.js <name> | Smart domain suggestions with variations |
check-ssl.js | Check SSL certificate status for all domains |
gandi-api.js | Core API client (importable) |
~/.config/gandi/api_tokenhttps://api.gandi.net (production)To use Gandi's sandbox environment:
# Create sandbox token at: https://admin.sandbox.gandi.net
echo "YOUR_SANDBOX_TOKEN" > ~/.config/gandi/api_token
echo "https://api.sandbox.gandi.net" > ~/.config/gandi/api_url
# Verify file exists
ls -la ~/.config/gandi/api_token
# Should show: -rw------- (600 permissions)
If you get "not using Gandi LiveDNS" error:
Gandi allows 1000 requests/minute. If exceeded:
The skill provides importable functions:
import {
testAuth,
listDomains,
getDomain,
listDnsRecords,
getDnsRecord,
checkAvailability
} from './gandi-api.js';
// Test authentication
const auth = await testAuth();
// List domains
const domains = await listDomains();
// Get domain info
const domain = await getDomain('example.com');
// List DNS records
const records = await listDnsRecords('example.com');
// Get specific DNS record
const record = await getDnsRecord('example.com', '@', 'A');
// Check availability
const available = await checkAvailability(['example.com', 'example.net']);
✅ DO:
~/.config/gandi/api_token❌ DON'T:
Phase 1 (current):
Phase 2+ (future):
gandi-skill/
├── SKILL.md # This file
├── references/ # API documentation
│ ├── api-overview.md
│ ├── authentication.md
│ ├── domains.md
│ ├── livedns.md
│ └── setup.md
└── scripts/ # Helper utilities
├── package.json
├── gandi-api.js # Core API client
├── test-auth.js # Test authentication
├── list-domains.js # List domains
└── list-dns.js # List DNS records
Phase 1: Read Operations (✅ Current)
Phase 2: DNS Modifications
Phase 3: Domain Management
Phase 4: Multi-Organization (#1)
Phase 5: Advanced Features
See Contributing Guide in the main README.
MIT License - See LICENSE