home →
v1.x live · shipping weekly Free Developer key · no account

The whole product,
honestly labelled.

UPtrim is an OpenAI-compatible reverse proxy that runs on your machine, between your chat app and every LLM you use. It gives any local LLM permanent per-user memory. Local-first: cloud providers are opt-in, and local_only mode never leaves your machine.

Everything on this page carries a status chip, because not everything ships switched on. That is deliberate — and it is how you should read the rest of this tour.

LIVE on by default ONE SWITCH AWAY ships off, you turn it on SHADOW measuring itself before it takes over EXPERIMENTAL built, not on any default path
Six problems · six answers

What actually goes wrong,
and what fixes it.

Every feature in UPtrim exists because one of these six things kept happening. The rest of the page is those six answers in detail.

🧠

Your AI forgets you every time

Automatic fact extraction and relevance-ranked injection. Facts come out of the conversation on their own and go back in when they matter. LIVE

The memory engine →
📁

Your AI can’t read your documents

Upload 33+ file types and ask in plain language. “Employee compensation” finds the “salary breakdown” section with zero keyword overlap. LIVE

Files & RAG →
🔀

One model can’t do everything

Every backend in one dropdown, auto-routing by task complexity, and a real generation scheduler behind it. LIVE SCHEDULER: ONE SWITCH AWAY

Routing & scale →
🔒

Shared AI means shared memories

Five-tier identity resolution and complete per-user isolation, plus token budgets, curfews and parental controls. LIVE

How teams work →
🌐

Your AI doesn’t know anything recent

Ghost researches the live web while your request is still being prepared, so the answer arrives with no added latency. LIVE Standard+

Ghost →
🧬

Long chats go off the rails

Running summaries plus proactive compression at 60% of the context limit — trimmed, not truncated. LIVE

Context handling →
Drop-in · zero lock-in

Any LLM. Any frontend.
Your memory in the middle.

UPtrim speaks OpenAI-compatible on both sides. It is invisible to both: your frontend thinks it is talking to the LLM, your backend thinks it is getting normal requests. Point one base URL at it and everything else is additive.

Backend any model
  • Ollama
  • llama.cpp
  • vLLM
  • SGLang
  • LM Studio
  • Any OpenAI-compatible server
  • Anthropic · OpenAI · Gemini
  • OpenRouter (100+ models)
if it speaks /v1/chat/completions, it works. cloud providers are opt-in, Pro tier.
PORT :9099 · LIVE
UPtrim
MEMORY · ROUTING · IDENTITY
~/uptrim — one binary
$./ContextProxy
base url :9099/v1
500+
settings
33+
file types
6
surfaces
no
code
changes
Frontend any chat app
  • UPtrim Chat
  • Open WebUI
  • SillyTavern
  • Any OpenAI API client
  • n8n (via MCP)
  • Claude Desktop (via MCP)
  • uptrim-cli (terminal)
  • Your own script
set its base url to http://<host>:9099/v1 — and go.
Using Open WebUI? Set the environment variable ENABLE_FORWARD_USER_INFO_HEADERS=true on the Open WebUI container before you start. Without it Open WebUI never tells UPtrim who is talking, so everybody lands in one shared memory pool. It is the single most common setup problem, and it is one line.

No frontend? No problem.

A full browser chat UI ships with it — conversations, model picker, memory chips, uploads. Plus a Python CLI client, a native desktop window, and a terminal app. Six ways in, all included.

One memory across every app.

Start a chat in Open WebUI. Continue it in SillyTavern. Ask about it from n8n over MCP. Same identity, same facts, same files — because UPtrim holds the state, not the frontend.

Swap models without touching your app.

Model aliases let users ask for coder and get whatever you pointed that at. The virtual Auto model routes by task complexity. Your frontend never learns a new name. Standard+

Free Developer tier · $0 forever

The memory engine, whole.

No credit card, no account, no seat count. Unlimited memories, unlimited files, unlimited users, one backend, 15 MB per file. Everything in these six cards runs offline on your own machine.

01 Memory
🧠

Three-lane fact extraction LIVE

320 hand-tuned regex extractors plus spaCy catch facts in microseconds. A rate-capped local-LLM pass covers what they miss. Ten categories — identity, work, health, dietary, family, technical, preferences, people, communication, general — each with its own priority, always-inject flag and expiry.

  • Hybrid retrievalFTS5 keyword search and bge-base-en-v1.5 embeddings run in parallel and merge via Reciprocal Rank Fusion, with weights that shift by intent.
  • The GardenerIdle-time maintenance dedupes, resolves contradictions, keeps the corpus lean — and never touches a pinned memory.
  • The trust loopRate any injected memory from the provenance chip. Memories that keep earning a thumbs-down fade out of rotation.
  • Provenance chipEvery streamed reply carries a “N memories used” chip — click to see exactly what the model knew.
02 Files & RAG
📄

Upload & ask LIVE

33+ file types in, plain language out. UPtrim works out which file you meant — ask about “employee compensation” and it finds the “salary breakdown” section with zero keyword overlap.

  • The Inspector13 format-specific analyzers build a structured dossier for every upload — running only when the GPU is idle, so uploads never slow chat.
  • Chunk-level citationsResults cite the source as filename (chars X–Y), not a vague gesture at the document.
  • Big files, no dramaChunked resumable uploads, per-user folders, folder sharing.
  • Per-file ceilings by tier15 MB free, 25 MB Standard, 1 GB Pro, 5 GB Premium, 100 GB Business.
03 Identity
🛡️

Complete per-user isolation LIVE

Five-tier identity resolution figures out who is talking — forwarded user headers, custom headers, signed tokens, account links, fallback. User A never sees User B’s data. Unlimited users on every tier including free.

  • Accounts & teamsSelf-registration with invite codes, account linking, shared team memory pools with roles.
  • Usage capsPer-user daily, weekly and monthly token budgets with honest failure messages instead of silent truncation.
  • Access schedulesAllowed hours per weekday, timezone-aware.
  • Parental controlsChild accounts ask for more time from inside the chat; a parent approves with a PIN that is never displayed and is compared in constant time, server-side.
04 Routing
🔌

Every backend, one dropdown LIVE

Models from all of your LLM servers appear in a single list, each with its own context window. One backend on free, five on Standard, up to unlimited on Enterprise.

  • Streaming intelligenceThinking blocks are redirected into reasoning_content so your UI renders them collapsed. Untagged chain-of-thought is detected too — Qwen3, QwQ, DeepSeek-R and GLM-4 all behave.
  • Smart thinking budgetsPer-tier reasoning budgets, with thinking auto-disabled where it would be wasted.
  • Conversation compressionRunning summaries plus proactive pre-summarization at 60% of the limit — message 287 still remembers message 14.
  • Vision & audio passthroughAuto-reroute to a capable backend; older images collapse to placeholders; audio is transcribed if you have no audio model.
05 Surfaces
📊

Six ways in LIVE

Admin dashboard with an Easy mode and an Expert mode (every setting, grouped, searchable, applied live), a browser chat SPA, the per-user /my-memory page, a Python CLI chat client, a Rust terminal app, and a native desktop window.

  • uptrim-cli v0.5.52npm i -g uptrim-cli — a real out-IDE coding agent, prebuilt for six platform targets.
  • Your own memory pagePhone-friendly, no admin access needed: view, edit, pin, delete, rate and report your own memories.
  • Overnight digest“Last night I connected X to Y, formed 2 hypotheses, consolidated 14 memories” greets you on /my-memory.
  • TUI monitorBoot-time terminal dashboard — live status, backends, users, logs. Premium
06 Platform
🎯

500+ documented settings LIVE

Every setting is typed, validated and clamped at save time, and carries a stability badge — stable, experimental, or inert. Nearly all of them apply the moment you save; the rare exception wears a RESTART badge.

  • Generated config referenceThe settings docs are generated from the shipped defaults, so they cannot drift. An unclassified key fails the build.
  • Self-healing watchdogPer-subsystem exponential backoff from 30 seconds to 15 minutes, quarantine, and a severity readout on the dashboard.
  • One-click backup & restoreFrom the dashboard, into one relocatable data folder.
  • Cross-platformWindows, macOS and Linux from one package. Boot no longer waits on an unreachable backend.
the free key is public → $0.00

Developer is free for life on v1.x — same key for everyone, no account needed: 4XC7N-K2RS3-NXSF6-M5CXA-AL8PU
Paid tiers add backends, file size, Ghost research, cloud providers, the knowledge graph and fleet — but the engine above is yours, offline, today.

The memory brain

It measures itself
before it takes over.

The next generation of the memory engine does not get switched on by decree. It ships in shadow — running beside the live path, scored against it on real traffic — and only gets promoted when the numbers earn it. Two engines are in that state right now, and you can watch both.

Belief engine

Atlas SHADOW

Where the fast lane stores what you said, Atlas tracks what it believes about you: confidence scores, eras (true-then versus true-now), dialogue witnessing, mood-aware hedging, contradiction-driven clarifying questions, and overnight adjudication run by your own local model.

Fresh installs start on legacy. The lifecycle is legacy → shadow → primary, and it is yours to advance.

658eval cases
4.5×new-vocab recall
0.864precision
0.871overall F1

New-vocabulary recall went 0.122 → 0.551 at 0.864 precision, legacy-corpus recall held at 1.000, and the fast lane stayed byte-identical — nothing that already worked got worse.

Injection brain

Muse SHADOW

Injection grows a brain. Expired and contradicted memories are guarded out before they can mislead. Surviving candidates are rescored by belief confidence. A working-set model stops facts flickering in and out between turns. Knowledge-graph hops pull in related context, and the whole thing is allowed at most one gentle nudge per conversation.

  • Belief Inspector — ask why the proxy believes something and get the evidence trail back from the API. LIVE
  • Knowledge graph — entities and relations in a temporal graph, pure SQLite; a 2-hop walk surfaces memories neither search would find. Premium
  • REM consolidation — while you are away the proxy dreams: merges duplicates, synthesizes patterns, links facts far apart in time, forms testable hypotheses. Premium
Why say this out loud? Because “shadow” is the honest word for it. A shadow feature is not broken and it is not vapour — it is running, on your data, being graded. When it wins, you flip one setting. Until then the engine you already trust is the one answering.
Ghost · live web research · Standard+

Your AI stops saying
“my training data ends…”

While your request is being prepared, invisible specialist workers race a 5,000 ms deadline — fetching the URLs you pasted, searching the live web, deep-scanning your memories. Whatever finishes inside the window gets injected. Whatever does not, does not hold up your answer. Zero added latency, by construction.

Dispatch

Signal-scoring router ONE SWITCH AWAY

A learned router scores all 13 specialists from 15 signals per turn, backed by a 2,912-entity gazetteer, with per-route weights that improve from real outcomes. Same lifecycle as the rest of the brain: legacy → shadow → primary.

Search

Six backend families LIVE

DDGS engines, SearXNG, Brave, Google CSE, Tavily and friends, fused with a mini-RRF and per-engine circuit breakers. Keyless out of the box. Honest caveat: some networks strangle some scrapers — that is exactly why the backends are pluggable and the breakers exist.

Comprehension

Answer distillation LIVE

Fetched pages are condensed by a local model into 4–6 attributed claim lines above the raw sources, so the model reads a brief instead of drowning in HTML. On timeout it falls back to raw text rather than failing.

Continuity

Topic inheritance LIVE

“I need more detail” re-searches the topic you were already on. Strictly gated: a new question never inherits the old one’s research.

Carry-over

Research mailbox LIVE

Good research that did not fit this turn’s budget is not thrown away — it is carried into the next relevant turn. A fact-checker cross-checks claims against your stored memories for contradictions.

Rescue

Reflex search ONE SWITCH AWAY

If the model starts to say “I don’t have access to current information…”, Ghost catches it mid-stream before a single byte reaches you, fires a search, and regenerates. Ships off; roll it out when you want it.

Groundwork

Ghost Mesh ONE SWITCH AWAY EXPERIMENTAL

Two extra background workers, off by default. An analyst pulls entities and relationships out of the knowledge graph to spot the gaps in what you have; a predictor guesses the likely follow-up and pre-warms the search cache for it. Local heuristics only — no LLM call is made to do either. Pro tier and up.

Receipts

You always see what it did LIVE

Every researched reply carries a source status line — 🔍 9 sources checked · 2 carried over · distilled · 3 memories — so a background system never gets to be a mystery. And every outbound fetch is DNS-pinned and SSRF-filtered: the connection goes to a vetted IP, redirect and DNS-rebinding tricks fail closed, and private addresses are never fetched at all.

See It in Action

Click a scenario to see what happens.

Persistent memory

You mentioned weeks ago that you write Python and prefer dark mode. UPtrim extracted those facts and stored them. Next session they are back in context automatically — and the reply tells you which ones it used.

Regex plus spaCy extract facts in microseconds. FTS5 and embeddings retrieve them in parallel and merge with Reciprocal Rank Fusion. Intent decides how the weights tilt.

Can you help me set up a new project?
UPtrim injects: “prefers Python” · “uses VS Code” · “dark themes”
Sure — Python project. Want the pyproject.toml layout you usually use?

File-backed context

Upload a PDF, a spreadsheet, a codebase export. Ask a normal question. UPtrim works out which file you meant and pulls only the relevant chunks into context — with citations down to the character range.

33+ formats. The Inspector runs 13 format-specific analyzers while the GPU is idle, so an upload never slows down a chat.

Uploaded: company-handbook.pdf
What’s the vacation policy?
Matched: company-handbook.pdf (chars 18420–19110)
Your handbook gives 20 days of PTO a year plus 10 holidays…

Live web research

Ask about something that happened after your model was trained. Ghost researches it while the request is still being assembled, and the answer arrives with sources attached.

Specialists race a 5,000 ms window. Pages are distilled into attributed claim lines. Everything fetched is DNS-pinned and SSRF-filtered. Standard tier and up.

What changed in the release notes this week?
Ghost: 9 sources checked · distilled · 3 memories
Three changes landed this week — and here is where each one is written down…

Per-user isolation

Sarah asks about her meeting notes. Mike asks about his Python script. Their memories, files and conversations never touch.

Five-tier identity resolution reads who is talking from your chat app. Unknown users are handled by an identity mode you choose: strict, required, quarantine or legacy.

Sarah: What was in my meeting notes?
Loads Sarah’s memories + files only
Mike: Help me with my Python script
Loads Mike’s memories + files only
Routing, scheduling & scale

What happens when
everyone asks at once.

One GPU and five people is a queueing problem, not a prompt problem. UPtrim treats it like one — with real queues, real fairness, and honest messages when you have to wait.

Queueing

Generation scheduler ONE SWITCH AWAY

A real queue per backend, with priority classes and per-user fairness. Users see where they stand: ⏳ queued #2 · ~40 s · preparing context… Research keeps running during the slot wait, so the wait is not wasted.

Sizing

Scale profiles LIVE

Pick home, team or business and ten interacting caps move together — 40, 150 or 400 concurrent; 30, 60 or 120 requests per user per minute; queue depth 20, 60 or 200. Chosen automatically from your license.

Backends

vLLM and SGLang, first-class LIVE

Auto-detected and promoted to the primary tier with zero configuration, because they are the ones that actually hold up under concurrency.

Fairness

Adaptive demand policy SHADOW

Under load, everyone gets a slightly smaller budget so that everyone stays served instead of the last three people timing out. Floors are protected. Currently measuring itself against the live policy.

Overflow

Burst pool ONE SWITCH AWAY

Extra backends that wake up when queues get deep and go back to sleep afterwards, with spend caps attached. Ships empty — you decide what it is allowed to wake.

Storage

Skribe write engine SHADOW

One persistent writer, group commits measured at 133–171 operations per commit under a 25-node hammer, write coalescing that turns 20 bumps into one write, a separate relaxed-durability audit database, and crash-tested turn atomicity.

Before it writes a single byte

Self-calibrating storage probe LIVE

A roughly two-second probe at boot measures your real fsync latency, detects hostile locations — cloud-synced folders, network shares, WSL mounts — verifies WAL mode, tunes commit pacing to the disk it actually found, and warns you loudly if you put your database somewhere that will hurt. Most “my AI is slow” reports are a Dropbox folder.

Cloud & hybrid · Pro tier

Local-first.
Not local-only.

The memory brain always runs on your hardware — extraction, retrieval, Atlas, Muse, REM, the knowledge graph, all of it. Cloud models are something you add on purpose, and can switch off completely.

Providers

Four cloud providers ONE SWITCH AWAY

Anthropic over OAuth — no API key to paste or leak — plus OpenAI, Google Gemini, and OpenRouter for 100+ more models. Claude Opus 5, Claude Sonnet 5, GPT-5 and Gemini all sit next to your local models in the same dropdown. Local stays the default.

Orchestration

The Conductor ONE SWITCH AWAY EXPERIMENTAL

Decomposes a turn into typed subtasks, routes each to the best available backend under cost, latency and quality constraints, runs what it can in parallel, and assembles one answer. Ships off, and labelled experimental for a reason.

Accounting

Cost ledger LIVE

Every cloud call is logged with its estimated cost, per model and per user. Local calls log as zero, which is the point.

The off switch

local_only LIVE

One mode setting that keeps everything on-machine. Nothing about the memory engine depends on a cloud provider being configured — the free tier proves that, because it has none. When people say “local-first” they usually mean “local until we need a server”. Here it means there is a setting whose entire job is making sure that never happens.

The agent system · Standard+

An agent that ships switched off.

Agent mode plans, acts and iterates — web search, file editing, code execution — across 17 classic tools with hard caps and per-tool enable/disable. It does not run until you say so, and even then it is confined by default.

Containment

Fail-closed sandbox LIVE

File and shell tools are confined to a workspace unless you configure a project root. No configuration means confined, not unrestricted — the safe state is the default state.

Parallelism

Sub-agents & Hyper Mode ONE SWITCH AWAY

Sub-agents run subtasks in parallel with their own scoped slice of memory. Hyper Mode dispatches them to idle boxes on your network. EXPERIMENTAL Pro+

Verification

Verified swarm research ONE SWITCH AWAY

Workers pull from a shared frontier and every claim faces skeptic judges that refute by default. Only majority-confirmed findings come back. Pro+

Judgement

Signal-scoring detection SHADOW

An 11-signal weighted scorer decides when a message actually wants an agent, replacing a six-phrase regex list. Measuring itself against the old list before it takes the wheel.

Compounding

World model SHADOW

Successful runs are distilled into reusable playbooks with outcome-weighted trust, so the second time you ask for something the agent already knows the shape of it.

Guardrails

Budgets, sentinel, evolve

Per-run token and wall-clock budget ledger, where children can never outspend their parent’s slice ONE SWITCH AWAY. Standing directives — “watch X, tell me when Y” — deliver findings to the mailbox ONE SWITCH AWAY. A nightly self-evaluation grades its own week and recommends config changes, but never applies them LIVE.

Also in the box, honestly labelled

The experimental shelf

  • Browser embodiment — headless Chromium with text snapshots, so it works with any LLM and needs no vision model. Off by default; Playwright optional. EXPERIMENTAL
  • Speculative branching — snapshots your files, tries a hypothesis, rolls back cleanly; only the winning timeline survives. Terminal-app only. EXPERIMENTAL
  • Read-ahead prefetch — plausible next reads warm in the background. EXPERIMENTAL
  • Mind Mode — ask for the virtual mind model and 2–3 of your models reason together, with convergence detection and an echo-chamber guard; code answers can be grounded by running in a sandbox so the panel argues about real output. Never fires unless you ask for it by name. EXPERIMENTAL
  • Parliament — your memories cluster into 5–8 topical personas and deliberate on decision-shaped questions. Off by default. ONE SWITCH AWAY
  • Predictive context — pre-loads what you will probably need before you ask. ONE SWITCH AWAY Premium
For builders

Four surfaces to build against.

Memory is only half of it. The other half is what you can wire into — an MCP server, a visual programming board, a plugin language, and a terminal coding agent.

Integration

MCP server LIVE

A full Model Context Protocol server at /mcp/, auto-started with the proxy: memory tools, files and shell, LLM helpers, 10 LSP code-intelligence tools, a scratchpad, cloud delegation and blueprint tools — 40 in the current registry. Point n8n, Claude Desktop or any MCP client at it.

Approvals default to the safer side: reads are auto-allowed, writes pause for approval on the dashboard. Standard+

Visual programming

Visualcoding LIVE

A node-board IDE at /visualcoding: wire blocks pin-to-pin and get a real, readable Python file back. The blueprint and the code are the same artifact, round-tripped losslessly through the AST — edit either side. Export-only by design: nothing executes inside the board. Login-gated.

Extension

TrimScript plugin engine ONE SWITCH AWAY EXPERIMENTAL

A plugin language plus a native Python loader for extraction rules, injections, filters, middleware and agents. Fail-closed permissions, per-plugin state, versioned migrations and SSRF-guarded HTTP. Ships off, and stays off until you decide otherwise.

Terminal

uptrim-cli v0.5.52 LIVE

npm i -g uptrim-cli installs a real out-IDE coding agent: inline diff approval, /agentic autonomous loops, /fix-tests that runs and repairs until green, a workspace tree, a syntax-highlighted viewer, ripgrep /find, a /dual split-screen review, memory-aware coding and cross-session TODO carry-over. Prebuilt for six platform targets.

Honest caveat: the step cap is the reliable brake. The dollar cap is best-effort.

Full Visibility

Nothing about this system is supposed to be a black box. Every memory, every setting, every decision is inspectable from a browser.

📊

Admin dashboard

Easy mode and Expert mode, a guided tour, and a Brain panel that shows what is genuinely switched on.

Click to learn more
🧑

Your own memory page

Users manage their own memories without an admin in the loop — including deleting things.

Click to learn more
🔧

Typed configuration

500+ settings, each one typed, validated, clamped and documented by a generator that cannot lie.

Click to learn more
Security

It holds everything
you ever told it.

A memory proxy is the single most sensitive process on your machine, because it is the one that knows all of it. That shaped the defaults.

Access

Mandatory dashboard password LIVE

Salted PBKDF2, required even when you are connecting from localhost. There is no “it’s just my laptop” escape hatch, because laptops end up on hotel Wi-Fi.

Egress

DNS-pinned, SSRF-filtered fetching LIVE

Every outbound fetch connects to a vetted IP address. Redirect chains and DNS-rebinding tricks fail closed. Private and link-local addresses are never fetched, so a pasted URL cannot become a port scan of your LAN.

Confinement

Fail-closed by default LIVE

Agent file and shell tools are workspace-confined until you configure otherwise. Plugins run under fail-closed permissions. The unconfigured state is the safe state everywhere it matters.

Ingest

Credential scrubbing LIVE

Paste a key by accident and it never reaches the database: 36 built-in patterns catch credentials before storage — always on, no setting to forget. AWS, Anthropic, OpenAI, GCP, Azure, GitHub, GitLab, Slack, Discord, Stripe, npm, PyPI, Docker, Sentry, Datadog, New Relic, PEM private keys and JWTs are all in the list.

In shared or team memory the fact is rejected outright. An auto-extracted fact becomes a redacted placeholder that is never injected into a prompt, and a manual save is redacted in place. Every catch shows up as a brain event in the dashboard, so you find out.

Hygiene

Secrets never come back out LIVE

API keys and tokens are masked in every API response. Tunnel tokens, search-provider keys and your license key are encrypted at rest with AES-256-GCM under a machine-derived key, so a config file copied off the box is useless elsewhere. Forwarded headers are checked for spoofing before identity is trusted. TLS is verified. PIN comparison is constant-time.

Review

Adversarial review, findings fixed LIVE

A 25-agent adversarial review was run against this build specifically to break it. All 20 confirmed findings were fixed before shipping. Responsible disclosure goes through the contact form.

Data

Your data stays a local file LIVE

Memories, files, users and history live in one relocatable data folder on your machine. There is no telemetry and no analytics — not in the product, and not on this website either.

What each tier adds

Six tiers, no seat counting.

Every tier gets the full memory engine and unlimited users. What changes is how many backends you can wire up, how big a file you can throw at it, and which of the heavier subsystems unlock. Monthly, cancel whenever.

Developer

$0 forever
1 backend · 15 MB per file
  • The full memory engine
  • Unlimited memories, files and users
  • Admin dashboard + all six chat surfaces
  • Files & RAG, identity, parental controls

Standard

$5/mo
5 backends · 25 MB per file
  • Ghost live-web research
  • MCP server, tunnels and remote access
  • Model aliases and auto-routing
  • Custom prompts, agent file tools

Pro

$15/mo
8 backends · 1 GB per file
  • Cloud providers — Anthropic OAuth, OpenAI, Gemini, OpenRouter
  • The Conductor (experimental)
  • Agent swarm and verified swarm research
  • Cost ledger

Premium

$30/mo
10 backends · 5 GB per file
  • Knowledge graph
  • REM consolidation
  • Predictive context
  • TUI monitor

Business

$100/mo
15 backends · 100 GB per file · up to 40 users
  • Multi-node fleet — several proxies, one memory
  • Centralized admin, SSO / bring-your-own auth
  • Team analytics and audit log
  • SIEM export

Enterprise

Contact
Unlimited backends · unlimited file size
  • HA failover and federation
  • On-prem licensing, BYOK / KMS
  • Data residency and compliance pack
  • Dedicated support
Straight answers about licensing. First boot offers a 14-day free trial, which needs internet once. After that a license validates offline for up to 14 days at a time, so a flaky connection never locks you out of your own memory. Fleet deployments are set up with us rather than bought from a button — multi-node licensing is handled by hand today, and the workers license themselves from the master over an HMAC-signed grant, so you never put a key on a worker. Fleet transport is plain HTTP unless you terminate TLS yourself (a custom CA is supported), and master and workers must run the same build.

Runs on your hardware

UPtrim itself is light — the heavy lift is whatever LLM you point it at. It handles memory; your GPU handles inference.

🟢

NVIDIA CUDA

RTX 3060 12 GB on a budget, RTX 4090 or 5090 if you have one. Via llama.cpp, Ollama, vLLM or SGLang.

🔴

AMD ROCm

ROCm through compatible backends. Ubuntu 24.04 is the smoothest road.

🍎

Apple Silicon

Metal and MLX through the backend of your choice. macOS build included.

Models people actually run through it: Gemma 4, Llama 4, Qwen3, QwQ, DeepSeek-R, GLM-4, Mistral — plus Claude Opus 5, Claude Sonnet 5, GPT-5, Gemini and 100+ more via OpenRouter once you turn cloud on.

Start free. The key is public.

Developer is free for life on v1.x — same key for everyone, no account needed. Paid tiers are monthly and open by waitlist.

Next up See the monthly plans