@opendirectory.dev/skills 0.1.23 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/registry.json
CHANGED
|
@@ -2,23 +2,30 @@
|
|
|
2
2
|
{
|
|
3
3
|
"name": "blog-cover-image-cli",
|
|
4
4
|
"description": "Use when the user asks to generate a blog cover image, thumbnail, or article header.",
|
|
5
|
-
"tags": [
|
|
6
|
-
|
|
5
|
+
"tags": [
|
|
6
|
+
"Copywriting"
|
|
7
|
+
],
|
|
8
|
+
"author": "opendirectory",
|
|
7
9
|
"version": "1.0.17",
|
|
8
10
|
"path": "skills/blog-cover-image-cli"
|
|
9
11
|
},
|
|
10
12
|
{
|
|
11
13
|
"name": "brand-alchemy",
|
|
12
14
|
"description": "World-class brand strategist and naming expert.",
|
|
13
|
-
"tags": [
|
|
14
|
-
|
|
15
|
+
"tags": [
|
|
16
|
+
"Branding"
|
|
17
|
+
],
|
|
18
|
+
"author": "opendirectory",
|
|
15
19
|
"version": "0.0.1",
|
|
16
20
|
"path": "skills/brand-alchemy"
|
|
17
21
|
},
|
|
18
22
|
{
|
|
19
23
|
"name": "claude-md-generator",
|
|
20
24
|
"description": "Read the codebase. Write a CLAUDE.md that tells Claude exactly what it needs: no more, no less.",
|
|
21
|
-
"tags": [
|
|
25
|
+
"tags": [
|
|
26
|
+
"Copywriting",
|
|
27
|
+
"Developer Tools"
|
|
28
|
+
],
|
|
22
29
|
"author": "OpenDirectory",
|
|
23
30
|
"version": "1.0.0",
|
|
24
31
|
"path": "skills/claude-md-generator"
|
|
@@ -26,15 +33,19 @@
|
|
|
26
33
|
{
|
|
27
34
|
"name": "cold-email-verifier",
|
|
28
35
|
"description": "Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.",
|
|
29
|
-
"tags": [
|
|
30
|
-
|
|
36
|
+
"tags": [
|
|
37
|
+
"Email"
|
|
38
|
+
],
|
|
39
|
+
"author": "opendirectory",
|
|
31
40
|
"version": "0.0.1",
|
|
32
41
|
"path": "skills/cold-email-verifier"
|
|
33
42
|
},
|
|
34
43
|
{
|
|
35
44
|
"name": "cook-the-blog",
|
|
36
45
|
"description": "Generate high-converting, deep-dive growth case studies in MDX format.",
|
|
37
|
-
"tags": [
|
|
46
|
+
"tags": [
|
|
47
|
+
"Marketing"
|
|
48
|
+
],
|
|
38
49
|
"author": "OpenDirectory",
|
|
39
50
|
"version": "1.0.0",
|
|
40
51
|
"path": "skills/cook-the-blog"
|
|
@@ -58,7 +69,10 @@
|
|
|
58
69
|
{
|
|
59
70
|
"name": "explain-this-pr",
|
|
60
71
|
"description": "Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment.",
|
|
61
|
-
"tags": [
|
|
72
|
+
"tags": [
|
|
73
|
+
"Copywriting",
|
|
74
|
+
"Developer Tools"
|
|
75
|
+
],
|
|
62
76
|
"author": "OpenDirectory",
|
|
63
77
|
"version": "1.0.0",
|
|
64
78
|
"path": "skills/explain-this-pr"
|
|
@@ -66,7 +80,10 @@
|
|
|
66
80
|
{
|
|
67
81
|
"name": "google-trends-api-skills",
|
|
68
82
|
"description": "SEO keyword research workflow for blog generation using Google Trends data.",
|
|
69
|
-
"tags": [
|
|
83
|
+
"tags": [
|
|
84
|
+
"SEO",
|
|
85
|
+
"Copywriting"
|
|
86
|
+
],
|
|
70
87
|
"author": "farizanjum",
|
|
71
88
|
"version": "2.0",
|
|
72
89
|
"path": "skills/google-trends-api-skills"
|
|
@@ -82,15 +99,20 @@
|
|
|
82
99
|
{
|
|
83
100
|
"name": "human-tone",
|
|
84
101
|
"description": "Rewrites AI-generated marketing copy to sound naturally human.",
|
|
85
|
-
"tags": [
|
|
86
|
-
|
|
102
|
+
"tags": [
|
|
103
|
+
"Marketing",
|
|
104
|
+
"Copywriting"
|
|
105
|
+
],
|
|
106
|
+
"author": "opendirectory",
|
|
87
107
|
"version": "1.0.0",
|
|
88
108
|
"path": "skills/human-tone"
|
|
89
109
|
},
|
|
90
110
|
{
|
|
91
111
|
"name": "kill-the-standup",
|
|
92
112
|
"description": "Reads yesterday's Linear issues and GitHub commits for the authenticated user, formats a standup update (done / doing / blockers), and posts it to...",
|
|
93
|
-
"tags": [
|
|
113
|
+
"tags": [
|
|
114
|
+
"Developer Tools"
|
|
115
|
+
],
|
|
94
116
|
"author": "OpenDirectory",
|
|
95
117
|
"version": "1.0.0",
|
|
96
118
|
"path": "skills/kill-the-standup"
|
|
@@ -98,7 +120,11 @@
|
|
|
98
120
|
{
|
|
99
121
|
"name": "linkedin-post-generator",
|
|
100
122
|
"description": "Converts any content, blog post URL, pasted article, GitHub PR description, or a description of something built, into a formatted LinkedIn post wit...",
|
|
101
|
-
"tags": [
|
|
123
|
+
"tags": [
|
|
124
|
+
"Social Media",
|
|
125
|
+
"Copywriting",
|
|
126
|
+
"Developer Tools"
|
|
127
|
+
],
|
|
102
128
|
"author": "OpenDirectory",
|
|
103
129
|
"version": "1.0.0",
|
|
104
130
|
"path": "skills/linkedin-post-generator"
|
|
@@ -106,7 +132,9 @@
|
|
|
106
132
|
{
|
|
107
133
|
"name": "llms-txt-generator",
|
|
108
134
|
"description": "Generates and maintains a standards-compliant llms.",
|
|
109
|
-
"tags": [
|
|
135
|
+
"tags": [
|
|
136
|
+
"AI"
|
|
137
|
+
],
|
|
110
138
|
"author": "OpenDirectory",
|
|
111
139
|
"version": "1.0.0",
|
|
112
140
|
"path": "skills/llms-txt-generator"
|
|
@@ -114,7 +142,10 @@
|
|
|
114
142
|
{
|
|
115
143
|
"name": "meeting-brief-generator",
|
|
116
144
|
"description": "Takes a company name and optional contact, runs targeted research via Tavily, synthesizes a 1-page pre-call brief with Gemini, and optionally saves...",
|
|
117
|
-
"tags": [
|
|
145
|
+
"tags": [
|
|
146
|
+
"SEO",
|
|
147
|
+
"Branding"
|
|
148
|
+
],
|
|
118
149
|
"author": "OpenDirectory",
|
|
119
150
|
"version": "1.0.0",
|
|
120
151
|
"path": "skills/meeting-brief-generator"
|
|
@@ -123,7 +154,7 @@
|
|
|
123
154
|
"name": "meta-ads-skill",
|
|
124
155
|
"description": "Use when interacting with the Meta Ads MCP server to manage accounts, campaigns, ads, insights, and targeting, or to troubleshoot OAuth token authe...",
|
|
125
156
|
"tags": [],
|
|
126
|
-
"author": "
|
|
157
|
+
"author": "opendirectory",
|
|
127
158
|
"version": "0.0.1",
|
|
128
159
|
"path": "skills/meta-ads-skill"
|
|
129
160
|
},
|
|
@@ -138,7 +169,10 @@
|
|
|
138
169
|
{
|
|
139
170
|
"name": "noise2blog",
|
|
140
171
|
"description": "Turns rough notes, bullet points, voice transcripts, or tweet dumps into a polished, publication-ready blog post.",
|
|
141
|
-
"tags": [
|
|
172
|
+
"tags": [
|
|
173
|
+
"Social Media",
|
|
174
|
+
"Copywriting"
|
|
175
|
+
],
|
|
142
176
|
"author": "OpenDirectory",
|
|
143
177
|
"version": "1.0.0",
|
|
144
178
|
"path": "skills/noise2blog"
|
|
@@ -146,7 +180,10 @@
|
|
|
146
180
|
{
|
|
147
181
|
"name": "outreach-sequence-builder",
|
|
148
182
|
"description": "Takes a buying signal and generates a personalized multi-channel outreach sequence across email, LinkedIn, and phone.",
|
|
149
|
-
"tags": [
|
|
183
|
+
"tags": [
|
|
184
|
+
"Email",
|
|
185
|
+
"Social Media"
|
|
186
|
+
],
|
|
150
187
|
"author": "OpenDirectory",
|
|
151
188
|
"version": "1.0.0",
|
|
152
189
|
"path": "skills/outreach-sequence-builder"
|
|
@@ -154,15 +191,21 @@
|
|
|
154
191
|
{
|
|
155
192
|
"name": "position-me",
|
|
156
193
|
"description": "Elite Website Reviewer Agent for AEO, GEO, SEO, UI/UX Psychology, and Copywriting.",
|
|
157
|
-
"tags": [
|
|
158
|
-
|
|
194
|
+
"tags": [
|
|
195
|
+
"SEO",
|
|
196
|
+
"Copywriting"
|
|
197
|
+
],
|
|
198
|
+
"author": "opendirectory",
|
|
159
199
|
"version": "0.0.1",
|
|
160
200
|
"path": "skills/position-me"
|
|
161
201
|
},
|
|
162
202
|
{
|
|
163
203
|
"name": "pr-description-writer",
|
|
164
204
|
"description": "Read the current branch diff and write a complete GitHub pull request description. Create or update the PR with one command.",
|
|
165
|
-
"tags": [
|
|
205
|
+
"tags": [
|
|
206
|
+
"Copywriting",
|
|
207
|
+
"Developer Tools"
|
|
208
|
+
],
|
|
166
209
|
"author": "OpenDirectory",
|
|
167
210
|
"version": "1.0.0",
|
|
168
211
|
"path": "skills/pr-description-writer"
|
|
@@ -170,7 +213,9 @@
|
|
|
170
213
|
{
|
|
171
214
|
"name": "pricing-page-psychology-audit",
|
|
172
215
|
"description": "Audits any SaaS pricing page URL against 12 pricing psychology principles and outputs a ranked improvement report with specific rewrite suggestions...",
|
|
173
|
-
"tags": [
|
|
216
|
+
"tags": [
|
|
217
|
+
"Copywriting"
|
|
218
|
+
],
|
|
174
219
|
"author": "ajaycodesitbetter",
|
|
175
220
|
"version": "1.0.0",
|
|
176
221
|
"path": "skills/pricing-page-psychology-audit"
|
|
@@ -178,7 +223,10 @@
|
|
|
178
223
|
{
|
|
179
224
|
"name": "producthunt-launch-kit",
|
|
180
225
|
"description": "Generate every asset you need for a Product Hunt launch: listing copy, maker comment, and day-one social posts.",
|
|
181
|
-
"tags": [
|
|
226
|
+
"tags": [
|
|
227
|
+
"Social Media",
|
|
228
|
+
"Copywriting"
|
|
229
|
+
],
|
|
182
230
|
"author": "OpenDirectory",
|
|
183
231
|
"version": "1.0.0",
|
|
184
232
|
"path": "skills/producthunt-launch-kit"
|
|
@@ -194,7 +242,9 @@
|
|
|
194
242
|
{
|
|
195
243
|
"name": "reddit-post-engine",
|
|
196
244
|
"description": "Writes and optionally posts a Reddit post for any subreddit, following that subreddit's specific culture and rules.",
|
|
197
|
-
"tags": [
|
|
245
|
+
"tags": [
|
|
246
|
+
"Copywriting"
|
|
247
|
+
],
|
|
198
248
|
"author": "OpenDirectory",
|
|
199
249
|
"version": "1.0.0",
|
|
200
250
|
"path": "skills/reddit-post-engine"
|
|
@@ -202,7 +252,9 @@
|
|
|
202
252
|
{
|
|
203
253
|
"name": "schema-markup-generator",
|
|
204
254
|
"description": "You are an SEO engineer specialising in structured data.",
|
|
205
|
-
"tags": [
|
|
255
|
+
"tags": [
|
|
256
|
+
"SEO"
|
|
257
|
+
],
|
|
206
258
|
"author": "OpenDirectory",
|
|
207
259
|
"version": "1.0.0",
|
|
208
260
|
"path": "skills/schema-markup-generator"
|
|
@@ -218,7 +270,10 @@
|
|
|
218
270
|
{
|
|
219
271
|
"name": "tweet-thread-from-blog",
|
|
220
272
|
"description": "Converts a blog post URL or article into a Twitter/X thread with a strong hook, one insight per tweet, and a CTA.",
|
|
221
|
-
"tags": [
|
|
273
|
+
"tags": [
|
|
274
|
+
"Social Media",
|
|
275
|
+
"Copywriting"
|
|
276
|
+
],
|
|
222
277
|
"author": "OpenDirectory",
|
|
223
278
|
"version": "1.0.0",
|
|
224
279
|
"path": "skills/tweet-thread-from-blog"
|
|
@@ -226,8 +281,11 @@
|
|
|
226
281
|
{
|
|
227
282
|
"name": "twitter-GTM-find-skill",
|
|
228
283
|
"description": "End-to-end pipeline for scraping Twitter for GTM/DevRel tech startup jobs using Apify, and validating them against an Ideal Customer Profile (ICP)...",
|
|
229
|
-
"tags": [
|
|
230
|
-
|
|
284
|
+
"tags": [
|
|
285
|
+
"Marketing",
|
|
286
|
+
"Social Media"
|
|
287
|
+
],
|
|
288
|
+
"author": "opendirectory",
|
|
231
289
|
"version": "0.0.1",
|
|
232
290
|
"path": "skills/twitter-GTM-find-skill"
|
|
233
291
|
},
|
|
@@ -235,7 +293,7 @@
|
|
|
235
293
|
"name": "yc-intent-radar-skill",
|
|
236
294
|
"description": "Scrape daily job listings from YCombinator's Workatastartup platform without duplicates.",
|
|
237
295
|
"tags": [],
|
|
238
|
-
"author": "
|
|
296
|
+
"author": "opendirectory",
|
|
239
297
|
"version": "0.0.1",
|
|
240
298
|
"path": "skills/yc-intent-radar-skill"
|
|
241
299
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Brand Alchemy
|
|
2
|
+
|
|
3
|
+
<img src="https://raw.githubusercontent.com/Varnan-Tech/opendirectory/main/docs/assets/opendirectory_banner.webp" width="100%" alt="Brand Alchemy Cover" />
|
|
4
|
+
|
|
5
|
+
World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.
|
|
6
|
+
|
|
7
|
+
## Core Capabilities
|
|
8
|
+
|
|
9
|
+
When invoked, the skill commands the AI agent to act as an elite branding consultant through a rigorous protocol:
|
|
10
|
+
|
|
11
|
+
* **The Interrogation**: Forces the AI to stop and ask critical discovery questions (Core, Audience, Alternative, Vibe) to extract your brand's true DNA before generating names.
|
|
12
|
+
* **Strategic Positioning**: Applies frameworks from April Dunford ("Obviously Awesome") and Category Design ("Play Bigger") to position your startup against the status quo.
|
|
13
|
+
* **Phonosemantics & Lexicon Science**: Uses sound symbolism (Plosives, Fricatives, Vowel Size) to engineer names that subconsciously communicate speed, power, or luxury.
|
|
14
|
+
* **Universal Domain Verification**: Automatically runs a robust Python script to check DNS and RDAP availability for any TLD (`.com`, `.io`, `.ai`, `.tech`, etc.), ensuring you don't fall in love with a taken name.
|
|
15
|
+
|
|
16
|
+
## Project Structure
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
brand-alchemy/
|
|
20
|
+
├── README.md # Documentation
|
|
21
|
+
├── SKILL.md # Master protocol for the AI
|
|
22
|
+
├── scripts/
|
|
23
|
+
│ └── domain_checker.py # Universal domain verification script (Python)
|
|
24
|
+
└── references/
|
|
25
|
+
├── core-brand-strategy.md # Elite positioning & category design playbook
|
|
26
|
+
└── lexicon-naming-science.md # Phonosemantics & naming linguistics guide
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## How to Prompt the AI
|
|
30
|
+
|
|
31
|
+
Once the skill is installed, simply ask the AI to help you name your startup or build a brand strategy.
|
|
32
|
+
|
|
33
|
+
> "Help me name my AI distribution startup. We help technical founders get users."
|
|
34
|
+
|
|
35
|
+
The AI will automatically pause and initiate **Step 1: The Interrogation**, asking you specific questions about your core offering, audience, alternatives, and desired brand vibe.
|
|
@@ -13,7 +13,7 @@ Instead of generating generic names, you will use elite, proven methodologies to
|
|
|
13
13
|
Before executing any branding or naming task, refer to the deep-dive documentation inside the `references/` folder of this skill. **These files are massive, elite playbooks and must be read in their entirety to execute this skill properly:**
|
|
14
14
|
1. **`references/core-brand-strategy.md`**: The elite brand strategy playbook. Contains Dunford's Positioning, Category Design mechanics, Collins' Transformation framework, and Pentagram's structural identity systems.
|
|
15
15
|
2. **`references/lexicon-naming-science.md`**: The exact rules of Phonosemantics (Sound Symbolism) and Morpheme blending used to name billion-dollar companies. Contains deep case studies (BlackBerry, Swiffer, Pentium).
|
|
16
|
-
3. **`scripts/
|
|
16
|
+
3. **`scripts/domain_checker.py`**: The universal python script for automated domain verification (.com, .ai, .in, .tech, etc.).
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -41,11 +41,11 @@ Present the top 5-7 names. You MUST explain the linguistic reasoning and sound s
|
|
|
41
41
|
Run them through the Diamond Test: Distinctiveness, Processing Fluency, Relevance, and Energy.
|
|
42
42
|
|
|
43
43
|
### Step 4: Universal Automated Domain Verification
|
|
44
|
-
You MUST NOT hallucinate domain availability. You must run the `
|
|
44
|
+
You MUST NOT hallucinate domain availability. You must run the `domain_checker.py` script located in the `scripts/` folder using the `Bash` tool. It supports all TLDs (.com, .io, .ai, .in, .tech) by utilizing a DNS NXDOMAIN primary check and an RDAP fallback.
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
47
|
# How to run the domain checker:
|
|
48
|
-
|
|
48
|
+
python scripts/domain_checker.py mybrand.com mybrand.ai mybrand.in
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
### Step 5: Final Recommendation
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import socket
|
|
3
|
+
import urllib.request
|
|
4
|
+
import json
|
|
5
|
+
import ssl
|
|
6
|
+
|
|
7
|
+
def check_domain(domain):
|
|
8
|
+
print(f"Checking {domain}...")
|
|
9
|
+
|
|
10
|
+
# Primary Check: DNS Lookup (Fastest and universally supports .ai, .in, .io, etc.)
|
|
11
|
+
# We attempt to resolve the domain. If it fails with a specific error (NXDOMAIN), it's likely available.
|
|
12
|
+
try:
|
|
13
|
+
# gethostbyname_ex will raise socket.gaierror if domain doesn't exist
|
|
14
|
+
socket.gethostbyname_ex(domain)
|
|
15
|
+
print(f"❌ {domain} : TAKEN (Active DNS record found)")
|
|
16
|
+
return
|
|
17
|
+
except socket.gaierror as e:
|
|
18
|
+
# Check if the error is specifically because the host is not known (errno 11001 on Windows, or other NXDOMAIN equivalents)
|
|
19
|
+
# We will still fallback to RDAP just in case it's a transient DNS issue or registered without A records,
|
|
20
|
+
# but a socket.gaierror often means NXDOMAIN.
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
# Fallback Check: RDAP protocol via HTTP
|
|
24
|
+
# Create an unverified context just in case there are local SSL certificate issues
|
|
25
|
+
ctx = ssl.create_default_context()
|
|
26
|
+
ctx.check_hostname = False
|
|
27
|
+
ctx.verify_mode = ssl.CERT_NONE
|
|
28
|
+
|
|
29
|
+
req = urllib.request.Request(
|
|
30
|
+
f"https://rdap.org/domain/{domain}",
|
|
31
|
+
headers={'Accept': 'application/rdap+json'}
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
try:
|
|
35
|
+
with urllib.request.urlopen(req, context=ctx, timeout=5) as response:
|
|
36
|
+
if response.status == 200:
|
|
37
|
+
print(f"❌ {domain} : TAKEN (RDAP 200 OK)")
|
|
38
|
+
else:
|
|
39
|
+
print(f"⚠️ {domain} : UNKNOWN (RDAP returned {response.status})")
|
|
40
|
+
except urllib.error.HTTPError as e:
|
|
41
|
+
if e.code == 404:
|
|
42
|
+
print(f"✅ {domain} : AVAILABLE (RDAP 404 Not Found)")
|
|
43
|
+
elif e.code == 403:
|
|
44
|
+
print(f"⚠️ {domain} : BLOCKED/RESERVED (RDAP 403 Forbidden - likely a premium or blocked query)")
|
|
45
|
+
else:
|
|
46
|
+
print(f"⚠️ {domain} : UNKNOWN (RDAP HTTP Error {e.code})")
|
|
47
|
+
except Exception as e:
|
|
48
|
+
print(f"⚠️ {domain} : ERROR checking RDAP ({str(e)})")
|
|
49
|
+
|
|
50
|
+
if __name__ == "__main__":
|
|
51
|
+
if len(sys.argv) < 2:
|
|
52
|
+
print("Usage: python domain_checker.py <domain1> [domain2] ...")
|
|
53
|
+
print("Example: python domain_checker.py mybrand.com mybrand.ai mybrand.in")
|
|
54
|
+
sys.exit(1)
|
|
55
|
+
|
|
56
|
+
for d in sys.argv[1:]:
|
|
57
|
+
check_domain(d)
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Universal Domain Availability Checker (Supports .com, .ai, .in, .tech, .dev, etc.)
|
|
3
|
-
# Uses a DNS NXDOMAIN primary check (works for ALL TLDs) with RDAP fallback.
|
|
4
|
-
# This script is part of the Brand Alchemy skill toolkit.
|
|
5
|
-
|
|
6
|
-
check_domain() {
|
|
7
|
-
local domain=$1
|
|
8
|
-
echo "Checking $domain..."
|
|
9
|
-
|
|
10
|
-
# Primary Check: DNS Lookup (Fastest and universally supports .ai, .in, .io, etc.)
|
|
11
|
-
# If the domain has no SOA record, it is almost certainly available.
|
|
12
|
-
if ! dig +short SOA "$domain" | grep -q "."; then
|
|
13
|
-
# Double check with NXDOMAIN status
|
|
14
|
-
if dig "$domain" | grep -q "status: NXDOMAIN"; then
|
|
15
|
-
echo "✅ $domain : LIKELY AVAILABLE (DNS NXDOMAIN)"
|
|
16
|
-
return
|
|
17
|
-
fi
|
|
18
|
-
fi
|
|
19
|
-
|
|
20
|
-
# Fallback Check: RDAP protocol
|
|
21
|
-
local status_code=$(curl -Ls -o /dev/null -w "%{http_code}" "https://rdap.org/domain/$domain")
|
|
22
|
-
|
|
23
|
-
if [ "$status_code" == "404" ]; then
|
|
24
|
-
echo "✅ $domain : AVAILABLE (404 Not Found)"
|
|
25
|
-
elif [ "$status_code" == "200" ]; then
|
|
26
|
-
echo "❌ $domain : TAKEN (200 OK or Active DNS)"
|
|
27
|
-
else
|
|
28
|
-
echo "⚠️ $domain : TAKEN or UNKNOWN (Code: $status_code, Active DNS)"
|
|
29
|
-
fi
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
# Ensure at least one argument is provided
|
|
33
|
-
if [ $# -eq 0 ]; then
|
|
34
|
-
echo "Usage: ./domain-checker.sh <domain1> [domain2] ..."
|
|
35
|
-
echo "Example: ./domain-checker.sh mybrand.com mybrand.ai mybrand.in"
|
|
36
|
-
exit 1
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Loop through all arguments and check each domain
|
|
40
|
-
for domain in "$@"; do
|
|
41
|
-
check_domain "$domain"
|
|
42
|
-
done
|