### Run OpenClaw Onboarding with Daemon Source: https://evolink.ai/docs/en/integration-guide/openclaw-feishu Run the onboarding command to guide through initial setup and install the background daemon service. ```bash openclaw onboard --install-daemon ``` -------------------------------- ### Go example to get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Go example using net/http to GET /v1/credits. Replace with your API token. Prints the response body. ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.evolink.ai/v1/credits" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Combined setup for installed CLI Source: https://evolink.ai/docs/en/cli/claude-code Run the setup command to check the environment, synchronize skills, sign in when needed, and verify access. Look for 'setup_complete: true'; host discovery still needs confirmation. ```bash evolink setup --agent claude-code --json ``` -------------------------------- ### Run Hermes setup wizard Source: https://evolink.ai/docs/en/integration-guide/hermes Starts the interactive setup wizard to configure the EvoLink endpoint. Select 'custom endpoint' and enter the API base URL, API key, and compatibility mode. ```bash hermes model ``` -------------------------------- ### Combined setup for an installed CLI Source: https://evolink.ai/docs/en/cli/cursor Run `evolink setup` to check the environment, synchronize skills, sign in when needed, and verify access. Look for `setup_complete: true`; host discovery still needs confirmation. Use `phase`, `steps`, `error`, and `recovery` to identify failures. ```bash evolink setup --agent cursor --json ``` -------------------------------- ### POST /v1/responses Source: https://evolink.ai/docs/en/api-manual/language-series/glm/responses/responses-quickstart Creates a model response. The minimum required fields are model and input. The examples also set an output budget and reasoning effort to help you get started. ```APIDOC ## POST /v1/responses ### Description Creates a model response. The minimum required fields are model and input. The examples also set an output budget and reasoning effort to help you get started. ### Method POST ### Endpoint /v1/responses ### Parameters #### Request Body - **model** (string) - Required - The model to use for the response. - **input** (string/array) - Required - The input prompt or messages. - **output_budget** (integer) - Optional - The maximum number of output tokens to generate. - **reasoning** (object) - Optional - Contains the reasoning effort configuration. - **effort** (string) - Optional - The reasoning effort level. Supported values: `low`, `high`, `max`, `xhigh`, `medium`, `minimal`, `none`. See compatibility rules for glm-5.3 series. ### Request Example { "model": "glm-5.3", "input": "Hello, world!", "output_budget": 1000, "reasoning": { "effort": "low" } } ### Response #### Success Response (200) - **id** (string) - The response ID. - **object** (string) - The object type, e.g., "response". - **created_at** (integer) - Unix timestamp of creation. - **status** (string) - The status of the response. - **output** (array) - The generated output items. - **usage** (object) - Token usage details, including `output_tokens` and `reasoning_tokens`. #### Response Example { "id": "resp_123", "object": "response", "created_at": 1710000000, "status": "completed", "output": [ { "type": "message", "role": "assistant", "content": [ { "type": "output_text", "text": "Hello! How can I help you?" } ] } ], "usage": { "output_tokens": 10, "reasoning_tokens": 0 } } ### Notes - The default BaseURL is `https://direct.evolink.ai`, which has better support for text models and long-lived connections. `https://api.evolink.ai` is the primary endpoint for multimodal services and serves as a fallback address for text models. - Responses uses nested `reasoning.effort`, rather than top-level `reasoning_effort` or thinking. - Reasoning usage is included in `output_tokens`. Simple tasks may return `reasoning_tokens=0`; this does not imply that thinking can be disabled. - **Compatibility rules for `glm-5.3` / `glm-5.3-flash` / `glm-5.3-flashx`**: - `low` / `high` / `max` - Unchanged - `xhigh` - `max` - `medium` - `high` - `minimal` / `none` - `low`; thinking remains enabled - `minimal` and `none` do not disable thinking on the 5.3 series. Thinking tokens are billed as output. Unrecognized values are unchanged and have no compatibility mapping; use the listed values. These mappings do not apply to glm-5.2. - On this endpoint, `glm-5.2` may still produce reasoning tokens with `none`. This value does not guarantee that thinking is disabled. ``` -------------------------------- ### Example: instructions string Source: https://evolink.ai/docs/en/api-manual/language-series/gpt/responses/responses-reference Example value for the 'instructions' parameter: system-level instructions for the assistant. ```text "You are a concise assistant. Answer in no more than three sentences." ``` -------------------------------- ### Ask your agent to install EvoLink Source: https://evolink.ai/docs/en/cli/cursor Paste this prompt into the agent conversation to set up EvoLink for media generation. It instructs the agent to install the CLI, sign in, install the companion skill, and verify the connection. Complete browser sign-in and permission review yourself. ```markdown Set up EvoLink so I can generate images, video and audio directly here. 1. Install the CLI: run `npm install -g @evolinkai/cli`. 2. Sign in: run `evolink auth login`. 3. Install the companion skill: run `evolink skills install`. 4. Verify the connection. Once successful, tell me I can get started. ``` -------------------------------- ### Ruby example to get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Ruby example using Net::HTTP to GET /v1/credits. Replace with your API token. Prints the response body. ```ruby require 'uri' require 'net/http' url = URI("https://api.evolink.ai/v1/credits") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` -------------------------------- ### Manual CLI installation and verification commands Source: https://evolink.ai/docs/en/cli/overview Basic manual sequence to install the CLI, sign in, install the skill, and verify with balance and doctor commands. Wait for sign-in to complete before continuing. ```bash npm install -g @evolinkai/cli evolink auth login evolink skills install evolink balance --json evolink doctor --json ``` -------------------------------- ### Java Unirest example to get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Java example using Unirest to GET /v1/credits. Replace with your API token. Returns the response as a string. ```java HttpResponse response = Unirest.get("https://api.evolink.ai/v1/credits") .header("Authorization", "Bearer ") .asString(); ``` -------------------------------- ### JavaScript fetch example to get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits JavaScript example using fetch to GET /v1/credits. Replace with your API token. Logs the JSON response. ```javascript const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; fetch('https://api.evolink.ai/v1/credits', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` -------------------------------- ### PHP cURL example to get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits PHP example using cURL to GET /v1/credits. Replace with your API token. Outputs the response or a cURL error. ```php "https://api.evolink.ai/v1/credits", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer " ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` -------------------------------- ### Python requests example to get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Python example using the requests library to GET /v1/credits. Replace with your API token. Prints the response text. ```python import requests url = "https://api.evolink.ai/v1/credits" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.text) ``` -------------------------------- ### evolink setup --agent codex --json Source: https://evolink.ai/docs/en/cli/reference Checks prerequisites, logs in, syncs skills, and verifies free connection. ```APIDOC ## evolink setup --agent codex --json ### Description Checks prerequisites, logs in, syncs skills, and verifies free connection. ### Command `evolink setup --agent codex --json` ### Options - `--agent` (string) - Agent name (e.g., codex). Default: all. - `--json` (flag) - Output in JSON format. ### Output Includes `update` object with `status`, `update_available`, `latest_version`, `command`. ``` -------------------------------- ### Install only the MCP skill Source: https://evolink.ai/docs/en/mcp/plugins Use this command to install the repository skills through the skills installer when native MCP is already configured. It does not install EvoLink CLI, start local MCP, or complete OAuth. ```shell npx skills add Evolink-AI/mcp-plugin -g -y ``` -------------------------------- ### Go example for image generation Source: https://evolink.ai/docs/en/api-manual/image-series/nanobanana/nanobanana-1/beta/nanobanana-image-generate Uses net/http to POST the nano-banana-beta model and prompt to the image generation endpoint. Prints the response body. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.evolink.ai/v1/images/generations" payload := strings.NewReader("{\n \"model\": \"nano-banana-beta\",\n \"prompt\": \"A cat playing on the grass\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Install skill for Gemini agent Source: https://evolink.ai/docs/en/cli/setup Example of installing the skill for the Gemini CLI agent using the agent name 'gemini'. ```bash evolink skills install --agent gemini evolink doctor --agent gemini --json ``` -------------------------------- ### Get npm installation prefix Source: https://evolink.ai/docs/en/cli/billing Run this command to check npm's installation location, which helps diagnose missing evolink commands. ```bash npm config get prefix ``` -------------------------------- ### Go example for video generation Source: https://evolink.ai/docs/en/api-manual/video-series/grok/grok-imagine-text-to-video Go example using net/http to POST to the video generation endpoint. Prints the response body. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.evolink.ai/v1/videos/generations" payload := strings.NewReader("{\n \"model\": \"grok-imagine-text-to-video-beta\",\n \"prompt\": \"A cat playing piano in a jazz club\",\n \"duration\": 6,\n \"mode\": \"fun\",\n \"aspect_ratio\": \"16:9\",\n \"quality\": \"480p\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Go example for image-to-video generation Source: https://evolink.ai/docs/en/api-manual/video-series/gemini-omni-flash-1.0/gemini-omni-flash-image-to-video Uses the net/http package to POST the image-to-video generation request to the Evolink API. Prints the response body. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.evolink.ai/v1/videos/generations" payload := strings.NewReader("{\n \"model\": \"gemini-omni-flash-image-to-video\",\n \"prompt\": \"Have the person in the image slowly turn their head and smile while the leaves in the background sway gently in the breeze\",\n \"image_urls\": [\n \"https://example.com/portrait.jpg\"\n ],\n \"aspect_ratio\": \"16:9\",\n \"duration\": 10\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Success response for get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Example JSON response for a successful GET /v1/credits request. Shows remaining and used credits for both the token and the user. ```json { "data": { "token": { "remaining_credits": 99416.4429, "unlimited_credits": false, "used_credits": 583.5571 }, "user": { "remaining_credits": 1095.3996, "used_credits": 135.9048 } }, "message": "", "success": true } ``` -------------------------------- ### Go example for wan2.5-image-to-image Source: https://evolink.ai/docs/en/api-manual/image-series/wan2.5/wan2.5-image-to-image Go example using net/http to POST to the image generation endpoint. Replace with your API token. Prints the response body. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.evolink.ai/v1/images/generations" payload := strings.NewReader("{\n \"model\": \"wan2.5-image-to-image\",\n \"prompt\": \"Replace the background with a starry sky\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Go example for video generation Source: https://evolink.ai/docs/en/api-manual/video-series/grok/grok-imagine-video-1.0-i2v Uses the net/http package to POST the video generation request to the Evolink API. Prints the response body. Replace with your API key. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.evolink.ai/v1/videos/generations" payload := strings.NewReader("{\n \"model\": \"grok-imagine-video-1.0-i2v\",\n \"prompt\": \"The person starts dancing\",\n \"image_urls\": [\n \"https://cdn.evolink.ai/Model-Example/GrokImagine1.5/generated-image.png\"\n ],\n \"duration\": 6,\n \"quality\": \"480p\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Error response 403 for get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Example error response for HTTP 403 Access denied. ```json { "error": { "code": 403, "message": "Access denied", "type": "permission_error" } } ``` -------------------------------- ### Example: input string Source: https://evolink.ai/docs/en/api-manual/language-series/gpt/responses/responses-reference Example value for the 'input' parameter: a user message asking for a web search and summary. ```text "Search for AI news from the past week and summarize it in three sentences." ``` -------------------------------- ### Verify existing installation and sign-in Source: https://evolink.ai/docs/en/cli/cursor Run these commands to verify the CLI is installed and authenticated. Look for a CLI version and `authenticated: true` in the output. ```bash evolink --version evolink auth status --json ``` -------------------------------- ### Error response 400 for get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Example error response for HTTP 400 Invalid request. ```json { "error": { "code": 400, "message": "Invalid request", "type": "invalid_request_error" } } ``` -------------------------------- ### Error response 401 for get credits Source: https://evolink.ai/docs/en/api-manual/account-management/get-credits Example error response for HTTP 401 Invalid or expired token. ```json { "error": { "code": 401, "message": "Invalid or expired token", "type": "authentication_error" } } ```