DevelopmentLocal AI
CheapGPT

CheapGPT began with a desktop I already had and a question: how much everyday AI work could it handle on its own? The model is Ornith, and llama.cpp runs it on the machine's older Radeon graphics card. I built the application around them: chat, document handling, task presets and a view of what the computer is doing.
Keep one model loaded
On this hardware, switching models costs time and memory, so the application is built around a single model that stays ready. The opening screen goes straight to a conversation.
Quick Chat handles a passing, unsaved question. Signing in adds private conversation history, web search and a separate tool for small calculations and code tasks. Quick and Think expose the model's own modes as a plain choice: an immediate reply, or more time spent on the question.
Send the model less on every turn
A long document changes the job. The passage that matters may sit near the end, or the answer may depend on several sections. CheapGPT keeps the extracted text and works through long material in passes, collecting the parts that bear on the question.
Conversation history gets similar treatment. People wander off and come back to earlier subjects, so the full history is kept, while each turn carries only the parts that belong to the current exchange. Making a modest machine reread everything on every turn would mostly add waiting.
Presets and a visible queue
An empty text box leaves all the work of getting started to the person looking at it. Task presets cover common jobs such as drafting an email, summarizing a meeting, translating text and pulling information out of a document. Each one starts the instruction and asks for the details that task needs.
The Activity panel shows whether a request is waiting its turn, reading a document or being answered. On a machine that sometimes needs a minute, knowing which of those is happening is a lot more reassuring than a spinner.
I built the application around Ornith running in llama.cpp: the chat, document handling, task presets and activity view.









