CLI command reference aligned with the official WisyLink HTTP API.
#Availability
npm i -g @wisylink/cli#Authentication
CLI requests use the same API key auth as the HTTP API.
Set your API key:
export WISYLINK_API_KEY="your_api_key"Or pass per command:
wisylink links get 67e6f6e6c5a91e4d2d9b0a77 --api-key "your_api_key"#Global Flags
| Flag | Type | Description |
|---|---|---|
--api-key <value> | string | Overrides WISYLINK_API_KEY |
--timeout <ms> | number | Request timeout (1000..120000) |
--help | boolean | Show command help |
--version | boolean | Show installed CLI version |
#Rules
| Rule | Value |
|---|---|
| File id format | 24-char hex |
| Link id format | 24-char hex |
| Max file_ids per request | 10 |
| Message max length | 5000 chars |
| Link lifecycle | status enum: building \ |
#Commands
CLI command reference grouped by resource. Each command maps directly to an HTTP API endpoint.
#Files
Upload, inspect, and delete file assets that can be attached to link generation.
#Upload File
wisylink files upload <path>Maps to chunk upload flow:
POST /filesPOST /files/chunks?id=...
CLI uploads in <=4 MB chunks automatically (up to 25 MB total file size). The final chunk is sent with last=true.
Example:
wisylink files upload "./asset.png"Success output:
{
"id": "67e6f6e6c5a91e4d2d9b0a11",
"ok": true
}#Get File
wisylink files get <id>Maps to GET /files/:id.
Example:
wisylink files get 67e6f6e6c5a91e4d2d9b0a11#Delete File
wisylink files delete <id>Maps to DELETE /files/:id.
Example:
wisylink files delete 67e6f6e6c5a91e4d2d9b0a11Success output:
{
"ok": true
}#Links
Create links by chatting with the Wisy agent, then list, read, and delete them.
#Chat
wisylink chat --message <text>Maps to POST /chat.
Omit --link-id to create a new link. Provide --link-id to continue generation on an existing one.
Arguments:
| Flag | Type | Required | Rules |
|---|---|---|---|
--message | string | Yes | 1..5000 chars — the user message sent to the agent |
--file-id | string | No | Repeatable flag, max 10 total |
--link-id | string | No | Continue an existing link (24-char hex) |
Example:
# New link
wisylink chat \
--message "Create a short product trailer with energetic pacing." \
--file-id 67e6f6e6c5a91e4d2d9b0a11
# Continue existing link
wisylink chat \
--message "Make it 20 seconds and emphasize motion graphics." \
--link-id 67e6f6e6c5a91e4d2d9b0a77Success output:
{
"id": "67e6f6e6c5a91e4d2d9b0a77",
"url": "https://67e6f6e6c5a91e4d2d9b0a77.wisylink.com",
"status": "building",
"answer": "On it — building your product trailer now.",
"created_at": 1762432496000,
"updated_at": 1762432496000
}#List Links
wisylink links listMaps to GET /links. Pages through your links, newest first.
Arguments:
| Flag | Type | Required | Rules |
|---|---|---|---|
--page | number | No | 1-based page number (default 1) |
--limit | number | No | Items per page, 1..100 (default 20) |
Example:
wisylink links list --page 1 --limit 20Success output:
{
"items": [
{
"id": "67e6f6e6c5a91e4d2d9b0a77",
"url": "https://67e6f6e6c5a91e4d2d9b0a77.wisylink.com",
"status": "completed",
"file_ids": ["67e6f6e6c5a91e4d2d9b0a11"],
"created_at": 1762432496000,
"updated_at": 1762432596000
}
],
"page": 1,
"limit": 20,
"total": 1,
"total_pages": 1,
"has_prev": false,
"has_next": false
}#Get Link
wisylink links get <id>Maps to GET /links/:id. Response includes id, url (the hosted page), status, file_ids, and timestamps.
Example:
wisylink links get 67e6f6e6c5a91e4d2d9b0a77#Delete Link
wisylink links delete <id>Maps to DELETE /links/:id.
Example:
wisylink links delete 67e6f6e6c5a91e4d2d9b0a77Success output:
{
"ok": true
}#Output
All command outputs are root-level JSON objects aligned with API responses.