Lab project 010 · building · phase 1

Local first. Remote by exception. Every exception explained.

Yserve is a small program that runs on your machine, between your editor and your models. For every request it decides where the work is allowed to run: on the device, on models your company hosts, or on a public API. Then it writes down why.

One request, three places it could run

  1. DeviceTried firstA model running on your own machine. Nothing leaves it.
  2. PrivateAllowed for proprietary codeModels your company hosts: data centre, colo or its own cloud tenancy.
  3. PublicOnly when policy allowsA public API. Never for proprietary code, or for code Yserve cannot identify.

Why “wye”? In a wye (star) connection three windings meet at one common point. Here the three are device, private and public, and Yserve is the point every request passes through.

/what

Policy decides, not the prompt

Most routers pick a model by price or speed. Yserve first asks what is allowed to leave the machine, and only then where the work should go.

01

One endpoint

An OpenAI-compatible address on your own machine. Point your editor at it and choose automatic routing or local only.

02

Policy before anything else

Yserve works out which repository a request belongs to and applies the strictest matching rule. Anything it cannot identify is treated as proprietary.

03

Secrets stay home

Requests are scanned for likely credentials. A match, or content that cannot be scanned, keeps the request on the device.

04

A log of every decision

One line per request: the route, the reasons, the attempts and the outcome. Never the prompt or the reply.

/status

Where it stands

An early build. The routing core works and is tested; most of what makes it pleasant to use is still ahead.

  • Policy routing

    Routes by repository and region rules, with the most restrictive rule winning.

    working
  • Failover

    Moves to the next allowed location when a model is unreachable or slow. It never widens what policy allows.

    working
  • Decision log

    Records route, reasons and outcome for every request, without prompt or reply text.

    working
  • Secret handling

    Detects likely credentials and keeps the request local. It does not redact them yet.

    detects, no redaction
  • Test with real local models

    So far the core is tested against stand-in model servers. The run on real hardware has not happened yet.

    still needed
  • Editor extension

    A VS Code companion that starts Yserve and shows where each request went.

    not built
  • Task-aware routing

    Classifying the task, checking a local answer and escalating only when it falls short.

    not built
  • Public release

    The repository is private for now. A first release follows the real-hardware test.

    not yet
What we are not claiming. We have not shown that local models are good enough for agentic coding on ordinary hardware; that is what the next test is for. Yserve is not a security product, and a policy file is only as good as the rules written in it. We will publish results, pass or fail.

Honest limits

What it doesn't do yet

  • You cannot install it yet; the repository is private.
  • It detects likely secrets but does not remove them from a request.
  • It does not judge whether a local answer was good enough.
  • There is no editor extension; setup is by hand.

/next

What comes next

  1. Run the phase 1 test with real local models on real hardware, and record the result either way.
  2. Replace pattern-only secret detection with a maintained rule set.
  3. Add sign-in and mutual TLS for company-hosted models.
  4. Scaffold the VS Code companion extension.

Get involved

Can’t send your code to a public API?

The most useful help right now is a team with that constraint, willing to try local-first routing on real work and tell us where it breaks.