Add an AI model to your app with one command — no GPU to rent, no API account elsewhere, no key to paste.
nesly runs open models on its own GPUs, in the same region as your application. nesly addon add model qwen3-8b gives the project an OpenAI-compatible endpoint and a key; they arrive as environment variables, so the OpenAI SDK works with no arguments. Prompts and answers are not stored; only token counts are, for the bill.
// nesly addon add model qwen3-8b --yes
import OpenAI from "openai"
const client = new OpenAI() // reads OPENAI_BASE_URL and OPENAI_API_KEY
const reply = await client.chat.completions.create({
model: process.env.NESLY_AI_MODEL,
messages: [{ role: "user", content: "Summarise this ticket in one line." }],
})
console.log(reply.choices[0].message.content)Measured on the platform, not quoted from a datasheet
How it works
- 1
Add the model
nesly models listshows the catalog, live capacity and price per million tokens in your currency.nesly addon add model qwen3-8battaches one to the project. - 2
Deploy
NESLY_AI_BASE_URL,NESLY_AI_API_KEYandNESLY_AI_MODELreach the app on its next deploy, together withOPENAI_BASE_URLandOPENAI_API_KEYunless you set your own. - 3
Call it like OpenAI
Chat completions, completions, streaming, tool calling: any OpenAI client works unchanged — the official SDKs, LangChain, LlamaIndex, the Vercel AI SDK, or plain HTTP.
What you get
OpenAI-compatible, nothing to learn
The endpoint speaks /chat/completions, /completions and /models with the OpenAI error shape. Switching back or forth is a base URL.
In the same region as your app
Inference runs where your application runs. No cross-border hop for your users' data, and a first token in well under a second under load.
Shared, kept warm
The models are always loaded; there is no cold start to wait for and no GPU hour to pay while you think. You pay for the tokens you use.
Keys the platform manages
One key per project, server-side only. nesly addon rotate model issues a new one and kills the old; addon rm model removes both key and access. Previews share production's key.
A bill you can cap
Every token is metered against your spend cap; at the cap model requests pause and your sites keep serving. A request that fails is not charged, and a stream cut short is not either.
Bigger models on request
Qwen3 32B, Llama 3.3 70B, gpt-oss 120B, Qwen3 235B and a BGE-M3 embedding model are in the catalog as "Request access". nesly models request <id> puts you on the list; it costs nothing.
Pricing
The model add-on is part of Pro (TRY 869 a month with VAT in Turkey, $18 without VAT elsewhere). Tokens are metered per million at $0.1 / TRY 4.825 in, $0.4 / TRY 19.3 out and $0.015 / TRY 0.7238 for embeddings, in your account's currency.
- The monthly credit included in Pro covers tokens first; past it, usage counts toward the spend cap you set.
- A request that fails is not charged; a stream that is cut before it finishes is not charged.
- Models marked "Request access" have no price and cannot be billed; they are a list we read, not a product we sell yet.
Model catalog
| Model | Context | Runs on | Input / 1M tokens | Output / 1M tokens |
|---|---|---|---|---|
| Qwen3 8Bqwen3-8b | 16k | A30 | $0.1 / TRY 4.825 | $0.4 / TRY 19.3 |
| Qwen3 32Bqwen3-32b | 32k | A100 | Request access | |
| Llama 3.3 70Bllama-3.3-70b | 128k | H100 | Request access | |
| gpt-oss 120Bgpt-oss-120b | 128k | H100 | Request access | |
| Qwen3 235B A22Bqwen3-235b-a22b | 128k | H200 | Request access | |
| BGE-M3bge-m3embedding | 8k | A30 | Request access | |
Models marked "Request access" are not served yet and have no price; asking costs nothing and promises no date. We add one when enough accounts ask for it.
Use cases
Summaries, labels and drafts inside your product
Ticket summaries, product descriptions, support replies: one call per record, from the same codebase, with no third-party account to manage.
A chat feature that streams
stream: true returns tokens as they are written; 113 tokens a second is far above reading speed, so the answer feels instant.
Agents and tool calling
Qwen3 8B handles tool calls; your app's functions run where your data is, and nothing leaves the region.
Questions, answered
- Which models can I add today?
- Qwen3 8B for chat, code and tool calling, with a 16k context. Larger models and an embedding model are in the catalog as "Request access"; asking is free and we add one when enough accounts ask.
- Are my prompts stored or used for training?
- No. Prompts and answers are not logged; only the token counts are kept, for your bill.
- Do I need a GPU or CUDA in my container?
- No. Your app calls an HTTP endpoint. The driver, CUDA and the inference engine are the platform's job; your image stays as it is.
- Is it available on the Free plan?
- No. The model add-on is part of Pro. Upgrade, add the model, and the tokens are metered on your monthly bill.
- How fast is it really?
- Measured on the platform with Qwen3 8B: 113 tokens a second for a single request, 2 586 tokens a second in total with 32 running at once, and a first token within 0.14 s for 95 % of requests under that load.
- Can I bring my own OpenAI key instead?
- Yes, and nothing changes: if you set any OPENAI_* variable yourself, the platform does not inject its own, so your key goes to the URL you chose.
Related products
Databases and add-ons
PostgreSQL, MySQL, SQL Server, MongoDB, Valkey, object storage and outgoing mail — each attached with one command, connected by environment variables.
For AI agents
The CLI is also an MCP server. Claude, ChatGPT and Cursor deploy, read logs, add databases and fix failures for you.
Applications
Push your code; it is live in minutes. Every change gets its own address, and one command puts the last release back.
Give your app a model
nesly addon add model qwen3-8b --yes, deploy, and new OpenAI() just works.