Build and run your own models in TypeScript.

Arkor is a TypeScript framework for fine-tuning open-weight models on managed GPUs, served behind a hosted OpenAI-compatible endpoint. Designed for product engineers shipping LLM features. No signup to try locally. Works with any Node app — Next.js, Hono, Express, anything.

Owning the model should feel
like shipping software.#

API calls don’t give you ownership

The feature works, but the model is not yours. You can't tune it for your data, run it where you want, or control the margin when pricing changes.

ML infrastructure is built for ML teams

GPUs, training jobs, adapters, and inference stacks usually belong to platform teams. Product engineers should not need that stack just to improve app behavior.

Prompting and RAG only go so far

Some behavior needs to live in the model itself: consistency, latency, and domain-specific decisions. At that point, you change the model, not the prompt around it.

Pick your path.#

I want to use an open-weight model in my app.

No training. Just a hosted Gemma 4 endpoint.

I have a dataset and want to fine-tune.

Code the run in TypeScript, train on managed GPUs, inspect via Studio.

I want to optimize the model my app uses over time.

Start with a hosted model. Distill it down to a smaller, cheaper, faster one as you learn what you need.

Three beliefs that shape every product.#

Small models perform well on backend semantic tasks.

See it yourself
4b
31b

Open-weight means you keep what you fine-tune, run it anywhere, and avoid API lock-in.

Keep what you fine-tune

Your adapter is yours.

Run anywhere

Self-host, on-prem, or edge.

No API lock-in

No closed model dependency.

TypeScript means it fits where your app already lives.

Product logicBackendsInternal toolsCI / deployIntegrations
Live demo

See it in the playground.#

Run a support-triage call against a base open-weight model, a fine-tuned version, and a frontier reference. Same input, same prompt.

Support triage

A customer message arrives. The model reads intent, assigns a category and urgency level, and recommends a next action. No keyword rules, no routing trees.

Base Model
gemma-3-4b

Waiting for input.

Fine-tuned
gemma-3-4b (fine-tuned)

Waiting for input.

Reference
gemini-3-flash-preview

Waiting for input.

Your model.
Your endpoint. Your terms.#

Start for free with no signup, or set up a hosted endpoint in under a minute.

Start for free