Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place

typescript cli fully in prod now

+257 -347
+210 -316
apps/main-app/public/editor/tabs/CLITab.tsx
··· 6 6 CardTitle, 7 7 } from "@public/components/ui/card"; 8 8 import { Badge } from "@public/components/ui/badge"; 9 - import { ExternalLink } from "lucide-react"; 9 + import { Download, ExternalLink } from "lucide-react"; 10 10 import { CodeBlock } from "@public/components/ui/code-block"; 11 11 12 + const BASE_URL = 13 + "https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries"; 14 + 15 + const BINARIES = [ 16 + { 17 + platform: "macOS (Apple Silicon)", 18 + filename: "wisp-cli-aarch64-darwin", 19 + sha256: 20 + "560eface5029dbecdb4adb6cca169651cc301dd6d48263a1cddf1906a2295b0b", 21 + }, 22 + { 23 + platform: "macOS (Intel)", 24 + filename: "wisp-cli-x86_64-darwin", 25 + sha256: 26 + "fc759aa8d412948f735420536ee3f7944bda6119ad2c9169583a9b188ae889e5", 27 + }, 28 + { 29 + platform: "Linux (ARM64)", 30 + filename: "wisp-cli-aarch64-linux", 31 + sha256: 32 + "2ff51a5411a20c45fd05d29f90acd24410bdce31f6fc8a91a125691b275e1216", 33 + }, 34 + { 35 + platform: "Linux (x86_64)", 36 + filename: "wisp-cli-x86_64-linux", 37 + sha256: 38 + "8cf27698daf2d1371f1a4eb1ec1e24c4da9185639dc09edc3f8bc3d358f08738", 39 + }, 40 + ] as const; 41 + 42 + const FEATURES = [ 43 + { label: "Deploy", desc: "Push static sites directly from your terminal" }, 44 + { 45 + label: "Pull", 46 + desc: "Download sites from the PDS for development or backup", 47 + }, 48 + { 49 + label: "Serve", 50 + desc: "Run a local server with real-time firehose updates", 51 + }, 52 + { 53 + label: "Domains", 54 + desc: "Claim, manage, and assign custom domains on wisp.place", 55 + }, 56 + ] as const; 57 + 58 + const LINKS = [ 59 + { label: "CLI Documentation", href: "https://docs.wisp.place/cli" }, 60 + { 61 + label: "Source Code", 62 + href: "https://tangled.org/@nekomimi.pet/wisp.place-monorepo/tree/main/cli", 63 + }, 64 + { label: "Tangled Spindle CI/CD", href: "https://blog.tangled.org/ci" }, 65 + ] as const; 66 + 12 67 export function CLITab() { 13 68 return ( 14 69 <div className="space-y-4 min-h-[400px]"> 70 + {/* Header + Features */} 15 71 <Card> 16 72 <CardHeader> 17 - <div className="flex items-center gap-2 mb-2"> 18 - <CardTitle>Wisp CLI Tool</CardTitle> 73 + <div className="flex items-center gap-2"> 74 + <CardTitle>Wisp CLI</CardTitle> 19 75 <Badge variant="secondary" className="text-xs"> 20 - v0.5.0 21 - </Badge> 22 - <Badge variant="outline" className="text-xs"> 23 - Alpha 76 + v1.0.0 24 77 </Badge> 25 78 </div> 26 79 <CardDescription> 27 80 Deploy static sites directly from your terminal 28 81 </CardDescription> 29 82 </CardHeader> 30 - <CardContent className="space-y-6"> 31 - <div className="prose prose-sm max-w-none dark:prose-invert"> 32 - <p className="text-sm text-muted-foreground"> 33 - The Wisp CLI is a command-line tool for deploying static websites 34 - directly to your AT Protocol account. Authenticate with app 35 - password or OAuth and deploy from CI/CD pipelines. 36 - </p> 37 - </div> 38 - 39 - <div className="space-y-3"> 40 - <h3 className="text-sm font-semibold">Features</h3> 41 - <ul className="text-sm text-muted-foreground space-y-2 list-disc list-inside"> 42 - <li> 43 - <strong>Deploy:</strong> Push static sites directly from your 44 - terminal 45 - </li> 46 - <li> 47 - <strong>Pull:</strong> Download sites from the PDS for 48 - development or backup 49 - </li> 50 - <li> 51 - <strong>Serve:</strong> Run a local server with real-time 52 - firehose updates 83 + <CardContent> 84 + <ul className="space-y-2"> 85 + {FEATURES.map(({ label, desc }) => ( 86 + <li key={label} className="flex items-start gap-3 text-sm"> 87 + <span className="text-muted-foreground mt-0.5 shrink-0 select-none"> 88 + &gt; 89 + </span> 90 + <span className="text-muted-foreground"> 91 + <strong className="text-foreground">{label}</strong> — {desc} 92 + </span> 53 93 </li> 54 - </ul> 55 - </div> 94 + ))} 95 + </ul> 96 + </CardContent> 97 + </Card> 56 98 57 - <div className="space-y-3"> 58 - <h3 className="text-sm font-semibold">Download v0.5.0</h3> 59 - <div className="grid gap-2"> 60 - <div className="p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border"> 61 - <a 62 - href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-darwin-universal" 63 - target="_blank" 64 - rel="noopener noreferrer" 65 - className="flex items-center justify-between mb-2" 66 - > 67 - <span className="font-mono text-sm"> 68 - macOS (Universal) 69 - </span> 70 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 71 - </a> 72 - <div className="text-xs text-muted-foreground"> 73 - <span className="font-mono"> 74 - SHA-1: 7d0cc968d2a130158c3b204d9a15bcc29b8af252 75 - </span> 76 - </div> 99 + {/* Downloads */} 100 + <Card> 101 + <CardHeader> 102 + <CardTitle className="text-base">Download v1.0.0</CardTitle> 103 + </CardHeader> 104 + <CardContent className="space-y-1.5"> 105 + {BINARIES.map(({ platform, filename, sha256 }) => ( 106 + <a 107 + key={filename} 108 + href={`${BASE_URL}/${filename}`} 109 + download 110 + className="flex flex-col gap-1 p-3 rounded-lg border border-border bg-muted/30 hover:bg-muted hover:border-muted-foreground/30 transition-colors group" 111 + > 112 + <div className="flex items-center justify-between"> 113 + <span className="text-sm font-medium">{platform}</span> 114 + <Download className="w-4 h-4 text-muted-foreground group-hover:text-foreground transition-colors" /> 77 115 </div> 78 - <div className="p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border"> 79 - <a 80 - href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-aarch64-darwin" 81 - target="_blank" 82 - rel="noopener noreferrer" 83 - className="flex items-center justify-between mb-2" 84 - > 85 - <span className="font-mono text-sm"> 86 - macOS (Apple Silicon) 87 - </span> 88 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 89 - </a> 90 - <div className="text-xs text-muted-foreground"> 91 - <span className="font-mono"> 92 - SHA-1: 912f8f99c2b55ca6ad75e0a89903688bd2c1cb4b 93 - </span> 94 - </div> 95 - </div> 96 - <div className="p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border"> 97 - <a 98 - href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-darwin-x86_64" 99 - target="_blank" 100 - rel="noopener noreferrer" 101 - className="flex items-center justify-between mb-2" 102 - > 103 - <span className="font-mono text-sm"> 104 - macOS (Intel) 105 - </span> 106 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 107 - </a> 108 - <div className="text-xs text-muted-foreground"> 109 - <span className="font-mono"> 110 - SHA-1: 40d26d4a9c058e42e7911a195c3e078e8a4b5e82 111 - </span> 112 - </div> 113 - </div> 114 - <div className="p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border"> 115 - <a 116 - href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-aarch64-linux" 117 - target="_blank" 118 - rel="noopener noreferrer" 119 - className="flex items-center justify-between mb-2" 120 - > 121 - <span className="font-mono text-sm">Linux (ARM64)</span> 122 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 123 - </a> 124 - <div className="text-xs text-muted-foreground"> 125 - <span className="font-mono"> 126 - SHA-1: ef1992d8850f8fef1d719e4e8fab5431475c352e 127 - </span> 128 - </div> 129 - </div> 130 - <div className="p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border"> 131 - <a 132 - href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-x86_64-linux" 133 - target="_blank" 134 - rel="noopener noreferrer" 135 - className="flex items-center justify-between mb-2" 136 - > 137 - <span className="font-mono text-sm">Linux (x86_64)</span> 138 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 139 - </a> 140 - <div className="text-xs text-muted-foreground"> 141 - <span className="font-mono"> 142 - SHA-1: 3018dde8fec495abcae044079564ced93cdeb4f8 143 - </span> 144 - </div> 145 - </div> 146 - <div className="p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border"> 147 - <a 148 - href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-x86_64-windows.exe" 149 - target="_blank" 150 - rel="noopener noreferrer" 151 - className="flex items-center justify-between mb-2" 152 - > 153 - <span className="font-mono text-sm">Windows (x86_64)</span> 154 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 155 - </a> 156 - <div className="text-xs text-muted-foreground"> 157 - <span className="font-mono"> 158 - SHA-1: d6bc789d7fd7c787e5520eb476cee70c97ccb3ce 159 - </span> 160 - </div> 161 - </div> 162 - </div> 163 - </div> 116 + <span className="font-mono text-[11px] text-muted-foreground break-all leading-relaxed"> 117 + SHA-256: {sha256} 118 + </span> 119 + </a> 120 + ))} 121 + </CardContent> 122 + </Card> 164 123 165 - <div className="space-y-3"> 166 - <h3 className="text-sm font-semibold">Deploy a Site</h3> 124 + {/* Basic Usage */} 125 + <Card> 126 + <CardHeader> 127 + <CardTitle className="text-base">Basic Usage</CardTitle> 128 + </CardHeader> 129 + <CardContent className="space-y-5"> 130 + <div className="space-y-2"> 131 + <p className="text-sm font-medium">Deploy a Site</p> 167 132 <CodeBlock 168 - code={`# Download and make executable 169 - curl -O https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-aarch64-darwin 170 - chmod +x wisp-cli-aarch64-darwin 171 - 172 - # Deploy your site 173 - ./wisp-cli-aarch64-darwin deploy your-handle.bsky.social \\ 133 + code={`./wisp-cli deploy your-handle.bsky.social \\ 174 134 --path ./dist \\ 175 - --site my-site \\ 176 - --password your-app-password 135 + --site my-site 177 136 178 - # Your site will be available at: 137 + # Available at: 179 138 # https://sites.wisp.place/your-handle/my-site`} 180 139 language="bash" 181 140 /> 182 141 </div> 183 142 184 - <div className="space-y-3"> 185 - <h3 className="text-sm font-semibold">Pull a Site from PDS</h3> 186 - <p className="text-xs text-muted-foreground"> 187 - Download a site from the PDS to your local machine (uses OAuth 188 - authentication): 189 - </p> 143 + <div className="space-y-2"> 144 + <p className="text-sm font-medium">Pull a Site</p> 190 145 <CodeBlock 191 - code={`# Pull a site to a specific directory 192 - wisp-cli pull your-handle.bsky.social \\ 146 + code={`./wisp-cli pull your-handle.bsky.social \\ 193 147 --site my-site \\ 194 - --output ./my-site 195 - 196 - # Pull to current directory 197 - wisp-cli pull your-handle.bsky.social \\ 198 - --site my-site 199 - 200 - # Opens browser for OAuth authentication on first run`} 148 + --output ./my-site`} 201 149 language="bash" 202 150 /> 203 151 </div> 204 152 205 - <div className="space-y-3"> 206 - <h3 className="text-sm font-semibold"> 207 - Serve a Site Locally with Real-Time Updates 208 - </h3> 209 - <p className="text-xs text-muted-foreground"> 210 - Run a local server that monitors the firehose for real-time 211 - updates (uses OAuth authentication): 212 - </p> 153 + <div className="space-y-2"> 154 + <p className="text-sm font-medium">Serve with Live Updates</p> 213 155 <CodeBlock 214 156 code={`# Serve on http://localhost:8080 (default) 215 - wisp-cli serve your-handle.bsky.social \\ 216 - --site my-site 217 - 218 - # Serve on a custom port 219 - wisp-cli serve your-handle.bsky.social \\ 220 - --site my-site \\ 221 - --port 3000 222 - 223 - # Enable SPA mode (serve index.html for all routes) 224 - wisp-cli serve your-handle.bsky.social \\ 225 - --site my-site \\ 226 - --spa 157 + ./wisp-cli serve your-handle.bsky.social --site my-site 227 158 228 - # Enable directory listing for paths without index files 229 - wisp-cli serve your-handle.bsky.social \\ 230 - --site my-site \\ 231 - --directory 232 - 233 - # Downloads site, serves it, and watches firehose for live updates!`} 159 + # Custom port, SPA mode, or directory listing 160 + ./wisp-cli serve your-handle.bsky.social --site my-site --port 3000 161 + ./wisp-cli serve your-handle.bsky.social --site my-site --spa 162 + ./wisp-cli serve your-handle.bsky.social --site my-site --directory`} 234 163 language="bash" 235 164 /> 236 165 </div> 237 166 238 - <div className="space-y-3"> 239 - <h3 className="text-sm font-semibold"> 240 - CI/CD with Tangled Spindle 241 - </h3> 242 - <p className="text-xs text-muted-foreground"> 243 - Deploy automatically on every push using{" "} 244 - <a 245 - href="https://blog.tangled.org/ci" 246 - target="_blank" 247 - rel="noopener noreferrer" 248 - className="text-accent hover:underline" 249 - > 250 - Tangled Spindle 251 - </a> 252 - </p> 253 - 254 - <div className="space-y-4"> 255 - <div> 256 - <h4 className="text-xs font-semibold mb-2 flex items-center gap-2"> 257 - <span>Example 1: Simple Asset Publishing</span> 258 - <Badge variant="secondary" className="text-xs"> 259 - Copy Files 260 - </Badge> 261 - </h4> 262 - <CodeBlock 263 - code={`when: 264 - - event: ['push'] 265 - branch: ['main'] 266 - - event: ['manual'] 167 + <div className="space-y-2"> 168 + <p className="text-sm font-medium">Domain Management</p> 169 + <CodeBlock 170 + code={`./wisp-cli domain claim your-handle.bsky.social --domain example.com 171 + ./wisp-cli domain claim-subdomain your-handle.bsky.social --subdomain alice 172 + ./wisp-cli domain status your-handle.bsky.social --domain example.com 173 + ./wisp-cli domain add-site your-handle.bsky.social --domain example.com --site mysite 174 + ./wisp-cli domain delete your-handle.bsky.social --domain example.com 175 + ./wisp-cli site delete your-handle.bsky.social --site mysite`} 176 + language="bash" 177 + /> 178 + </div> 267 179 268 - engine: 'nixery' 269 - 270 - clone: 271 - skip: false 272 - depth: 1 180 + <div className="space-y-2"> 181 + <p className="text-sm font-medium">List Domains & Sites</p> 182 + <CodeBlock 183 + code={`./wisp-cli list domains your-handle.bsky.social 184 + ./wisp-cli list sites your-handle.bsky.social`} 185 + language="bash" 186 + /> 187 + </div> 188 + </CardContent> 189 + </Card> 273 190 274 - dependencies: 275 - nixpkgs: 276 - - coreutils 277 - - curl 278 - 279 - environment: 280 - SITE_PATH: '.' # Copy entire repo 281 - SITE_NAME: 'myWebbedSite' 282 - WISP_HANDLE: 'your-handle.bsky.social' 283 - 284 - steps: 285 - - name: deploy assets to wisp 191 + {/* CI/CD */} 192 + <Card> 193 + <CardHeader> 194 + <CardTitle className="text-base">CI/CD with Tangled Spindle</CardTitle> 195 + <CardDescription> 196 + Deploy automatically on every push using{" "} 197 + <a 198 + href="https://blog.tangled.org/ci" 199 + target="_blank" 200 + rel="noopener noreferrer" 201 + className="underline underline-offset-2" 202 + > 203 + Tangled Spindle 204 + </a> 205 + </CardDescription> 206 + </CardHeader> 207 + <CardContent className="space-y-4"> 208 + <div className="space-y-2"> 209 + <div className="flex items-center gap-2"> 210 + <p className="text-sm font-medium">Simple Deploy</p> 211 + <Badge variant="secondary" className="text-xs"> 212 + Copy Files 213 + </Badge> 214 + </div> 215 + <CodeBlock 216 + code={`steps: 217 + - name: deploy to wisp 286 218 command: | 287 - # Download Wisp CLI 288 219 curl https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-x86_64-linux -o wisp-cli 289 220 chmod +x wisp-cli 290 - 291 - # Deploy to Wisp 292 - ./wisp-cli deploy \\ 293 - "$WISP_HANDLE" \\ 221 + ./wisp-cli deploy "$WISP_HANDLE" \\ 294 222 --path "$SITE_PATH" \\ 295 223 --site "$SITE_NAME" \\ 296 - --password "$WISP_APP_PASSWORD" 297 - 298 - # Output 299 - #Deployed site 'myWebbedSite': at://did:plc:ttdrpj45ibqunmfhdsb4zdwq/place.wisp.fs/myWebbedSite 300 - #Available at: https://sites.wisp.place/did:plc:ttdrpj45ibqunmfhdsb4zdwq/myWebbedSite 301 - `} 302 - language="yaml" 303 - /> 304 - </div> 224 + --password "$WISP_APP_PASSWORD"`} 225 + language="yaml" 226 + /> 227 + </div> 305 228 306 - <div> 307 - <h4 className="text-xs font-semibold mb-2 flex items-center gap-2"> 308 - <span>Example 2: React/Vite Build & Deploy</span> 309 - <Badge variant="secondary" className="text-xs"> 310 - Full Build 311 - </Badge> 312 - </h4> 313 - <CodeBlock 314 - code={`when: 229 + <div className="space-y-2"> 230 + <div className="flex items-center gap-2"> 231 + <p className="text-sm font-medium">React / Vite Build & Deploy</p> 232 + <Badge variant="secondary" className="text-xs"> 233 + Full Build 234 + </Badge> 235 + </div> 236 + <CodeBlock 237 + code={`when: 315 238 - event: ['push'] 316 239 branch: ['main'] 317 240 - event: ['manual'] ··· 321 244 clone: 322 245 skip: false 323 246 depth: 1 324 - submodules: false 325 247 326 248 dependencies: 327 249 nixpkgs: ··· 333 255 334 256 environment: 335 257 SITE_PATH: 'dist' 336 - SITE_NAME: 'my-react-site' 258 + SITE_NAME: 'my-site' 337 259 WISP_HANDLE: 'your-handle.bsky.social' 338 260 339 261 steps: 340 262 - name: build site 341 263 command: | 342 - # necessary to ensure bun is in PATH 343 264 export PATH="$HOME/.nix-profile/bin:$PATH" 344 - 345 265 bun install --frozen-lockfile 346 - 347 - # build with vite, run directly to get around env issues 348 266 bun node_modules/.bin/vite build 349 267 350 268 - name: deploy to wisp 351 269 command: | 352 - # Download Wisp CLI 353 270 curl https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-x86_64-linux -o wisp-cli 354 271 chmod +x wisp-cli 355 - 356 - # Deploy to Wisp 357 - ./wisp-cli deploy \\ 358 - "$WISP_HANDLE" \\ 272 + ./wisp-cli deploy "$WISP_HANDLE" \\ 359 273 --path "$SITE_PATH" \\ 360 274 --site "$SITE_NAME" \\ 361 275 --password "$WISP_APP_PASSWORD"`} 362 - language="yaml" 363 - /> 364 - </div> 365 - </div> 276 + language="yaml" 277 + /> 278 + </div> 366 279 367 - <div className="p-3 bg-muted/30 rounded-lg border-l-4 border-accent"> 368 - <p className="text-xs text-muted-foreground"> 369 - <strong className="text-foreground">Note:</strong> Set{" "} 370 - <code className="px-1.5 py-0.5 bg-background rounded text-xs"> 371 - WISP_APP_PASSWORD 372 - </code>{" "} 373 - as a secret in your Tangled Spindle repository settings. 374 - Generate an app password from your AT Protocol account settings. 375 - </p> 376 - </div> 280 + <div className="p-3 bg-muted/30 rounded-lg border-l-4 border-accent text-xs text-muted-foreground"> 281 + <strong className="text-foreground">Note:</strong> Set{" "} 282 + <code className="px-1 py-0.5 bg-background rounded"> 283 + WISP_APP_PASSWORD 284 + </code>{" "} 285 + as a secret in your Tangled Spindle repository settings. 377 286 </div> 287 + </CardContent> 288 + </Card> 378 289 379 - <div className="space-y-3"> 380 - <h3 className="text-sm font-semibold">Learn More</h3> 381 - <div className="grid gap-2"> 382 - <a 383 - href="https://docs.wisp.place/cli" 384 - target="_blank" 385 - rel="noopener noreferrer" 386 - className="flex items-center justify-between p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border" 387 - > 388 - <span className="text-sm">CLI Documentation</span> 389 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 390 - </a> 391 - <a 392 - href="https://tangled.org/@nekomimi.pet/wisp.place-monorepo/tree/main/cli" 393 - target="_blank" 394 - rel="noopener noreferrer" 395 - className="flex items-center justify-between p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border" 396 - > 397 - <span className="text-sm">Source Code</span> 398 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 399 - </a> 400 - <a 401 - href="https://blog.tangled.org/ci" 402 - target="_blank" 403 - rel="noopener noreferrer" 404 - className="flex items-center justify-between p-3 bg-muted/50 hover:bg-muted rounded-lg transition-colors border border-border" 405 - > 406 - <span className="text-sm">Tangled Spindle CI/CD</span> 407 - <ExternalLink className="w-4 h-4 text-muted-foreground" /> 408 - </a> 409 - </div> 410 - </div> 290 + {/* Learn More */} 291 + <Card> 292 + <CardContent className="pt-6 space-y-1.5"> 293 + {LINKS.map(({ label, href }) => ( 294 + <a 295 + key={href} 296 + href={href} 297 + target="_blank" 298 + rel="noopener noreferrer" 299 + className="flex items-center justify-between p-3 rounded-lg border border-border bg-muted/30 hover:bg-muted transition-colors" 300 + > 301 + <span className="text-sm">{label}</span> 302 + <ExternalLink className="w-4 h-4 text-muted-foreground" /> 303 + </a> 304 + ))} 411 305 </CardContent> 412 306 </Card> 413 307 </div>
+1 -1
cli/package.json
··· 1 1 { 2 2 "name": "wispctl", 3 - "version": "1.0.8", 3 + "version": "1.0.9", 4 4 "description": "CLI for wisp.place - deploy static sites to the AT Protocol", 5 5 "type": "module", 6 6 "main": "./dist/index.js",
+44 -28
docs/src/content/docs/cli.md
··· 1 1 --- 2 - title: Wisp CLI 0.5.0 (alpha) 2 + title: Wisp CLI v1.0.0 3 3 description: Command-line tool for deploying static sites to the AT Protocol 4 4 --- 5 5 ··· 19 19 20 20 <div class="downloads"> 21 21 22 - <h2>Download v0.5.0</h2> 23 - 24 - <a href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-darwin-universal" class="download-link" download=""> 25 - 26 - <span class="platform">macOS (Universal):</span> wisp-cli-darwin-universal 27 - 28 - </a> 22 + <h2>Download v1.0.0</h2> 29 23 30 24 <a href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-aarch64-darwin" class="download-link" download=""> 31 25 ··· 33 27 34 28 </a> 35 29 36 - <a href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-darwin-x86_64" class="download-link" download=""> 30 + <a href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-x86_64-darwin" class="download-link" download=""> 37 31 38 - <span class="platform">macOS (Intel):</span> wisp-cli-darwin-x86_64 32 + <span class="platform">macOS (Intel):</span> wisp-cli-x86_64-darwin 39 33 40 34 </a> 41 35 ··· 51 45 52 46 </a> 53 47 54 - <a href="https://sites.wisp.place/nekomimi.pet/wisp-cli-binaries/wisp-cli-x86_64-windows.exe" class="download-link" download=""> 55 - 56 - <span class="platform">Windows (x86_64):</span> wisp-cli-x86_64-windows.exe 57 - 58 - </a> 59 - 60 - <h3 style="margin-top: 1.5rem; margin-bottom: 0.5rem;">SHA-1 Checksums</h3> 48 + <h3 style="margin-top: 1.5rem; margin-bottom: 0.5rem;">SHA-256 Checksums</h3> 61 49 62 50 <pre style="font-size: 0.75rem; padding: 1rem;" class="language-bash" tabindex="0"><code class="language-bash"> 63 - 7d0cc968d2a130158c3b204d9a15bcc29b8af252 wisp-cli-darwin-universal 64 - 65 - 912f8f99c2b55ca6ad75e0a89903688bd2c1cb4b wisp-cli-aarch64-darwin 66 - 67 - 40d26d4a9c058e42e7911a195c3e078e8a4b5e82 wisp-cli-darwin-x86_64 68 - 69 - ef1992d8850f8fef1d719e4e8fab5431475c352e wisp-cli-aarch64-linux 70 - 71 - 3018dde8fec495abcae044079564ced93cdeb4f8 wisp-cli-x86_64-linux 72 - 73 - d6bc789d7fd7c787e5520eb476cee70c97ccb3ce wisp-cli-x86_64-windows.exe 51 + 560eface5029dbecdb4adb6cca169651cc301dd6d48263a1cddf1906a2295b0b wisp-cli-aarch64-darwin 52 + fc759aa8d412948f735420536ee3f7944bda6119ad2c9169583a9b188ae889e5 wisp-cli-x86_64-darwin 53 + 2ff51a5411a20c45fd05d29f90acd24410bdce31f6fc8a91a125691b275e1216 wisp-cli-aarch64-linux 54 + 8cf27698daf2d1371f1a4eb1ec1e24c4da9185639dc09edc3f8bc3d358f08738 wisp-cli-x86_64-linux 74 55 </code></pre> 75 56 76 57 </div> ··· 143 124 ``` 144 125 145 126 Your site will be available at: `https://sites.wisp.place/your-handle/my-site` 127 + 128 + ### Domain Management 129 + 130 + ```bash 131 + # Claim a custom domain 132 + ./wisp-cli domain claim your-handle.bsky.social --domain example.com 133 + 134 + # Claim a subdomain 135 + ./wisp-cli domain claim-subdomain your-handle.bsky.social --subdomain alice 136 + 137 + # Check domain status 138 + ./wisp-cli domain status your-handle.bsky.social --domain example.com 139 + 140 + # Attach a site to a domain 141 + ./wisp-cli domain add-site your-handle.bsky.social --domain example.com --site mysite 142 + 143 + # Delete a domain or site 144 + ./wisp-cli domain delete your-handle.bsky.social --domain example.com 145 + ./wisp-cli site delete your-handle.bsky.social --site mysite 146 + ``` 147 + 148 + ### List Domains & Sites 149 + 150 + ```bash 151 + ./wisp-cli list domains your-handle.bsky.social 152 + ./wisp-cli list sites your-handle.bsky.social 153 + ``` 154 + 155 + ### Options 156 + 157 + Use an alternate proxy service DID: 158 + 159 + ```bash 160 + ./wisp-cli list domains your-handle.bsky.social --service did:web:example.com 161 + ``` 146 162 147 163 ### Pull a Site from PDS 148 164
+2 -2
packages/create-wisp/package.json
··· 1 1 { 2 2 "name": "create-wisp", 3 - "version": "1.0.8", 3 + "version": "1.0.9", 4 4 "description": "CLI for wisp.place - deploy static sites to the AT Protocol", 5 5 "type": "module", 6 6 "bin": { ··· 10 10 "bin.js" 11 11 ], 12 12 "dependencies": { 13 - "wispctl": "^1.0.8" 13 + "wispctl": "^1.0.9" 14 14 } 15 15 }