Command reference
everycli <command> [options]This reference describes everycli v0.8.2. Install or upgrade before using the top-level commands. These instructions use mainnet SN117, the default.
#Help and guided setup
Every command has its own options and example. Help needs no profile or credentials:
everycli help
everycli help deploy
everycli deploy --help
everycli setup --helpFor a new miner, everycli setup --wallet my-miner --hotkey default --provider fal --max-hourly-usd 0.06 guides you through registration checks, hidden key prompts, initialization and a confirmed paid deployment. The provider and hourly ceiling are optional for this wizard; it prompts for a ceiling if omitted. It stops on an existing or uncertain deployment and does not activate or resume work automatically. See guided setup.
New setup is interactive only and rejects --yes and --json. After deployment it prints a numbered checklist; everycli setup --continue shows it again from the original local profile, without network calls or paid operations. The continuation mode supports --json without a terminal, but not --yes or new deployment options. It is not a live readiness check. For automated deployment, use the individual commands and explicitly approve any mutation that requires confirmation.
#Browser UI
For browser-based setup and management, run everycli ui. It opens a paired local interface on 127.0.0.1; --no-open prints the local URL instead and --port N selects a port. Keep the pairing URL private. Closing the browser or CLI does not stop cloud hosting. The UI checks keys before saving, preserves the current setup step and supports local worker labels. See browser setup.
#CLI updates
everycli update
everycli update --check
everycli update --json
everycli update --check --json
everycli auto-update
everycli auto-update --disable
everycli auto-update --enable
everycli auto-update --json
everycli --versionThese update or inspect the local executable without accessing miner credentials or changing deployed workers. Official updates verify checksums and run a version probe before replacing the executable; the previous executable is retained as everycli.rollback. Source-built binaries are not silently replaced. The separate worker-update command discovers a compatible signed release and updates the existing worker. Use the original management profile.
auto-update shows the global preference and last background attempt. Eligible native installations check after successful interactive commands and when the UI starts, at most once every six hours, for the next invocation. Reopen everycli ui after an update. --disable opts out; --enable restores the default. EVERYCLI_DISABLE_AUTO_UPDATE=1 disables it for an environment. JSON/CI/non-interactive/help/version commands do not start background work. Settings are stored in ~/.config/everycli-updater/, not in miner profiles. No worker update, key activation, bid change or paid generation is performed.
update and update --check use readable text by default. Downloads show percentage and size when a total is available, otherwise downloaded size. Progress is written to stderr (one updating terminal line or plain milestones in redirected logs). --json suppresses progress and prints one structured result or error. See upgrade details, including the one-time behavior of older installed updaters.
#Identity and API keys
everycli reconnect --wallet NAME --hotkey NAME refreshes a saved profile using
the same local hotkey after confirmation. --hotkey-file FILE is an alternative;
omit signer options to use the saved path. It preserves API keys, labels and
deployment records and never mutates a cloud VM or resumes work. Rerun to finish
an interrupted local reconnect. Use --yes only after reviewing this operation
when running without a terminal. See recovery.
If there is no local VM record and the bound app is absent from your Phala workspace, reconnect can ask for a separate hotkey-signed retirement confirmation. Only approve if you deleted the VM: a wrong-workspace token can also return 404. See deleted-workload recovery.
| Command | Purpose | Options |
|---|---|---|
register-hotkey | Check finalized subnet membership and save public identity; no on-chain transaction | --wallet NAME --hotkey NAME, or --hotkey-file FILE, or --hotkey-ss58 ADDRESS |
set-api-keys | Save credentials locally with hidden prompts | --provider NAME; --stdin with one provider for secret-manager input |
remove-api-key | Remove a saved local key after confirmation; an absent key is a no-op with no prompt; no remote revocation | --provider NAME; add --yes without a terminal when a saved key exists |
providers | Table of key presence, release permission and reason; not balances or validated API access | --json for structured output |
init | Check finalized registration, prove hotkey ownership and fetch the signed deployment configuration | Saved signer, or --wallet NAME --hotkey NAME, or --hotkey-file FILE |
apply-api-keys | Drain and apply saved credentials to an activated worker; restart requires fresh admission | — |
Public setup needs no invitation file or miner token. Existing managed deployments retain an optional legacy configuration import; it is not part of the public setup flow. init --secrets-file FILE optionally imports an owner-only dotenv file without shell expansion, preserving omitted saved keys.
Provider names: phala, fal, minimax, openrouter, bfl, replicate, google, runway, luma, elevenlabs, vivix, kling. Before initialization, providers shows release permission as Unknown (null in JSON), not denied. After initialization, it explains permissions from the signed release; a saved key alone does not enable models.
Optional billing-only names: fal-billing and openrouter-billing. These keys stay on the management device and are never deployed to workers.
register-hotkey, set-api-keys, remove-api-key and update --check print readable summaries by default. Use --json for structured output. Key prompts show saved/missing state; Enter keeps saved keys or skips missing ones. Terminal key saves validate format, not provider access. The browser UI performs free read-only checks before saving: rejected replacements leave the old key unchanged, and inconclusive checks show a warning rather than a false success. Neither path updates running workers automatically.
#Lifecycle and work
| Command | Purpose | Options |
|---|---|---|
doctor | Check permissions, configuration, credentials, coordinator, workload and readiness; before setup, explain the missing profile and setup steps | — |
health | Color-coded readiness checklist; exit 0 only when every check passes, otherwise 2 | --json for structured checks |
status | Deployment, routing, offers and job activity tables by default | --json retains full structured fields |
deploy | Create the pinned workload with generation credentials disabled | --max-hourly-usd N required |
activate | Release encrypted provider credentials after accepted attestation | — |
resume | Permit new work after fresh admission; does not create an offer | — |
offers | Before setup, read the signed public catalogue; after setup, display deployment-specific offers and readiness | --json includes quotes and reported blockers where available |
balances | Supported account balances in USD or native Vivix W credits, with source, age and stale indicators | --publish explicitly syncs local readings for hotkey-only remote viewing |
offer | Set or withdraw a per-model discount bid after confirmation | --model ID, then --discount-pct PCT or --withdraw |
earnings | Read coordinator accounting, not wallet payouts | — |
jobs | Private individual job history; completed means accepted, not paid | --status, --model, --limit, --cursor; --summary for All-time jobs grouped by model; --json |
offer-batch | Review and atomically change up to 128 distinct model offers | --models ID,ID and either --discount-pct N or --withdraw |
stop | Drain and request shutdown when idle; never delete | --drain-only keeps hosting running; --force permits emergency shutdown even if the coordinator is unavailable |
delete | Irreversibly remove the verified VM and its storage after confirmation | --app-id ID required; rerun the same command to check completion without repeating the deletion |
logs | Read bounded, sanitized structured worker events | — |
label | View or change the local display name; does not rename the signed VM | --name NAME to change it |
start | Restart the same saved stopped workload | --max-hourly-usd N required |
worker-update | Fetch a compatible signed release, update the same VM, verify attestation and restore its previous accepting/paused state | --check is read-only; --release FILE is the advanced manual path |
reconcile | Inspect uncertain operations without replaying paid requests; may complete public app binding | — |
The hourly ceiling is a compute-rate limit, not a total budget. There is no automatic shutdown budget. Forced shutdown may interrupt paid work; deletion cannot be undone. A worker created on another computer can be deliberately deleted and replaced after signed ownership and exact target checks; this is not automatic restoration of its management journal. See replacement and operations.
#Health and status output
everycli health
everycli status
everycli health --json
everycli status --jsonhealth is the all-green readiness checklist. PASS is green, WARN is amber and FAIL is red; unknown evidence is not a pass. It checks the local profile and release, coordinator, cloud workload, fresh heartbeat and attestation session, routing and support for active model offers. Run it from the original management profile for complete local and cloud checks. status is a table-based overview; a successful status read is not proof of readiness.
All green means the current readiness checks passed, not guaranteed traffic, provider funds, successful future generations or earnings. Historical accepted jobs are shown separately; zero active jobs is normal when idle. Neither command submits a paid generation, checks API balances or changes a deployed worker. Use balances separately for supported account balances. See how to read health.
Colors are enabled only for supported interactive terminals. NO_COLOR=1 disables them, and redirected output stays plain text. --json contains no table or ANSI colors. Existing status --json fields are preserved; health --json includes ok, checks and job activity when the profile can be loaded.
#Discount bids
everycli offers
everycli offer --model studio/fal/minimax/h3-max-turbo/text-to-video --discount-pct 10
everycli offer --model studio/fal/minimax/h3-max-turbo/text-to-video --withdrawChoose a model currently offered to your deployment. Discounts range from 0 to 99.90%, with up to two decimal places. Invalid discounts are rejected before profile loading or network requests. The CLI previews the target and requires confirmation. A discount reduces your reward target, not provider bills; it is not guaranteed profit or traffic.
After a lost response, read back offers before retrying. Expired quotes and stale revisions are rejected. Only future assignments use a changed offer. See bidding economics.
#Batch offers
everycli offer-batch --models minimax/h3-max-turbo/text-to-video,minimax/h3-max/text-to-video --discount-pct 10Choose actual IDs from everycli offers. One review binds the complete batch,
price hashes and revisions. A conflict rejects every change. No uncertain
submission is automatically retried; refresh offers before deciding to retry.
Use --withdraw instead of --discount-pct to withdraw selected offers.
Requires coordinator batch support, deployed on SN117. Does not resume mining.
#Balance snapshots
everycli balances
everycli balances --json
everycli balances --publishLocal reads support Fal, Phala credited funds, OpenRouter account credits, BFL, Runway and native Vivix W credits. W credits are not converted to USD or substituted with A credits. Unsupported providers and failed checks show an explicit status, not a false zero. Fal can use its generation key or an optional billing key; OpenRouter account credits may need a management key. Account balances may be shared across miners and must not be added together or treated as profit.
Run --publish only on the initialized profile holding provider/billing keys. It shares amounts, statuses and timestamps—not credentials—with your miner's authenticated coordinator view. A hotkey-only device can then read those owner-reported snapshots. They are marked stale after 15 minutes; refresh by publishing again. This manual publishing step installs no background synchronization and does not restart the worker. Compatible attested workers can separately report supported balances automatically; check the source and age. See balance setup.
#Global options
| Option | Meaning |
|---|---|
--network mainnet | SN117, the default |
--state-dir DIR | Use an isolated owner-only profile |
--json | Compact machine-readable output; no prompts and no implied consent |
--yes | Explicit confirmation for supported mutating commands |
--help, -h | Show general help, or command-specific help after a command |
--version | Show the CLI version |
Mainnet's default profile is ~/.config/everycli-mainnet117. Use --state-dir for a different private profile; mainnet does not honor EVERYCLI_DIR. Unknown or misplaced flags fail closed.
#Exit codes
| Code | Meaning |
|---|---|
0 | Success |
2 | Command error or unsuccessful check, including missing profile, unhealthy diagnosis, unresolved reconciliation or an unregistered hotkey |
Without a profile, offers can show the signed public catalogue, while doctor and health explain the missing profile and setup steps rather than pretending a miner is ready. status, balances and earnings still require a configured profile. Current command errors use exit code 2; update scripts that only check for 1. health exits with 2 for both failed and unverified checks. A successful status read can still describe an offline or paused miner; use health as the readiness gate.
#Actionable diagnostics
| What happened | What to do |
|---|---|
deploy needs --max-hourly-usd | Supply a compute ceiling; inspect everycli help deploy before approving hosting |
| No local miner profile found | Use the original OS user and profile, or run init with your local hotkey on a fresh device; this is not proof of missing on-chain registration |
| File not found | Check the reported local path and file owner; do not share private file contents |
| Wallet ‘NAME’ not found | Choose from the available wallet names, check the OS user, or use --hotkey-file FILE for a wallet stored elsewhere |
| That key looks too short (minimum 10 characters) | Copy the full API key, not its displayed prefix; nothing was saved |
| Hotkey not registered on mainnet SN117 | Review the printed btcli command and registration fee, register separately, then rerun the check |
| Unknown command | Check the named command and any spelling suggestion, or run everycli help |
| Confirmation required without a terminal | Review the operation, then add --yes; --json alone never approves it |
| Unsupported option or conflicting offer flags | The error names the safe flag and actual command; choose either --discount-pct or --withdraw, not both |
| Unknown provider | Choose from the valid provider names listed in the diagnostic |
| Key entry needs an interactive terminal | Run in a terminal, or pipe one key using --provider NAME --stdin |
| The key was empty | Supply a non-empty piped key; nothing was saved |
An unregistered public-address lookup also prints a btcli registration example. Replace wallet/hotkey placeholders with the owning wallet names; the lookup does not submit a chain transaction. Read-only command help omits the unused --yes option.
--json retains structured diagnostics with ok, error, message and next, plus file or option when applicable. doctor also includes its check results. Errors omit credentials, provider request bodies and stack traces. Network failures are not automatically reported as missing registration, bad credentials or insufficient funds.
#Files and environment
| File | Purpose |
|---|---|
config.json | Verified signed deployment configuration and profile settings |
credentials.json | Local credentials, unencrypted, mode 0600 |
deployment.json | Workload state, durable operation intents and outcomes |
worker-update.json | Saved automatic update target and previous accepting/paused state; keep it for safe continuation |
operation.lock | OS-backed exclusive mutation lock; released automatically when the process exits, including after a crash |
Profiles use mode 0700. Symlinked sensitive paths are rejected. Never share or commit a profile, and preserve it when upgrading the CLI.
Miner commands reject DEBUG, PHALA_CLOUD_API_PREFIX and SSLKEYLOGFILE. The coordinator origin, signing key and chain identity are pinned. There is no supported option to bypass TLS or attestation. Network clients do not inherit proxy/custom-CA overrides.