Get started
Provider quickstart
Install the provider agent, sign in, set up an endpoint and keep it running. From zero to a live offer.
This guide takes a self-hosted source from nothing to Live, when customers can route requests to it. It uses Ollama because it needs no API key; the steps are the same for every other source. Source-specific requirements are in Inference sources.
You need a Numes account, a machine on a supported platform, and an inference source that the machine can reach.
Create a provider (optional)
Setup can create the provider for you, but creating it in the dashboard first lets you pick the name customers see. Open Provider › Overview, choose Become a provider (or New provider), enter the Provider name and choose Self-hosted under How you'll serve. The dialog shows the commands below and waits for your first endpoint to connect; you can close it and come back.
Install the agent
Shellcurl -fsSL https://numes.ai/install | shThe installer downloads the latest stable release for your platform, verifies it, and links the
numescommand at~/.local/bin/numes. If that directory isn't on yourPATH, it prints the line to add. Check the installation:Shellnumes versionTo pin a version, install offline or control updates, see Install and update.
Sign in
Shellnumes auth loginAt a desktop session, a browser opens on this machine. Over SSH, without a display or in a non-interactive terminal, the agent prints an address and a short code instead: open the address on any device, check that the code matches and approve. Force either method with
--login-method loopbackor--login-method device.numes auth statusshows your sign-in, andnumes auth logoutrevokes and removes it.Create an endpoint
Shellnumes provider tuiPress
nfor a new endpoint. Setup has four steps:Source: if asked, choose the account and provider you created in the dashboard; the dashboard dialog names both. Pick Ollama, check the address and concurrency, and choose Connect and find models →.
Models: tick models with
Spaceand search with/. Rows marked⚠ needs nameneed a publicauthor/modelname; presseto choose one.Review: check each model's public name, currencies, prices, context length and capacity, and the provider and endpoint names. Prices are prefilled where a reference price exists; enter or confirm every one.
Submit: press
P. Setup creates or reuses the provider and endpoint, enrolls this machine, submits the models and, with Start serving now on, starts the endpoint.
Each step saves a draft.
Escor a tab key leaves setup, and Continue setup on Overview or Endpoints resumes it. See Terminal UI for every screen and key.Wait for review and verification
Your provider, your endpoint, each public model name and each model's first prices are reviewed. Meanwhile your models show In review or Waiting for approval.
After approval, models show Checking while automated checks exercise every capability you declare through your agent, with synthetic requests and never customer data. When every check passes, the model shows Live and starts receiving traffic. Checks run only while your agent is connected, so keep the endpoint running.
Later price or model changes go live automatically once they pass verification and price protection. Misrepresenting a model, its capabilities, its usage or its data handling leads to suspension and to withholding or reversal of earnings.
Check status
Shellnumes provider status --profile ollama-localstatuscombines the local process with the platform's view of your provider, endpoint and models, and reports one readiness state and the next action. Add--localto skip sign-in and check only the local process.
Set up from the command line
The same setup as commands you can script or run over SSH. Preview it with --plan, which saves a local draft and creates nothing on the platform:
numes provider setup ollama \ --profile ollama-local \ --provider-name "Example Labs" \ --model llama3.2:3b \ --canonical-model llama3.2:3b=meta-llama/llama-3.2-3b-instruct \ --currency USD \ --prompt-price 0.10 \ --completion-price 0.40 \ --plan --non-interactiveThen resume the draft, confirm the plan and start the endpoint:
numes provider setup --resume ollama-local --start --wait-ready--modelis the model ID as your source reports it. Repeat it for each model.--canonical-modelsets the publicauthor/modelname. Setup proposes a name for each model from names the platform already knows and from public model catalogues; you need this option when there's no proposal or you want a different name. Public model names are reviewed by the platform.Prices are exact decimals per 1M tokens in the chosen currency.
--provider IDreuses a provider you created in the dashboard instead of--provider-name. Without either flag, interactive setup lists your self-hosted providers to reuse, then Create a new provider. Add--account IDif you belong to several accounts;numes account listshows them.--wait-readywaits up to 30 seconds and prints the combined status.
With --non-interactive and without --plan, one setup command submits directly. For a source that needs an API key, add --api-key-env NAME so the key is read from an environment variable rather than typed. All options are in the CLI reference.
Readiness states
status reports the first state that applies, in this order.
| State | Meaning | What to do |
|---|---|---|
awaiting_provider_approval | Your provider is in review. | Wait. |
provider_review_blocked | The provider was sent back, rejected or suspended. | Follow the feedback. Requested changes can be corrected and resubmitted; rejection is final. |
awaiting_endpoint_approval | The endpoint is in review. | Wait. |
endpoint_review_blocked | The endpoint was sent back, rejected or suspended, or is still a draft. | Edit and submit it, or follow the feedback. |
endpoint_paused | You paused the endpoint. | Resume it in the dashboard or the terminal UI. |
endpoint_reconnect_required | The endpoint's key was revoked or must be set up again. | Choose Reconnect agent in the terminal UI (Endpoint › Settings). |
submission_review_required | A model submission had changes requested or was rejected. | Open the model's feedback and respond. |
profile_stopped | The local process isn't running. | numes provider profile start --profile NAME |
profile_transitioning | The process is starting or stopping. | Wait and check again. |
profile_failed | The process failed. | Run numes provider doctor --profile NAME, fix the reported problem and start again. |
models_excluded | The source is reachable, but no published model matches its published terms any more. | Follow the next action, which names the model and the fix. |
source_unavailable | The source is unreachable or no selected model is available. | Check the source, then run doctor and source probe. |
gateway_disconnected | The agent isn't connected to the platform. | It usually recovers by itself; if it persists, run doctor. If the reason is agent_update_required, run numes update. |
manifest_unconfirmed | The platform hasn't accepted the published terms on this connection yet. | Wait; check the profile log if it persists. |
offer_verification_failed | A model failed verification. | Fix the source, then run numes provider verification retry --profile NAME. |
offers_not_serving | A model isn't serving, for example because it's offline or suspended. | Read the reason in the output. |
verifying_offers | Review or verification is still in progress. | Wait. |
routable | Every configured model is live. | Nothing. |
The dashboard and the terminal UI show the same statuses with the labels in Review and lifecycle.
Keep it running
--start and numes provider profile start run the endpoint in the background. It keeps running after you close the terminal, but not after a reboot. For a permanent setup, install it as a per-user service (a systemd user service on Linux, a LaunchAgent on macOS). Stop the background process first, because only one process can own a profile:
numes provider profile stop --profile ollama-localnumes provider service install --profile ollama-localnumes provider profile start --profile ollama-localThe service starts automatically; add --manual-start to install it without automatic startup. Once it's installed, profile start and profile stop control it. numes provider service status and numes provider service remove (both with --profile) show and remove it.
Linux: user services start at boot and survive logout only with lingering enabled for your user. The command enables it when it can, and otherwise prints the command for an administrator, such as
sudo loginctl enable-linger <user>.macOS: the service starts when you sign in.
API keys: a service doesn't inherit your shell environment. If the profile reads a key from an environment variable (
env://),service installcopies its value from your current shell into the profile's owner-only secret store, and refuses with the variable's name when it isn't set. The desktop app's Background service panel asks for the same values.
Installing a service also installs the updater that keeps the agent current; see Automatic updates. On stop, the endpoint stops accepting new requests and lets running ones finish before it closes. The desktop app can install and manage the same services, including on remote machines over SSH.