Skip to main content

CLI costs and approval

This page describes released CLI 0.8.1. The CLI calls platform APIs directly and manages commands and saved estimates locally; sign-in uses Passport. Start with the complete workflow.
  1. Run evolink estimate with the final model and inputs, and show estimated cost.
  2. After approval of this model, parameters, and cost, generate using the saved quote_id and --confirm.
  3. Re-estimate and obtain approval after input, identity, expiry, or price changes. Do not reuse a different quote.
  4. Query the original task and account usage. An estimate does not establish an actual charge or refund.
See models, costs, and quotas for estimate states, public-pricing limitations, approval, and budgets. Released max_cost_usd only compares pre-submission estimates; it does not cap final charges. Quotes generally last 15 minutes and bind the original identity, model, and inputs. They are not payment receipts. --confirm expresses approval for this task; it does not replace sign-in or host execution permission. Model, balance, and task queries do not submit generation. Generation is billed; file-service size and retention limits apply separately. The reference conversion is about 68 credits per $1; use actual returned values and account records. See shared access rules; this page retains sign-in and sign-out actions for this route.

Sign-in, permissions, and quotas

Passport handles browser sign-in, and the system secure store saves CLI credentials. Business requests use the existing OAuth-linked Key. CLI and remote MCP can share account access, Key quotas, and permissions. Pausing or changing a shared Key affects its consumers; each OAuth session signs out separately.
To sign out of this local CLI, run separately:
A local MCP configured with a personal API Key uses that Key’s permissions; CLI sign-in does not authorize a separate MCP process. Balance, daily and total quotas, model access, and tool permissions can prevent submission. Failed tasks, disconnection, or sign-out do not establish that a refund completed.

Storage and expiry

Default quote, reference, upload-authorization, and original URL lifetimes are maintained in tasks, references, and results. Actual returned values apply; receipt support depends on file-service deployment.

CLI troubleshooting: locate the failed stage

Check version and access in the same machine, OS user, and terminal that executes the CLI. These queries do not submit generation:
Resolve the current stage before continuing. Connection verification does not require paid generation; do not repeatedly generate to test installation.

Environment and installation: missing commands, permissions, timeouts

Step 1: check the actual execution environment. Run in the terminal used by your agent:
The CLI requires Node.js 22+. For command not found or an unrecognized Windows command, install Node.js and reopen the terminal. A desktop installation does not install the CLI into SSH, WSL, or a container. Step 2: check npm’s installation location.
Choose the path inspection commands for your system:
Step 3: verify again. After correcting the specific issue, install/update and run evolink --version. Continue to sign-in only when the command works. See full installation.

Sign-in and callbacks: browser missing or login incomplete

  1. Keep evolink auth login or setup running. If no browser opens, manually open this attempt’s link, review the account, and approve.
  2. Return to the original terminal and wait for completion. A browser callback page does not establish verified account connectivity; do not terminate the command early.
  3. Check saved authentication and actual account access separately:
Look for authenticated: true and actual balance data respectively. After a timeout, start a new attempt with a new link rather than reusing an authorization code. For a longer wait:
--no-browser still requires a browser callback. It is not device-code or browserless authentication. Do not enter an API Key as a remote OAuth token.

Skills and permissions: installed files are not used by the agent

  1. Check the directory for the user that runs the agent. Use the matching --agent; for Codex:
  1. current: true means installed files match the CLI. For missing/outdated files, use evolink skills install --agent codex. Preserve local edits when modified; resolve a conflicting skill or invalid metadata when conflict rather than deleting the entire skills directory.
  2. Ask the agent to confirm discovering and reading evolink-cli. Refresh or open a new conversation when needed. Review required command permissions in the host; organization restrictions must be handled in its own settings.
assistant_discovery: not_checked means host loading remains unverified. A SKILL.md file or a read documentation page does not prove the agent can execute the CLI. Synchronize skills after updating the CLI. Use --replace-modified only after deciding to replace local changes; backups are under ~/.evolink-media/skill-backups/. Directories and content are listed in Agent-readable surfaces.

Models and pricing: empty search, invalid parameters, incomplete estimate

  1. Search live models and use the returned canonical ID. A family, display name, or alias may not be a valid submission ID. Broaden search wording without discarding required reference capabilities.
  2. Inspect models show / models schema for this model. Check required fields, spelling, enums, numeric limits, and mutually exclusive references. Do not copy another model’s duration, size, or quality fields.
  3. Re-estimate and inspect input_valid, problems, estimate.status, basis, and warnings. Input, price, or identity changes require a new estimate and approval.
Supply missing input for needs_input; no_price is unusable and partial is not a total. Unknown duration or reference multipliers cannot be filled with a starting price. Preserve the budget; do not silently remove caps, switch Keys, or reduce specifications to bypass a rejection. Published public-default estimates are not account-specific authoritative Quotes, and max_cost_usd is not a final settlement cap. See costs and command reference.

Generation timeout, running tasks, or unknown submissions

1

Query the original task when an ID exists

A wait timeout does not cancel generation. Use batch or list for multiple tasks and download originals after completion.
2

Recover the original quote if no task ID returned

Retain the original identity, quote, and request identifier. Do not switch accounts, quotes, or identifiers and generate again. Unknown outcomes do not mean nothing was submitted or charged.
3

Preserve evidence before handling failure

Record the original task ID, error code, and time. After confirmed failure, inspect account records; failure alone does not establish a refund. No usable public cancellation command exists. Closing the terminal or stopping a wait does not cancel the server task.
For an expired or changed quote that has not been submitted, estimate and approve again. Recover existing tasks or unknown submissions first. See the task command reference.

Failed, oversized, or unknown uploads

  1. Check the absolute path, permissions, and real format on the machine that executes the agent. A remote host or container cannot directly read a desktop path.
  2. Local CLI uploads are limited to 95 MiB; models may impose stricter format, count, or size limits. Check model documentation first. Chat attachments must become readable files or accessible URLs.
  3. Preserve the original upload_id after an unknown outcome and query it:
  1. Receipt queries depend on file-service deployment. outcome_unknown does not establish that nothing uploaded. Request replacement uploads only after confirmed failure or expiry. References usually last 72 hours; re-upload expired inputs, update the request, and re-estimate and approve before generation.
See reference workflows for upload methods and the command reference for receipt fields. Do not share single-use upload URLs, private signed URLs, or Keys in chat.

Downloads and previews

Query the original task, confirm completion, and use its original URL. Prefer CLI download; see CLI reference. Downloads already use a product UA. HTTP/format checks, the Python product User-Agent example, expired links, and gray previews are maintained in download troubleshooting. Recover unknown tasks instead of regenerating or editing previews.

Information for support

Follow the support checklist with versions, failed stage, IDs, and redacted errors. Preserve diagnostics from this route; do not share Keys, tokens, private URLs, or environment dumps.

Troubleshooting a native MCP connection

CLI and MCP are separate entry points. See MCP troubleshooting for native OAuth, tool discovery, and local stdio. Successful CLI installation does not validate MCP access. This compatibility entry preserves old links; CLI commands, sign-in, and skills are covered above.