Repository navigation
Releases
EvoLink CLI 0.14.1
A quote now holds for 24 hours at the approved price or lower, and tasks resume follows the same rule. Qwen TTS gets a reference price, and Gemini Omni estimates list the price at each input resolution. The embedded core is MCP 1.12.1.
- Quotes hold 24 hours at the approved price or lower (#28).
evolink generate <type> --quote ID --confirmestimates again and submits the same input at the approved price or lower, also under later pricing rules. A higher price fails withprice_changedand a changed input withquote_input_changed. From the quote'sexpires_at(at most 24 hours after the estimate) it fails withquote_expiredand nothing is sent: estimate again. The 0.14.0 submission of an expired quote at an unchanged price (approval_expired) is gone. tasks resume(#28). It keeps its 23-hour window and follows the same rule: past the quote's expiry, or at a higher price, nothing is sent. The error says to checkevolink tasks batchorevolink tasks listfor what went through, and to estimate only the rest as a new generation or batch.- Reference prices (#28).
qwen-audio-3.1-tts-flashreturns atoken_billedreference price from its text, as EvoLink reserves at submission;hot_fix: nullis read as nohot_fix. Gemini Omni estimates list the price at each input resolution, with the reference at 4K. - On Windows, CI gives each mutation check 120 seconds (#29).
Validation: CI passed on Linux, macOS and Windows with Node 22 and 24. On a Linux test host the full suite passed on Node 22 and 24 (187 tests: 186 passed, 1 skipped because it needs a non-root user), all 194 mutation checks were detected, and npm audit reported no vulnerabilities. The attached package was built by CI on Ubuntu (SHA-256 9ef6231af8bebab85311b4f40b6f77402627d42710bce3032d5bc9ca95a856b7, the same as the test host's). No paid generation was run.
Upgrade with npm install -g @evolinkai/cli@0.14.1.
EvoLink CLI 0.14.0
Generate without a quote when the user opts out of estimates, estimate and submit up to 50 inputs at once, submit an expired quote whose price did not change, and get reference prices for GPT Image 2.6 and Gemini Omni. The embedded core is MCP 1.12.0.
- Generate without an estimate (#26).
evolink generate <type> --model MODEL --input-file FILE --skip-estimatesubmits without a quote, only when the user explicitly opted out of estimates. It saves a record with its own request ID, soevolink tasks resumecan recover an uncertain submission and a retry never submits twice. Invalid input and an explicit--max-cost-usdare still refused. - Batches (#26).
evolink estimate --model MODEL --inputs-file FILE(a JSON array or JSONL, 1–50 inputs of one model) saves one quote for the batch;evolink generate <type> --quote ID --confirmsubmits every input at once and lists each task ID or error. Collect the results withevolink tasks batch --ids ….evolink tasks resume --quote IDfinishes a partly submitted batch with the same request ID, within 23 hours of the first submission: accepted inputs return their original tasks without a new charge. - Expired quotes (#26). Quotes are valid for 24 hours.
generate --quoteon an expired quote estimates again and submits under the original approval when the input and price are unchanged (approval_expired); a changed price still fails withprice_changed. - Reference prices (#26). GPT Image 1.5 to 2.6 and the Gemini Omni Flash video models return
token_billedreference prices, as the gateway reserves at submission;--max-cost-usdmust cover 1.5 times the reference price. Gemini Omni inputs with videos need--media-seconds. - More documented models (#26). Kling 4.0 Flash, Gemini Omni 1.2 Flash and
voice-enrollment. - CI test jobs get 40 minutes (#27).
Validation: CI passed on Linux, macOS and Windows with Node 22 and 24. On a Linux test host the full suite passed on Node 22 and 24 (181 tests: 180 passed, 1 skipped because it needs a non-root user), all 183 mutation checks were detected, and npm audit reported no vulnerabilities. The attached package was built by CI on Ubuntu (SHA-256 0fb74b3da42c6288b92b7b80b1d4263d9f195c87339f307213243ebb622bec4e, the same as the test host's). No paid generation was run.
Upgrade with npm install -g @evolinkai/cli@0.14.0.
EvoLink CLI 0.13.0
Estimates now match what the gateway charges for Midjourney speeds and upscale types and five other models, name the usage they lack and the CLI option that supplies it, and saving local state on Windows no longer fails while another command is reading it. The embedded core is MCP 1.11.0.
- Quotes (#22).
evolink estimateandgenerate --quoteread Midjourneymodel_params.speedandtype(mj-v7turbo is quoted at 10.8 credits, not 5.4), price empty-prompt V7 variation, pan and outpaint edits as the gateway does, and derive Seedream 5.0 Pro 2K, MiniMax H3 reference-image counts, the Tencent upscale frame rate and the Seedance draft content filter. Tencent upscale without a known frame rate now asks foroutput_fpsinstead of quoting the lowest tier. - Missing usage (#23). An estimate that needs usage the input does not give, such as the length of a reference video, now fails with each missing value and how to supply it, for example
--media-secondsformedia_secondsand--pricing-parametersforpricing_parameters, instead of quoting $0. No quote is saved. Kling 4.0, Grok Imagine Video 1.5 Lite, Veo 3.1 Lite and Qwen Audio 3.1 TTS Flash now have documented parameters. - Windows (#21). Replacing a local state file retries briefly when Windows refuses it because another process has the file open (EPERM, EACCES or EBUSY), instead of failing the command.
- Dependency security (#22). zod 4.6.7 (GHSA-mrhx-c7xc-m3w5; zod 3 has no fix). Invalid arguments keep the same parameter names; their messages use zod 4 wording.
- No change to login, setup, uploads or task waits.
Validation: on a Linux test host (Node 22) the full suite passed (163/163), all 152 mutation checks were detected and npm audit reported no vulnerabilities; CI passed on Linux, macOS and Windows with Node 22 and 24. The attached package was built by CI on Ubuntu and macOS (identical, SHA-256 827bb939219cb80038ee00fa46889bfd56c55917f9a7190624e93a7fe7d526f6). No paid generation was run.
Upgrade with npm install -g @evolinkai/cli@0.13.0.
EvoLink CLI 0.12.0
The CLI shares MCP 1.10.0's deadline-bound task waits and task-list detail reporting, and a refreshed quote now replaces the quote it came from.
- Task waits (#17).
tasks waitandgenerate --waitkeep one deadline for every round, read, token renewal check, pause and the update notice. The first round always runs; a later round starts only with at least 2 s left. Between rounds the usual rhythm is kept (image 3 s, audio 6 s, video 8 s). At the limit,wait_timeoutsays that stopping does not cancel the task and reportsstatus_check:verifiedwithlast_statusandread_at, orunverifiedwith the Dashboard check;recoverygivesevolink tasks wait TASK_ID.tasks get,downloadandtasks resumeread once without automatic retries. - Quote refresh (#18). One estimate is one generation: a refresh issues a new quote ID but keeps the same
client_request_id, and the earlier quote becomessuperseded. Submitting or resuming it returnsquote_supersededand points to the current quote, or to its task if that quote was already submitted. Refresh, submit and resume share one lock; a submission that starts during a refresh returnssubmission_already_started, and a concurrent refresh returnsquote_refresh_conflict. Quotes refreshed by 0.11.0 or earlier are not linked to each other. - Task list details (#19).
tasks listpasses through MCP 1.10.0'sdetails_status, per-rowdetails_reason,details_retry_task_ids,details_coverage,details_errorandlast_page. Retry the listed IDs for free withtasks batch --ids; checknot_returnedrows withtasks get. - New error codes:
task_query_timeout,quote_superseded,quote_refresh_conflictandquote_refresh_incomplete. The bundledevolink-cliskill is updated, so runevolink skills installafter upgrading. The embedded shared core is MCP 1.10.0 (source SHA-2566532b781fb30919efbd4d448e07efbbaa15ff15cff4b64ebaafe880db83867c9). - No change to login, setup or uploads.
Validation: 157 tests, 143 mutations (7 that hit the time limit on a busy host were each detected in a single re-run) and the pricing-rule mutation suites passed on the test host; the packed package (68 files) reports 0.12.0 and passes the task-response, quote-refresh and wait-deadline tests; the embedded core equals a fresh sync from the MCP 1.10.0 release tree. No paid generation was run.
Upgrade with npm install -g @evolinkai/cli@0.12.0, then run evolink skills install.
EvoLink CLI 0.11.0
The CLI shares MCP 1.9.0's corrected Seedance draft quotes, media search-fee disclosure and verified task reads, and local quote approvals now last 30 minutes.
- Quote approvals (#14). Local quotes stay valid for 30 minutes, the same as the shared approval window; 0.10.3 expired them after 15 minutes. An earlier server expiry still applies, and upload URLs still last 15 minutes.
- Seedance drafts and media search fees (#14). As in MCP 1.9.0: Seedance 2.5 drafts are quoted with the 480p input that is generated, and enabled search on the seven media routes shows a partial zero-search subtotal with the current per-search rates. Search stays off unless the user asks for it or agrees to it.
- Task reads and recovery (#15).
tasks get,tasks wait,tasks batch,tasks listandgeneratecheck the task ID and status. Invalid bodies, mismatched IDs and unknown states returntask_response_invalid,task_identity_mismatchortask_status_unknownwith the original task ID andstatus_check: unverified. An accepted submission is recorded before an error is reported, sotasks resumequeries the original task instead of generating again.tasks batchandtasks listkeep verified rows and markpartial,missinganddetails_missing. - Dashboard link and language (#15). JSON and text recovery output include
dashboard_urland Englishdashboard_guidance; customer notices and the confirmation template default to English unless another language is requested. The bundledevolink-cliskill is updated, so runevolink skills installafter upgrading. - Nano Banana 2.1 parameter information is added. The embedded shared core is MCP 1.9.0 (source SHA-256
29ca2f1978406a8791fbbd3aaa17a6b7649ea4c639113c9a35fc4381e80131a0). - No change to login, setup, uploads, downloads or the update check.
Validation: 139 tests, 116 mutations and the pricing-rule mutation suites passed on the test host; the packed package (68 files) matches the source tree and reports 0.11.0; the embedded core equals a fresh sync from the MCP 1.9.0 release tree.
Upgrade with npm install -g @evolinkai/cli@0.11.0, then run evolink skills install.
EvoLink CLI 0.10.3
Site links the CLI shows are now tagged as the CLI.
- Link tagging. Links to evolink.ai that the CLI shows (model docs, top-up and API-key pages) carry
utm_campaign=cli. Earlier versions shared the local MCP package's tag (utm_campaign=mcp_local), so the site counted CLI visits as local MCP.utm_mediumstaysmcpandutm_sourcestill names the assistant when it is known (otherwisemcp_other). - No change to login, setup, models, estimates, generation, uploads, downloads or the update check.
Validation: unit tests, mutations and a production model search on the test host; CI on the merged main.
Upgrade with npm install -g @evolinkai/cli@0.10.3, then run evolink skills install.
EvoLink CLI 0.10.2
Model search, details and recommendations show prices again.
- Pricing catalog. Since 2026-10-12 the public pricing-rules catalog includes published policies whose tiers carry their own SKU and absolute rate and no
multiplier. Versions up to 0.10.1 rejected the whole catalog because of them, somodels search,models showandmodels recommendshowed no prices ("Public pricing rules are unavailable or invalid") andmodels pricingfailed. The multiplier is now optional, and the catalog is checked model by model: a model whose rules cannot be read is left out and named inrejected_modelsandpricing_warning, while every other model keeps its price. - Shared platform core synced from MCP 1.8.2.
- No change to login, setup, doctor, uploads, estimates or the update check.
Validation: 125 unit tests and 101/101 mutations on Node 22 (test host); the acceptance command evolink models search --type image --limit 3 --json against production returns prices with no warning; CI on the merged main.
Upgrade with npm install -g @evolinkai/cli@0.10.2, then run evolink skills install.
EvoLink CLI 0.10.1
A failed task now shows the API's error code and explanation and says that it is not charged; tasks wait names the error code.
- Failed tasks.
tasks get,tasks wait,tasks listand the generate commands report the sameerror.codeas the API (rule codes such asinvalid_audioare kept;channel_*codes, which concern EvoLink's own upstream accounts, are reported asservice_unavailable) and the gateway's explanation inerror.message, on one line without secrets, service addresses or links other than EvoLink docs. A failed task carriesbilling_note: "The task failed, so it is not charged. The credits reserved at submission are returned automatically." Cancelled tasks keep the unverified wording.tasks waitends with "The generation task failed with error code." (exit code and details unchanged). - Shared platform core synced from MCP 1.8.1: estimate approvals last 30 minutes, string enum values price correctly (
kling-o1-image-to-video,sora-2-preview), and thequota_exceededhint no longer points at the balance. - No change to login, setup, doctor, uploads or the update check.
Validation: 125 unit tests and 101/101 mutations on Node 22, 125 tests on Node 24 (test host); CI on the merged main.
Upgrade with npm install -g @evolinkai/cli@0.10.1, then run evolink skills install.
EvoLink CLI 0.10.0
The CLI now tells you when a newer release exists, auth status no longer reads like an expired login, and plain doctor checks installed skill copies.
- Update notices.
setup,doctorandauth loginask the npm registry for the latest release and reportupdate(status,update_available,latest_version,command); setup and login print one progress line when an update exists, and a failed login names it too. Other commands, except the offlineauth status, reuse an answer from the last 24 hours and print one stderr line after their own output when a newer release exists, at most once a day per release. stdout,--jsonenvelopes and exit codes are unchanged. A check waits at most 3 seconds and never keeps the process running after that. Turn checks off withEVOLINK_CLI_UPDATE_CHECK=0;NO_UPDATE_NOTIFIERandCIalso turn them off. - auth status. The bare
expires_at(the ten-minute access-token expiry) is replaced byaccess_token_expires_at,access_token_renewal: automatic,logged_in_at,login_checkand a note: an elapsed access token renews itself and is not an expired login. Verify a login withevolink balance --json. - doctor. Without
--agent, doctor reports installed skill copies asskills.statuswith guidance (outdated copies point toevolink skills install; local edits are never replaced). It does not changeok. - No change to estimates, generation, uploads or the bundled platform core (same core as 0.9.x / MCP 1.7.0).
Validation: 122 unit tests and 94/94 mutations on Node 22 and 24; the packed CLI against the real npm registry (17 scenarios), a logging proxy and network-failure cases on the test cloud; six Linux/macOS/Windows × Node 22/24 CI jobs passed on the merged main commit.
Upgrade with npm install -g @evolinkai/cli@0.10.0, then run evolink skills install.
EvoLink CLI 0.9.1
After a login approval, the browser now lands on the EvoLink MCP page instead of a bare local page.
- The loopback callback page is English only and hands the browser straight to
https://evolink.ai/mcp?login=cli, where the site confirms the approval and picks the page language (its saved choice, then the browser's preferred site language, English otherwise). The authorization code is never part of that URL; repeated callbacks still return 410, and the CLI still verifies the connection itself. - No change to commands, estimates, uploads or the bundled platform core (same core as 0.9.0 / MCP 1.7.0).
Validation: 110 unit tests and 56/56 mutations on the test cloud; six Linux/macOS/Windows × Node 22/24 CI jobs passed on the merged main commit.
Upgrade with npm install -g @evolinkai/cli@0.9.1. The confirmation on the MCP page requires the website release that adds it; until then the browser lands on the MCP page without the notice.