Models and costs
Choosing models, downloading local ones, and what everything costs.
Models#
Settings › Models (also reached from Connections › Intelligence) says which model does each job: doing tasks and chatting, writing routines, and answering the routines' yes-or-no questions and short texts.
- On this computer: Pimpo finds Claude Code (your Claude subscription), Codex from the ChatGPT app (your ChatGPT subscription), and a running Ollama or LM Studio with their models, which are free and private; an Ollama with no models says how to get one. Codex runs with its own shell, browser, computer control, apps and image viewer turned off and your Codex settings ignored, so it only reaches the world through Pimpo's tools; this was checked against the real CLI with a file, an image and a website it could not reach. opencode lends Pimpo the providers you signed in to there (GitHub Copilot, OpenCode Go, OpenRouter, DeepSeek…): choose models under opencode › Choose. Every opencode tool (shell, files, web, sub-agents, skills) and any MCP server of your own opencode config is denied, only Pimpo's tools are allowed, and each run's session is deleted afterwards; checked against the real CLI with a file, a shell command and a website it could not reach. Copilot, OpenCode Go and OAuth sign-ins count as subscription; OpenCode's free models only run inside OpenCode itself, so they are not listed. Chat apps (ChatGPT, Qwen, Claude) don't let other programs use their models, and Qwen Code goes through DashScope: connect the Qwen (DashScope) provider with the same key so its cost is counted.
- Providers: Anthropic, OpenAI, Google Gemini, OpenRouter, Qwen (Alibaba DashScope), DeepSeek, Groq, Mistral, xAI, or any server that speaks OpenAI's chat API. Paste the provider's key and its models appear with their prices, taken from OpenRouter's public catalog of list prices. A model the catalog does not know needs its price typed in, because the spending limit counts every call and Pimpo never guesses a price.
- Test and use: each model answers one real word (capped at one cent) before it is added, with the time it took or a plain reason when it fails (key refused, out of credits, usage limit, model not available, service down).
- Fallbacks: each job can have up to four models that take over, in order, when its model fails for a provider reason (for example Claude Code's usage limit). You hear once when a job falls back and once when its model answers again. Your own spending limit is never worked around this way.
Choosing the model in a chat. The pill under the message box picks the model for that conversation: Automatic (the default) or any model above. Under each answer you see which model replied and why, for example "Claude Code · haiku · automatic: simple request".
- Automatic choice (Settings › Models › Automatic choice in chats): each request is weighed before it is answered. Quick ones (a fact, one calendar item, a short reply) go to a light model, heavy ones (many steps across services, a long or delicate text) to a strong one, and everything else stays on the tasks model. Jev weighs the request when it is set up, and only a clear verdict (60% or more) moves it; otherwise a few simple rules do, and any doubt stays on the tasks model. With Claude Code the light model is haiku and the strong one opus; with provider models, the cheapest and the dearest of your list. You can pick them yourself, or turn the automatic choice off. After 80% of the daily spending limit the strong model is no longer used.
- Thinking level: the same pill has Thinking: Automatic, low, medium, high or max. Automatic follows the same weighing: low on quick requests, high on heavy ones (not after 80% of the daily limit), and the job's level otherwise. Settings › Models sets each job's level next to its model; leave it on the default to use the model's own. Claude Code and the Anthropic API take all four levels; Codex calls max "xhigh"; OpenAI, OpenRouter, Gemini, Groq, xAI and local servers stop at high; DeepSeek, Mistral and Qwen choose thinking by model instead. A model that does not accept a level answers without it.
- Channels: on Telegram, WhatsApp and the others, send
/modelto see the model in use,/model opus(or any model of your list) to fix one, and/model autoto go back to the automatic choice./thinkdoes the same for the thinking level:/think high,/think auto. - Who answers judgments (the yes-or-no questions of routines and decisions): Local model, Laya on this computer, Jev or your model. Laya is Jev's open decision model: calibrated, free, and run here with
pip install "laya[serve]" && laya-serve. Give its address (port 8000); Test Laya saves it and asks Laya a question there. With Local model, an address set for Laya makes it answer first, before Pimpo's small model and Ollama; what neither is sure about still goes to Jev or your model. In a company, Laya is also a decider, with a minimum certainty, like Jev. - Routines run without a model, except for their yes-or-no questions and short texts. A routine that has them shows Model for judgments and texts in its settings; leave it on the default (the model for judgments) or pick another for that routine alone, and its thinking level beside it.
Rules and approvals do not change with the model: every tool call still goes through Pimpo. With Anthropic, the instructions, tool list and conversation so far are kept in the provider's prompt cache between turns, so a long task pays about a tenth for what it already sent; the cost shown includes the cache's own prices. When a conversation or job with an Anthropic model grows very long, Anthropic summarizes its older parts on its servers so it can go on (Settings › Models › Summarize long conversations, on by default, with the size where it starts); the summary is counted in the cost.
The providers' lists are live: each provider's models come from the provider itself, kept for a day, and Look again asks at once. A model a provider has just started offering is marked New (New · price unknown until you type its price). One of your models the provider no longer offers is marked Retired, and the jobs, chats and routines that use it suggest choosing another.
Downloading models#
Settings › Models › Download models downloads models that run on this computer and shows each download as it happens, with its size, progress and a cancel button:
- Voices for reading aloud (the voice engine comes with the first one). Every file comes from a pinned address and is checked against its SHA-256 before it is unpacked, and unpacks only inside its own folder (
~/.pimpo/local). They are not included in backups; download them again on a new computer. - Speech to text (optional): a Whisper model (base, small or turbo) understands your Telegram voice notes and dictation in the app right here; without one, Pimpo uses whisper.cpp if it is installed. Voice notes in OGG need ffmpeg (
brew install ffmpeg). - Language models through Ollama (which must be installed and open), with suggestions that fit this computer's memory, or any model name. Once downloaded, choose it under On this computer › Ollama.
From the terminal, pimpo local list shows the catalog and what is installed, and pimpo local install ID downloads with the same checks. The list comes from a JSON catalog built into Pimpo (internal/local/catalog.json). A catalog.json of your own in ~/.pimpo/local replaces it; every entry needs an https address, its size and its SHA-256.
Costs#
Cost shows what you spent today, this month and on what. Claude Code signed in with a Claude plan and Codex signed in with ChatGPT are paid by your subscription: they spend no money and do not count toward the daily limit. Through your subscription shows what the same work would have cost on the API, for reference. The daily limit (Settings) is checked before every model call; routines barely spend anything.
This page is built from the repository's documentation. Improve it on GitHub.