Skip to content
Neutrome
Programmable AI for product teams

Models you canrouteunder your own brand.

Write namespaced models in TypeScript, attach tools, deploy them, and issue scoped keys. Neutrome runs the workspace infrastructure and usage billing.

No payment required · Cloudflare deploys · usage billing

Request path

A client key reaches the workspace runtime, the model code runs, and the caller receives the response.

Sample request

workspace: acme-support model: support/refund-router key scope: support/* request ready for execution
  1. 1

    Authenticate the client key

    The runtime verifies the workspace API key and checks whether it may reach the requested model or namespace.

  2. 2

    Resolve the model route

    The requested model id maps to a deployed executor, here support/refund-router.

  3. 3

    Run executor code and tools

    The model source runs, attached tools may be called, and the executor shapes the upstream request.

  4. 4

    Relay the final response

    The response streams back while usage billing is queued.

Execution log

[ready] run the walkthrough to see the runtime stages

Example response

(response preview streams here)
Category design

The missing layer between models and agents

Raw models leave little room for product logic. Full agents bring more machinery than many customer-facing models need. Neutrome runs code for a namespace/model between the client request and the upstream model.

CriterionRaw LLMProgrammable modelAgent
What it isA single inference targetA managed runtime that exposes model logic as a normal APIAn application loop coordinating many steps and systems
Primary roleGenerate the next responseResolve a model route, run executor code, return the final responsePursue a broader task over time
Execution modelSingle provider requestModel code runs between the client request and the upstream callMulti-step or long-running orchestration
ToolsReturned for the caller to executeAttached tools are wired at deploy time and invoked by the runtimeExplicitly orchestrated as part of the larger workflow
Model compositionOne model per requestRoute to one or more upstream models from executor codeDynamically chooses models and tools while pursuing a goal
I/O controlPrompt and parameter level onlyInspect, rewrite, validate or replace requests and responsesMaintains and mutates full workflow state
StateStatelessMostly stateless execution plus workspace configOften stateful with memory or task history
Client experienceStandard LLM APIStandard API surface, with the routing logic behind the runtimeAgent-specific interface or application surface
InfrastructureInference serverWorkspace deploys, API keys, billing hooks and provider routingSeparate workers, jobs and application state
StreamingNative token streamingPreserved whenever the executor yields upstream chunksOften paused by planning or coordination steps
Best forDirect model accessNamespaced models with custom logic, tools and managed accessComplex task automation across multiple systems

Raw LLM

Works for direct model access. It becomes limiting when you need routing, access controls, or reusable business logic.

Programmable model

Use it to route requests, attach tools, and set access rules for a deployed model.

Agent

Useful for larger automation systems, but often more than a customer-facing model needs.

Customer examples

Products running on Neutrome

These teams use namespaced models, attached tools, and scoped client access in their products.

Semantyka

semantyka.com.ua

Ukrainian-language AI assistant

Semantyka runs Enei, a Ukrainian-language assistant family, as a namespaced catalog with chat, legal, research, and creative variants built from shared base models.

Namespaced catalogsModel compositionAttached toolsFallback and retry
Read how it was built

MerchantDuo

merchantduo.com

Magento 2 coding companion

MerchantDuo is a Magento-native coding companion. Its Magento expertise lives in a Neutrome model with attached knowledge tools, so the CLI stays a thin client.

Prompt and tool packagingAttached toolsClient integrationPer-tool metering
Read how it was built
In-browser runner

Your model is code

The dashboard includes four @neutrome/lil-engine templates: a direct passthrough, a two-stage router, a response filter, and a fallback chain.

Use a template as a starting point, then deploy the version you need to a workspace.

  • Compose models

    Use a fast model for one step and a stronger model for another when the task calls for it.

  • Control requests

    Rewrite prompts, apply policy, or choose the route before a request reaches the provider.

  • Attach tools

    Make internal lookups and helper functions available to a model.

  • Transform replies

    Inspect or change a response before it returns to the client.

Starter templates

model.ts
import type { Executor } from "@neutrome/lilsdk";

const model = "openai/gpt-oss-20b";

const executor: Executor = {
  execute(request, ctx) {
    return ctx.invoke(model, request);
  },
  stream(request, ctx) {
    return ctx.invokeStream(model, request);
  },
};

export default executor;

The expected runtime behavior appears here.

This preview illustrates the selected template. It does not run TypeScript.

Direct path

From model code to a deployed workspace

Create a workspace, deploy the runtime, and give customers or teammates access.

  1. 1

    Create a workspace

    Choose a namespace and start from a model template.

    workspace + namespacedraft model
  2. 2

    Author and deploy

    Edit the model and tool source, then deploy. The platform generates a worker project and publishes it through Cloudflare Builds.

    generated runtimecloudflare deploy
  3. 3

    Issue access and call it

    Generate scoped client tokens and give your team access to the deployed workspace.

    deployed workspacescoped api keys

support/refund-router

Keep the deployed URL, namespaced models, attached tools, access rules, and billing state in one workspace.

Create a workspace
Value focus

Run models as
Your own AI provider.

Keep prompting logic, routing rules, and internal context in the same workspace as the models that use them. Group models under namespaces, deploy them, and choose which keys can reach them.

Workspaces currently include scoped access, deployment routes, and billing.

Namespaced catalog

Organize a customer-facing model catalog with namespace/model ids.

Scoped access

Start with broad internal access, then limit it to namespaces or individual models.

Workspace stateReady to deploy
API key scopesnamespace + model allow-lists
Workspace billingbalance checks + usage events
Model sourceTypeScript / JavaScript
Deploy targetCloudflare Workers

Core developer suite: TypeScript models · starter templates · tool attachments · billing dashboard.

Developer workflow

Build and deploy from one workspace

The platform keeps model source, deployments, access, and billing together.

  • TypeScript and JavaScript model source
  • Namespaced model ids
  • Attached runtime tools
  • Draft and deployed versions
  • Scoped API keys by namespace or model
  • Inline dashboard test client
  • Workspace usage billing
  • Stripe balance top-ups
Model
support/refund-router

Source: TypeScript
Tools: order-lookup, refund-policy
Status: deployed

Give your team a scoped key and the deployed workspace URL. The workspace holds the model catalog, access rules, and usage billing.

Monetize compute

Charge for the model work you run

Put internal workflows, routing rules, or domain expertise behind a workspace. Neutrome issues client keys and records usage.

Billing is workspace-based today. The same balance and event system can support more packaging options later.

Frequently asked questions

Create a programmable model

Create a workspace, add a namespace, write a model, and deploy it from the dashboard.