We use cookies to enhance your experience, provide personalised content, and analyse our traffic; see our Cookie Policy.
cohere/command-a-plusAnswers drawn from your documents, with the source cited
Command A+ is the last model in Cohere's Command A family, released in May 2026 under the Apache 2.0 licence. It brings vision, reasoning and tool use together in one model and, according to Cohere, covers 48 languages.
It is at its best answering from a text you supply and citing the article it relied on: terms of sale, internal procedures, FAQs. In our tests it also said plainly what the text did not allow. It reads images, calls tools and returns JSON, after a short think: 2 to 8 seconds per answer.
On Tchavi you pay with mobile money, with no international card and no KYC, and one API key covers 80+ models. It is OpenAI-compatible: change the base URL, keep your SDK.
Answers from your documents and cites the article it used
English, French, Portuguese and Spanish among them
A few hundred reasoning tokens per answer
Screenshots, purchase orders and photos alongside your text
Function calling and structured output
128K tokens in and 64K out, according to Cohere
Using these staff rules, answer an employee's question and cite the article you relied on.
Read this photo of a purchase order and return its lines as JSON: product, quantity, price.
Summarise this report in five points and give the section each figure comes from.
Command A+ is the next generation: it adds vision, reasoning and tool use, for far less. Command A (model: "command-a") keeps a longer context, 256K tokens.
Better to send one request per language. In our tests, asking for English, Portuguese and Arabic in the same answer put Arabic under the English heading, three times out of three.
Send your tools as with the OpenAI API: the model decides whether to call one. tool_choice: "auto" is accepted; "required", "none" or a forced tool are refused with an unsupported_parameter error.
Images, yes. For a PDF, extract the text first, or pick a model that accepts documents.
Point the base URL at Tchavi, use your Tchavi key and set model: "command-a-plus" on /v1/chat/completions. The rest of your code stays the same.
Yes. Top up your Tchavi account with Orange Money, MTN MoMo, M-Pesa or another mobile money operator. No bank card is needed. Credits land as soon as the payment is confirmed and are deducted as you use them.
Yes. Keep your current OpenAI SDK, just change the base URL to Tchavi's (shown in the API tab) and use your Tchavi key. The rest of your code stays the same.
import Tchavi from '@tchavi/sdk';
const client = new Tchavi({ apiKey: 'API_KEY' });
const response = await client.chat.completions.create({
model: 'command-a-plus',
messages: [
{
"role": "user",
"content": "Hello!"
}
],
});
console.log(response.choices[0].message.content);
console.log('Credits used:', response.tchavi.credits_used);Every parameter this model accepts on the API. Check the SDK for full typings.
modelRequiredID of the chat model (e.g. `command-a-plus`).
messagesRequiredConversation messages. Each item has a `role` (system/user/assistant) and a `content` that's either a plain string or an array of content blocks (`text`, `image_url`, `document_url`).
temperature1Sampling temperature between 0 and 2. Higher values = more random.
max_tokensMaximum number of tokens to generate in the response.
max_completion_tokensOpenAI alias for `max_tokens`. Either field works; if both are sent, `max_completion_tokens` wins.
streamfalseIf true, partial message deltas are streamed as Server-Sent Events.
toolsFunction-calling toolbox. Pass an array of `{ type: "function", function: { name, description, parameters } }`. Returned tool calls land in `choices[].message.tool_calls`. Only models with `supportsTools: true` accept this.
tool_choiceHow the model picks among tools: `"auto"` (default), `"none"` to force a plain text reply, or `{ type: "function", function: { name } }` to force a specific tool. Only with `supportsTools: true`.
response_formatConstrain the output. Pass `{ type: "json_object" }` to force valid JSON (the model still needs a JSON instruction in your prompt). Only models with `supportsJsonMode: true` honour this.
top_p1Nucleus sampling: only tokens in the top `top_p` probability mass are considered.
seedInteger seed for deterministic output. The same seed + identical request yields the same completion when supported by the provider. OpenAI honours it; Anthropic ignores.
n1Number of completions to generate in one call. Defaults to 1; each extra completion is billed.
stream_optionsStreaming options, e.g. `{ "include_usage": true }` to receive a final SSE chunk with usage counts. Effective only when `stream: true`.
stopUp to 4 sequences where the API will stop generating further tokens.
frequency_penalty0Between -2.0 and 2.0. Positive values penalize tokens that have appeared frequently.
presence_penalty0Between -2.0 and 2.0. Positive values encourage the model to talk about new topics.
userEnd-user identifier passed to the upstream provider for abuse / moderation tracking. Should be stable per end-user.
logit_biasPer-token logit bias `{ "<tokenId>": <-100..100>, ... }`. OpenAI-specific; Anthropic ignores silently.
messages[].content[].image_urlAttach an image on a user message. Pass a content block `{ "type": "image_url", "image_url": { "url": ... } }`. PNG / JPEG / WebP, up to 4 per request. Only models with `supportsImageInput: true` accept this block (e.g. `gpt-4o`, `claude-opus-4-7`).
Estimated over 30 days, for a typical message: ~500 input + ~150 output tokens, billed to the thousandth of a credit.